X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=functions%2Fimap_search.php;h=a9cda0660a1fc32bf1920dac85f614a88db5a80b;hb=2df6ca53f811434d052179c620da81a8a5246d2f;hp=52fba101f086fbdc5bd66ba2e3290ac00bb17d46;hpb=fc05541be35007deb5026584bf14b2d167da4df4;p=squirrelmail.git diff --git a/functions/imap_search.php b/functions/imap_search.php index 52fba101..a9cda066 100644 --- a/functions/imap_search.php +++ b/functions/imap_search.php @@ -1,6 +1,7 @@ -
No Messages Found
"; - return; - } else { - echo ""; - } -echo "
"; -#HACKED CODED FROM ANOTHER FUNCTION, Could Probably dump this and mondify exsitising code with a search true/false varible. - - global $sent_folder; - - for ($q = 0; $q < count($messagelist); $q++) { - $messagelist[$q] = trim($messagelist[$q]); - if ($mailbox == $sent_folder) - $hdr = sqimap_get_small_header ($imapConnection, $messagelist[$q], true); - else - $hdr = sqimap_get_small_header ($imapConnection, $messagelist[$q], false); - $from[$q] = $hdr->from; - $date[$q] = $hdr->date; - $subject[$q] = $hdr->subject; - $id[$q] = $messagelist[$q]; - - $flags[$q] = sqimap_get_flags ($imapConnection, $messagelist[$q]); - } - - $j = 0; - while ($j < count($messagelist)) { - $date[$j] = ereg_replace(" ", " ", $date[$j]); - $tmpdate = explode(" ", trim($date[$j])); - - $messages[$j]["TIME_STAMP"] = getTimeStamp($tmpdate); - $messages[$j]["DATE_STRING"] = getDateString($messages[$j]["TIME_STAMP"]); - $messages[$j]["ID"] = $id[$j]; - $messages[$j]["FROM"] = decodeHeader($from[$j]); - $messages[$j]["SUBJECT"] = decodeHeader($subject[$j]); - - $num = 0; - while ($num < count($flags[$j])) { - if ($flags[$j][$num] == "Deleted") { - $messages[$j]["FLAG_DELETED"] = true; - } - else if ($flags[$j][$num] == "Answered") { - $messages[$j]["FLAG_ANSWERED"] = true; - } - else if ($flags[$j][$num] == "Seen") { - $messages[$j]["FLAG_SEEN"] = true; - } - else if ($flags[$j][$num] == "Flagged") { - $messages[$j]["FLAG_FLAGGED"] = true; - } - $num++; - } - $j++; - } - - /** Find and remove the ones that are deleted */ - $i = 0; - $j = 0; - while ($j < count($messagelist)) { - if ($messages[$j]["FLAG_DELETED"] == true) { - $j++; - continue; - } - $msgs[$i] = $messages[$j]; + $imap_search_php = true; - $i++; - $j++; - } - $numMessages = $i; +function sqimap_search($imapConnection,$search_where,$search_what,$mailbox,$color) { + global $msgs, $message_highlight_list, $squirrelmail_language, $languages, $index_order; + $urlMailbox = urlencode($mailbox); + + # Construct the Search QuERY + + if (isset($languages[$squirrelmail_language]["CHARSET"]) && $languages[$squirrelmail_language]["CHARSET"]) { + $ss = "a001 SEARCH CHARSET ".$languages[$squirrelmail_language]["CHARSET"]." ALL $search_where \"$search_what\"\r\n"; + } else { + $ss = "a001 SEARCH ALL $search_where \"$search_what\"\r\n"; + } + fputs($imapConnection,$ss); + + # Read Data Back From IMAP + $readin = sqimap_read_data ($imapConnection, "a001", true, $result, $message); + unset($messagelist); $msgs=""; $c = 0; + + #Keep going till we find the SEARCH responce + while ($c < count($readin)) { + + #Check to see if a SEARCH Responce was recived + if (substr($readin[$c],0,9) == "* SEARCH ") + $messagelist = explode(" ",substr($readin[$c],9)); + else if (isset($errors)) + $errors = $errors.$readin[$c]; + else + $errors = $readin[$c]; + $c++; + } - // There's gotta be messages in the array for it to sort them. + #If nothing is found * SEARCH should be the first error else echo errors + if (isset($errors) && strstr($errors,"* SEARCH")) { + echo "
No Messages Found
"; + return; + } else if (isset($errors)) { + echo ""; + } -# Carn't Use the Display messages function it assumes messages are in order. -# Again More code Hacked from else where + # HACKED CODED FROM ANOTHER FUNCTION, Could Probably dump this and mondify + # exsitising code with a search true/false varible. -# AT THE MOMENT YOU CARN'T SORT SEARCH RESULTS -# ACTULLY THE CODE IS PROLLY BROKEN ANY HOW! + global $sent_folder; + for ($q = 0; $q < count($messagelist); $q++) { + $messagelist[$q] = trim($messagelist[$q]); + if ($mailbox == $sent_folder) + $hdr = sqimap_get_small_header ($imapConnection, $messagelist[$q], true); + else + $hdr = sqimap_get_small_header ($imapConnection, $messagelist[$q], false); + + $from[$q] = $hdr->from; + $date[$q] = $hdr->date; + $subject[$q] = $hdr->subject; + $to[$q] = $hdr->to; + $priority[$q] = $hdr->priority; + $cc[$q] = $hdr->cc; + $size[$q] = $hdr->size; + $type[$q] = $hdr->type0; + $id[$q] = $messagelist[$q]; + $flags[$q] = sqimap_get_flags ($imapConnection, $messagelist[$q]); + } - if (count($messagelist) > 0) { - $j=0; -echo "
"._("Found")." ".count($messagelist)." "._("Messages")."
\n"; -echo "
\n"; -echo ""; - echo "
"; + $j = 0; + while ($j < count($messagelist)) { + $date[$j] = ereg_replace(" ", " ", $date[$j]); + $tmpdate = explode(" ", trim($date[$j])); + + $messages[$j]["TIME_STAMP"] = getTimeStamp($tmpdate); + $messages[$j]["DATE_STRING"] = getDateString($messages[$j]["TIME_STAMP"]); + $messages[$j]["ID"] = $id[$j]; + $messages[$j]["FROM"] = decodeHeader($from[$j]); + $messages[$j]["FROM-SORT"] = strtolower(sqimap_find_displayable_name(decodeHeader($from[$j]))); + $messages[$j]["SUBJECT"] = decodeHeader($subject[$j]); + $messages[$j]["SUBJECT-SORT"] = strtolower(decodeHeader($subject[$j])); + $messages[$j]["TO"] = decodeHeader($to[$j]); + $messages[$j]["PRIORITY"] = $priority[$j]; + $messages[$j]["CC"] = $cc[$j]; + $messages[$j]["SIZE"] = $size[$j]; + $messages[$j]["TYPE0"] = $type[$j]; + + $num = 0; + while ($num < count($flags[$j])) { + if ($flags[$j][$num] == "Deleted") { + $messages[$j]["FLAG_DELETED"] = true; + } + else if ($flags[$j][$num] == "Answered") { + $messages[$j]["FLAG_ANSWERED"] = true; + } + else if ($flags[$j][$num] == "Seen") { + $messages[$j]["FLAG_SEEN"] = true; + } + else if ($flags[$j][$num] == "Flagged") { + $messages[$j]["FLAG_FLAGGED"] = true; + } + $num++; + } + $j++; + } - echo "\n\n\n
"; - echo "\n"; - echo " \n"; - echo "
\n"; - echo " ". _("Move selected to:") .""; - echo "
"; + echo "
"; } - echo " "; - echo " \n"; - - echo " \n"; - echo " \n"; - echo "  ". _("checked messages") ."\n"; - echo " "; - echo " \n"; - - echo "\n\n\n"; - echo ""; -echo ""; - echo ""; - echo ""; - echo " "; - /** FROM HEADER **/ - if ($mailbox == $sent_folder) - echo " \n"; - /** SUBJECT HEADER **/ - echo " "; - -while ($j < count($msgs)) { - printMessageInfo($imapConnection, $msgs[$j]["ID"], 0, $j, $mailbox, "", 0); - //echo $msgs[$j]["SUBJECT"]."
"; - $j++; - } -echo "
 ". _("To") .""; - else - echo " ". _("From") .""; - /** DATE HEADER **/ - echo " ". _("Date") .""; - echo "  ". _("Subject") ."\n"; - echo "
"; - } -} + } ?>