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 = '', $search_all, $count_all) {
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;
+ /*
+ Construct the Search QuERY
+
+ 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++) {
+ trim($multi_search[$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;
+ unset($messagelist);
+ $msgs = '';
+ $c = 0;
/* Keep going till we find the SEARCH responce */
while ($c < count( $readin )) {
/* If nothing is found * SEARCH should be the first error else echo errors */
if (isset($errors) && strstr($errors,"* SEARCH")) {
- echo '<br><CENTER>' . _("No Messages Found") . '</CENTER>';
- return;
- } else if (isset($errors)) {
+ if ($search_all != "all") {
+ echo '<br><CENTER>' . _("No Messages Found") . '</CENTER>';
+ return;
+ }
+ else {
+ return;
+ }
+ }
+ else if (isset($errors)) {
echo "<!-- ".$errors." -->";
}
$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);
$i = 0;
$j = 0;
while ($j < count($messagelist)) {
- if (isset($messages[$j]["FLAG_DELETED"]) && $messages[$j]["FLAG_DELETED"] == true) {
+ if (isset($messages[$j]['FLAG_DELETED']) && $messages[$j]['FLAG_DELETED']) {
$j++;
continue;
}
if (count($messagelist) > 0) {
$j=0;
- 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,
- '<b>' . _("Found") . ' ' . count($messagelist) . ' ' . _("messages") . '</b>',
- get_selectall_link($start_msg, $sort) );
-
-
+ if (!isset ($msg)) {
+ $msg = '';
+ }
+ if ($search_all != 'all') {
+ if ( !isset( $start_msg ) ) {
+ $start_msg =0;
+ }
+ if ( !isset( $sort ) ) {
+ $sort = 0;
+ }
+ mail_message_listing_beginning( $imapConnection,
+ "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></tr><tr>'.
+ get_selectall_link($start_msg, $sort));
+ }
+ else {
+ mail_message_listing_beginning( $imapConnection,
+ "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></tr><tr>');
+ }
+ if ( $mailbox == 'INBOX' ) {
+ $showbox = _("INBOX");
+ } else {
+ $showbox = $mailbox;
+ }
+ echo '<b><big>' . _("Folder:") . " $showbox</big></b>";
while ($j < count($msgs)) {
printMessageInfo($imapConnection, $msgs[$j]["ID"], 0, $j, $mailbox, '', 0, $search_where, $search_what);
$j++;
+ echo '</td></tr>';
}
- echo '</table></tr></td></table>';
+ echo '</table></td></tr></table></form>';
+ $count_all = count($msgs);
}
+ return $count_all;
}
?>