X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=src%2Faddrbook_search.php;h=d3c99c3548a3a90ab54adbfefb7b18ffa738d387;hb=65d0d1624a60633c008fd0b5631ca37713a7ad7c;hp=6c42aa1804c2b36fc74da7d8e893bad2384f5e99;hpb=d4e84069d1d9af8760b8e858672d3ea3d4eac8b0;p=squirrelmail.git diff --git a/src/addrbook_search.php b/src/addrbook_search.php index 6c42aa18..d3c99c35 100644 --- a/src/addrbook_search.php +++ b/src/addrbook_search.php @@ -1,246 +1,317 @@ - +\n"; + + while (list($undef, $row) = each($res)) { + $email = htmlspecialchars(addcslashes(AddressBook::full_address($row), "'"), ENT_QUOTES); + if ($line % 2) { + $tr_bgcolor = $color[12]; + } else { + $tr_bgcolor = $color[4]; + } + echo html_tag( 'tr', '', '', $tr_bgcolor, 'style="white-space: nowrap;"' ) . + html_tag( 'td', + '"._("To")." | " . + '"._("Cc")." | " . + '"._("Bcc")."", + 'center', '', 'valign="top" width="5%" style="white-space: nowrap;"' ) . + html_tag( 'td', ' ' . htmlspecialchars($row['name']), 'left', '', 'valign="top" style="white-space: nowrap;"' ) . + html_tag( 'td', ' ' . + '" . htmlspecialchars($row['email']) . '' + , 'left', '', 'valign="top"' ) . + html_tag( 'td', htmlspecialchars($row['label']), 'left', '', 'valign="top" style="white-space: nowrap;"' ); + if ($includesource) { + echo html_tag( 'td', ' ' . $row['source'], 'left', '', 'valign="top" style="white-space: nowrap;"' ); + } + + echo "\n"; + $line++; + } + echo ''; } -function cc_address($addr) { - var prefix = ""; - var pwintype = typeof parent.opener.document.compose; +/* ================= End of functions ================= */ - $addr = $addr.replace(/ {1,35}$/, ""); +/** lets get the global vars we may need */ +sqgetGlobalVar('key', $key, SQ_COOKIE); +sqgetGlobalVar('username', $username, SQ_SESSION); +sqgetGlobalVar('onetimepad',$onetimepad, SQ_SESSION); +sqgetGlobalVar('base_uri', $base_uri, SQ_SESSION); + +if (! sqgetGlobalVar('show' , $show)) { + $show = ''; +} +if (! sqgetGlobalVar('query', $query, SQ_POST)) { + $query = ''; +} +if (! sqgetGlobalVar('listall', $listall, SQ_POST)) { + unset($listall); +} +if (! sqgetGlobalVar('backend', $backend, SQ_POST)) { + $backend = ''; +} - if(pwintype != "undefined" ) { - if ( parent.opener.document.compose.send_to_cc.value ) { - prefix = ", "; - parent.opener.document.compose.send_to_cc.value = - parent.opener.document.compose.send_to_cc.value + ", " + $addr; +displayHtmlHeader(); + +/** set correct value of $default_charset */ +global $default_charset; +set_my_charset(); + +/* Choose correct colors for top and bottom frame */ +if ($show == 'form' && !isset($listall)) { + echo ''; +} else { + echo '\n"; +} + +/* Empty search */ +if (empty($query) && empty($show) && !isset($listall)) { + echo html_tag( 'p', '
' . + _("No persons matching your search were found"), + 'center' ) . + "\n\n"; + exit; +} + +/* Initialize addressbook, show init errors only in bottom frame */ +$showerr=($show=='form' ? false : true); +$abook = addressbook_init($showerr); + +/* Create search form (top frame) */ +if ($show == 'form' && ! isset($listall)) { + echo '
' . "\n" . + html_tag( 'table', '', '', '', 'border="0" width="100%" height="100%"' ) . + html_tag( 'tr' ) . + html_tag( 'td', ' ' . _("Search for") . "\n", 'left', '', 'style="white-space: nowrap;" valign="middle" width="10%"' ) . + html_tag( 'td', '', 'left', '', '' ) . + addInput('query', $query, 28); + + /* List all backends to allow the user to choose where to search */ + if ($abook->numbackends > 1) { + echo '' . _("in") . ' '."\n"; + $selopts = array(); + $selopts['-1'] = _("All address books"); + + $ret = $abook->get_backend_list(); + while (list($undef,$v) = each($ret)) { + $selopts[$v->bnum] = $v->sname; + } + echo addSelect('backend', $selopts, '-1', TRUE); } else { - parent.opener.document.compose.send_to_cc.value = $addr; + echo addHidden('backend', '-1'); } - } -} -function bcc_address($addr) { - var prefix = ""; - var pwintype = typeof parent.opener.document.compose; - - $addr = $addr.replace(/ {1,35}$/, ""); - - if(pwintype != "undefined" ) { - if ( parent.opener.document.compose.send_to_bcc.value ) { - prefix = ", "; - parent.opener.document.compose.send_to_bcc.value = - parent.opener.document.compose.send_to_bcc.value + ", " + $addr; + echo '' . + html_tag( 'tr', + html_tag( 'td', '', 'left' ) . + html_tag( 'td', + '' . + ' | ' . "\n" . + ' | ' . "\n" , + 'left' ) + ) . + '
' . "\n"; +} else { + /** + * List addresses (bottom frame) + * If listall is set, list all entries in selected backend. + * If $show is 'blank' (initial call of address book popup) - list + * personal address book. + */ + if ($show == 'blank' || isset($listall)) { + + if($backend != -1 || $show == 'blank') { + if ($show == 'blank') { + $backend = $abook->localbackend; + } + $res = $abook->list_addr($backend); + + if(is_array($res)) { + usort($res,'alistcmp'); + display_result($res, false); + } else { + echo html_tag( 'p', '' . + sprintf(_("Unable to list addresses from %s"), + $abook->backends[$backend]->sname) . '' , + 'center' ) . "\n"; + } + } else { + $res = $abook->list_addr(); + usort($res,'alistcmp'); + display_result($res, true); + } + + } elseif (!empty($query)) { + /* Do the search (listall is not set. query is set.)*/ + + if($backend == -1) { + $res = $abook->s_search($query); + } else { + $res = $abook->s_search($query, $backend); + } + + if (!is_array($res)) { + echo html_tag( 'p', '
' . + _("Your search failed with the following error(s)") . + ':
' . $abook->error . "
\n" , + 'center' ) . + "\n\n"; + exit; + } + + if (sizeof($res) == 0) { + echo html_tag( 'p', '
' . + _("No persons matching your search were found") . "\n" , + 'center' ) . + "\n\n"; + exit; + } + + display_result($res); } else { - parent.opener.document.compose.send_to_bcc.value = $addr; + /** + * listall is not set, query is not set or empty. + * User hit search button without entering search expression. + */ + echo html_tag( 'p', '
' . _("Nothing to search") . "\n",'center' ); } - } } -// --> - -'; - printf(" ". - " %s %s". - " %s", - _("Name"), _("E-mail"), _("Info")); - - if($includesource) - printf(" %s", _("Source")); - - print "\n"; - - while(list($undef, $row) = each($res)) { - printf("". - "To | ". - "Cc | ". - "Bcc". - " %s ". - " %s ". - " %s ", - ($line % 2) ? " bgcolor=\"$color[0]\"" : "", - $row["email"], $row["email"], $row["email"], - $row["name"], $row["email"], $row["email"], - $row["label"]); - - if($includesource) - printf(" %s", $row["source"]); - - print "\n"; - $line++; - } - print ''; - } - - /* ================= End of functions ================= */ - - include('../functions/array.php'); - include('../functions/strings.php'); - include('../functions/addressbook.php'); - - displayHtmlHeader(); - - // Initialize vars - if(!isset($query)) $query = ""; - if(!isset($show)) $show = ""; - - // Choose correct colors for top and bottom frame - if($show == 'form') { - echo "'; - } else { - echo "\n"; - } - - // Empty search - if(empty($query) && empty($show) && empty($listall)) { - printf("


%s

\n\n", - _("No persons matching your search was found")); - exit; - } - - // Initialize addressbook - $abook = addressbook_init(); - - // Create search form - if($show == 'form') { - printf("
\n", - $PHP_SELF); - print(''); - print("
\n"); - printf(" %s\n", _("Search for")); - printf(" \n", - htmlspecialchars($query)); - - // List all backends to allow the user to choose where to search - if($abook->numbackends > 1) { - printf("%s \n"; - } else { - print "\n"; - } - - printf("", - _("Search")); - printf(" | \n", - _("List all")); - print "\n"; - printf("\n", - _("Close window")); - print "
\n"; - } else - - // Show personal addressbook - if($show == 'blank' || !empty($listall)) { - - if($backend != -1 || $show == 'blank') { - if($show == 'blank') - $backend = $abook->localbackend; - - //printf("

%s

\n", $abook->backends[$backend]->sname); - - $res = $abook->list_addr($backend); - - if(is_array($res)) { - display_result($res, false); - } else { - printf("

"._("Unable to list addresses from %s"). - "

\n", $abook->backends[$backend]->sname); - } - - } else { - $res = $abook->list_addr(); - display_result($res, true); - } - - } else - - // Do the search - if(!empty($query) && empty($listall)) { - - if($backend == -1) { - $res = $abook->s_search($query); - } else { - $res = $abook->s_search($query, $backend); - } - - if(!is_array($res)) { - printf("


%s:
%s

\n\n", - _("Your search failed with the following error(s)"), - $abook->error); - exit; - } - - if(sizeof($res) == 0) { - printf("


%s.

\n\n", - _("No persons matching your search was found")); - exit; - } - - display_result($res); - } ?> - - + \ No newline at end of file