From bebf762c1d4483d66a5dcc990c0bc72a9dd3cc96 Mon Sep 17 00:00:00 2001 From: jmunro Date: Wed, 3 Apr 2002 06:09:18 +0000 Subject: [PATCH] rewrote the saved/recent pref hadling functions to use one multi-dimensional array. git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@2672 7612ce4b-ef26-0410-bec9-ea0150e637f0 --- src/search.php | 237 ++++++++++++++++++++++++------------------------- 1 file changed, 118 insertions(+), 119 deletions(-) diff --git a/src/search.php b/src/search.php index def8d325..4a4d0884 100644 --- a/src/search.php +++ b/src/search.php @@ -28,134 +28,141 @@ function s_opt( $val, $sel, $tit ) { echo ">$tit\n"; } -/* function to get the recent searches and put them in arrays */ -function get_recent($pref_name, $username, $data_dir) { - $array = array (); +/* function to get the recent searches and put them in the attributes array */ +function get_recent($username, $data_dir) { + $attributes = array(); + $types = array('search_what', 'search_where', 'search_folder'); $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++; + reset($types); + foreach ($types as $key) { + $attributes[$key][$x] = getPref($data_dir, $username, $key.$x, ""); + } } - return $array; + return $attributes; } -/* 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++; +/* function to get the saved searches and put them in the saved_attributes array */ +function get_saved($username, $data_dir) { + $saved_attributes = array(); + $types = array('saved_what', 'saved_where', 'saved_folder'); + foreach ($types as $key) { + for ($x=1;;$x++) { + $saved_attributes[$key][$x] = getPref($data_dir, $username, $key."$x", ""); + if ($saved_attributes[$key][$x] == "") { + array_pop($saved_attributes[$key]); + break; + } + } } - return $array; + return $saved_attributes; } /* 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); + $attributes = array(); + $types = array('search_what', 'search_where', 'search_folder'); + $input = array($what, $where, $mailbox); + $attributes = get_recent( $username, $data_dir); + reset($types); $dupe = 'no'; - for ($i=0;$i 'saved_what', 1 => 'saved_where', 2 => 'saved_folder'); + $saved_array = get_saved($username, $data_dir); + $save_index = $save_index -1; + $saved_count = (count($saved_array['saved_what']) + 1); + $attributes = get_recent ($username, $data_dir); + $n = 0; + foreach ($types as $key) { + $slice = array_slice($attributes[$key], $save_index, 1); + $name = $saved_types[$n]; + setPref($data_dir, $username, $name.$saved_count, $slice[0]); + $n++; + } } /* ------------------------ main ------------------------ */ /* reset these arrays on each page load just in case */ -$what_array = array (); -$where_array = array (); -$folder_array = array (); -$saved_what_array = array (); -$saved_where_array = array (); -$saved_folder_array = array (); +$attributes = array (); +$saved_attributes = array (); $search_all = 'none'; $perbox_count = array (); @@ -179,13 +186,6 @@ if ((!isset($submit) || empty($submit)) && !empty($what)) { $submit = _("Search"); } if ( !isset( $submit ) ) { - /* - Jason, leave E_ALL only on error reporting in php.ini - Variables must contain a value befor to check them, - or else there are compilation slow down as PHP has - to guess. - Remove this comment once read 8-) - */ $submit = ''; } else if ($submit == _("Search") && !empty($what)) { update_recent($what, $where, $mailbox, $username, $data_dir); @@ -210,14 +210,10 @@ echo "
\n". "\n"; /* 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); +$attributes = get_recent($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); +$saved_attributes = get_saved($username, $data_dir); +$saved_count = count($saved_attributes['saved_what']); $count_all = 0; /* Saved Search Table */ @@ -232,20 +228,20 @@ if ($saved_count > 0) { } else { echo ""; } - echo "$saved_folder_array[$i]" - . "$saved_what_array[$i]" - . "$saved_where_array[$i]" + echo "".$saved_attributes['saved_folder'][$i]."" + . "".$saved_attributes['saved_what'][$i]."" + . "".$saved_attributes['saved_where'][$i]."" . '' . '' . _("edit") . '' . ' | ' . '' . _("search") . '' . ' | ' @@ -263,28 +259,31 @@ if ($recent_count > 0) { . "\n" . '
' . _("Recent Searches") . '
' . ''; - for ($i=0; $i < $recent_count; ++$i) { - if (!empty($what_array[$i])) { - if ($folder_array[$i] == "") { - $folder_array[$i] = "INBOX"; + for ($i=1; $i <= $recent_count; ++$i) { + if (isset($attributes['search_folder'][$i])) { + if ($attributes['search_folder'][$i] == "") { + $attributes['search_folder'][$i] = "INBOX"; + } } if ($i % 2) { echo ""; } else { echo ""; } - echo "" - . "" - . "" + if (isset($attributes['search_what'][$i]) && + !empty($attributes['search_what'][$i])) { + echo "" + . "" + . "" . ''; } - } + } echo '
$folder_array[$i]$what_array[$i]$where_array[$i]".$attributes['search_folder'][$i]."".$attributes['search_what'][$i]."".$attributes['search_where'][$i]."' . "" . _("save") . '' . ' | ' . '' . _("search") . '' . ' | ' @@ -293,7 +292,7 @@ if ($recent_count > 0) { . '' . '

'; } -- 2.25.1