require_once('../functions/mailbox_display.php');
require_once('../functions/mime.php');
-function sqimap_search($imapConnection,$search_where,$search_what,$mailbox,$color) {
+function sqimap_search($imapConnection,$search_where,$search_what,$mailbox,$color, $search_position = '') {
global $msgs, $message_highlight_list, $squirrelmail_language, $languages, $index_order;
+ global $pos;
+
+ $pos = $search_position;
$urlMailbox = urlencode($mailbox);
- $isid = sqimap_session_id();
/* Construct the Search QuERY */
- $ss = $isid;
+
+# account for multiple search terms
+
+ $multi_search = array ();
+ $search_what = ereg_replace("[ ]{2,}", ' ', $search_what);
+ $multi_search = split (' ', $search_what);
+ if (count($multi_search)==1) {
+ $search_string = $search_where . ' ' . '"' . $multi_search[0] . '"';
+ }
+ else {
+ $search_string = '';
+ $count = count($multi_search);
+ for ($x=0;$x<$count;$x++) {
+ $search_string = $search_string . ' ' . $search_where . " " . '"' . $multi_search[$x] . '" ';
+ }
+ }
+ $search_string = trim($search_string);
+
+# now use $search_string in the imap search
+
if (isset($languages[$squirrelmail_language]['CHARSET']) &&
$languages[$squirrelmail_language]['CHARSET']) {
- $ss .= " SEARCH CHARSET ".$languages[$squirrelmail_language]['CHARSET']." ALL $search_where \"$search_what\"\r\n";
+ $ss = "SEARCH CHARSET ".$languages[$squirrelmail_language]['CHARSET']." ALL $search_string";
} else {
- $ss .= " SEARCH ALL $search_where \"$search_what\"\r\n";
+ $ss .= "SEARCH ALL $search_string\"";
}
- fputs($imapConnection,$ss);
/* Read Data Back From IMAP */
- $readin = sqimap_read_data ($imapConnection, $isid, false, $result, $message);
+ $readin = sqimap_run_command ($imapConnection, $ss, true, $result, $message);
if (isset($languages[$squirrelmail_language]['CHARSET']) && strtolower($result) == 'no') {
- $ss = $isid . " SEARCH CHARSET \"US-ASCII\" ALL $search_where \"$search_what\"\r\n";
- fputs ($imapConnection, $ss);
- $readin = sqimap_read_data ($imapConnection, $isid, true, $result, $message);
+ // $ss = "SEARCH CHARSET \"US-ASCII\" ALL $search_where \"$search_what\"";
+ $ss = "SEARCH CHARSET \"US-ASCII\" ALL $search_string";
+ $readin = sqimap_run_command ($imapConnection, $ss, true, $result, $message);
}
unset($messagelist); $msgs=""; $c = 0;
$j = 0;
while ($j < count($messagelist)) {
- $date[$j] = ereg_replace(' ', ' ', $date[$j]);
+ $date[$j] = str_replace(' ', ' ', $date[$j]);
$tmpdate = explode(" ", trim($date[$j]));
$messages[$j]["TIME_STAMP"] = getTimeStamp($tmpdate);
if (count($messagelist) > 0) {
$j=0;
- if (!isset ($msg)) { $msg = ""; }
-
+ if (!isset ($msg)) {
+ $msg = '';
+ }
+
mail_message_listing_beginning( $imapConnection,
- "move_messages.php?msg=$msg&mailbox=$urlMailbox&where=" . urlencode($search_where) . "&what=".urlencode($search_what),
- $mailbox,
- -1,
+ "move_messages.php?msg=$msg&mailbox=$urlMailbox&pos=$pos&where=" . urlencode($search_where) . "&what=".urlencode($search_what),
+ $mailbox,
+ -1,
'<b>' . _("Found") . ' ' . count($messagelist) . ' ' . _("messages") . '</b>',
get_selectall_link($start_msg, $sort) );
printMessageInfo($imapConnection, $msgs[$j]["ID"], 0, $j, $mailbox, '', 0, $search_where, $search_what);
$j++;
}
- echo '</table></tr></td></table>';
+ echo '</table></td></tr></table></form>';
+
}
}