X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=src%2Fsearch.php;h=9786cb5dd85132d53fd9edfedb41d81aef627314;hp=b38d10b900506aca25656617af6a19528877c894;hb=7c612fdd06ef01a509e7691e2cf373e7910f1d48;hpb=a7d0eaf6b9baadb64a4cc740db3894ec8794f789 diff --git a/src/search.php b/src/search.php index b38d10b9..9786cb5d 100644 --- a/src/search.php +++ b/src/search.php @@ -13,7 +13,12 @@ require_once('../src/validate.php'); require_once('../functions/imap.php'); require_once('../functions/imap_search.php'); require_once('../functions/array.php'); +require_once('../functions/strings.php'); + +/* here are some functions, could go in imap_search.php + + this was here, pretty handy */ function s_opt( $val, $sel, $tit ) { echo " \n"; } +/* function to get the recent searches and put them in arrays */ +function get_recent($pref_name, $username, $data_dir) { + $array = array (); + $recent_count = getPref($data_dir, $username, 'search_memory', 0); + $n = 0; + for ($x=1;$x<=$recent_count;$x++) { + $array[$n] = getPref($data_dir, $username, "$pref_name" . "$x", ""); + $n++; + } + return $array; +} + +/* function to get the saved searches and put them in arrays */ +function get_saved($pref_name, $username, $data_dir) { + $array = array (); + $n = 0; + for ($x=1;;$x++) { + $array[$n] = getPref($data_dir, $username, "$pref_name" . "$x", ""); + if ($array[$n] == "") { + array_pop($array); + return $array; + } + $n++; + } + return $array; +} + +/* function to update recent pref arrays */ +function update_recent($what, $where, $mailbox, $username, $data_dir) { + $what_array = get_recent('search_what', $username, $data_dir); + $where_array = get_recent('search_where', $username, $data_dir); + $folder_array = get_recent('search_folder', $username, $data_dir); + $dupe = 'no'; + for ($i=0;$i\n". - " \n". - " \n". - ' \n". - '
\n". - "
"._("Search")."
\n". - "
'; - -if( $search_memory > 0 ) { - - if( isset( $pos) ) { - setpref( $data_dir, $username, 'search_pos', $pos ); - } else { - $pos = getPref($data_dir, $username, 'search_pos', 0 ); - } -} +echo "
\n". + "\n". + "\n". + "
\n". + "
" . _("Search") . "
\n". + "
\n"; -for ( $form = 0; $form <= $search_memory; $form++ ) { +/* update the recent and saved searches from the pref files */ +$what_array = get_recent('search_what', $username, $data_dir); +$where_array = get_recent('search_where', $username, $data_dir); +$folder_array = get_recent('search_folder', $username, $data_dir); +$recent_count = getPref($data_dir, $username, 'search_memory', 0); +$saved_what_array = get_saved('saved_what', $username, $data_dir); +$saved_where_array = get_saved('saved_where', $username, $data_dir); +$saved_folder_array = get_saved('saved_folder', $username, $data_dir); +$saved_count = count($saved_what_array); +$count_all = 0; - $frm = "$form"; - $what = "what$frm"; - $where = "where$frm"; - - if( $search_memory > 0 ) { - if ( $$what == '' ) { - $$what = getPref($data_dir, $username, "search_what$frm", '' ); - $$where = getPref($data_dir, $username, "search_where$frm", '' ); +/* Saved Search Table */ +if ($saved_count > 0) { + echo "
\n" + . "" + . '
Saved Searches
' + . ''; + for ($i=0; $i < $saved_count; ++$i) { + if ($i % 2) { + echo ""; } else { - setpref( $data_dir, $username, "search_what$frm", $$what ); - setpref( $data_dir, $username, "search_where$frm", $$where ); + echo ""; } + echo "" + . "" + . "" + . ''; } - echo "
$saved_folder_array[$i]$saved_what_array[$i]$saved_where_array[$i]' + . '' . _("edit") . '' + . ' | ' + . '' . _("search") . '' + . ' | ' + . "" + . _("delete") + . '' + . '
\n"; - if( !($form == 0 && $search_memory > 0) ) { + echo "
\n"; +} - if( $form == $pos ) { - $act = $color[5]; - } else { - $act = $color[4]; +/* Recent Search Table */ +if ($recent_count > 0) { + echo "
\n" + . "\n" + . '
' . _("Recent Searches") . '
' + . ''; + for ($i=0; $i < $recent_count; ++$i) { + if (!empty($what_array[$i])) { + if ($folder_array[$i] == "") { + $folder_array[$i] = "INBOX"; + } + if ($i % 2) { + echo ""; + } else { + echo ""; + } + echo "" + . "" + . "" + . ''; } + } + echo '
$folder_array[$i]$what_array[$i]$where_array[$i]' + . "" + . _("save") + . '' + . ' | ' + . '' . _("search") . '' + . ' | ' + . "" + . _("forget") + . '' + . '

'; +} - echo "
\n". - "". - "
' + . ' ' + . ' \n". - " '. - "\n". - " \n". - " \n". - ''; - } - echo "
'. - " \n"; - if (!isset($$what)) { - $$what = ''; + if ($mailbox == $box) { + echo " \n"; } - $what_disp = str_replace(',', ' ', $$what); - $what_disp = str_replace('\\\\', '\\', $what_disp); - $what_disp = str_replace('\\"', '"', $what_disp); - $what_disp = str_replace('"', '"', $what_disp); - echo " \n". - '\n". - "\n" . - " \n". - " \n". - "
\n"; -} - -echo "
"; -do_hook("search_after_form"); -if( !isset( $pos ) ) { - $pos = $frm; -} -$what = "what$pos"; -$where = "where$pos"; - -if (isset($$where) && $$where && isset($$what) && $$what) { - sqimap_mailbox_select($imapConnection, $mailbox); - sqimap_search($imapConnection, $$where, $$what, $mailbox, $color, $pos); -} -do_hook("search_bottom"); -sqimap_logout ($imapConnection); + else { + echo " \n"; + } + } +} + echo "\n"; +echo ' '. + " \n". + " \n"; +if ( !isset( $what ) ) { + $what = ''; +} +$what_disp = str_replace(',', ' ', $what); +$what_disp = str_replace('\\\\', '\\', $what_disp); +$what_disp = str_replace('\\"', '"', $what_disp); +$what_disp = str_replace('"', '"', $what_disp); +echo " \n". + " \n". + "\n". + "\n" . + " \n". + " \n". + " \n". + " \n". + " \n". + "\n". + " \n". + "\n"; + + +do_hook('search_after_form'); +/* + search all folders option still in the works. returns a table for each + folder it finds a match in. +*/ + +if ($search_all == 'all') { + $mailbox == ''; + $boxcount = count($boxes); + echo '
' . + _("Search Results") . + "

\n"; + for ($x=0;$x<$boxcount;$x++) { + if (!in_array('noselect', $boxes[$x]['flags'])) { + $mailbox = $boxes[$x]['unformatted']; + } + if (($submit == _("Search") || $submit == 'Search_no_update') && !empty($what)) { + sqimap_mailbox_select($imapConnection, $mailbox); + $count_all = sqimap_search($imapConnection, $where, $what, $mailbox, $color, 0, $search_all, $count_all); + array_push($perbox_count, $count_all); + } + } + for ($i=0;$i' . + _("No Messages found") . + '
'; + } +} + +/* search one folder option */ +else { + if (($submit == _("Search") || $submit == 'Search_no_update') && !empty($what)) { + echo '
' . + _("Search Results") . + "
\n"; + sqimap_mailbox_select($imapConnection, $mailbox); + sqimap_search($imapConnection, $where, $what, $mailbox, $color, 0, $search_all, $count_all); + } +} + +/* must have search terms to search */ +if ($submit == _("Search") && empty($what)) { + echo "
Please enter something to search for
\n"; +} + +do_hook('search_bottom'); +sqimap_logout ($imapConnection); echo ''; -?> \ No newline at end of file +?>