fix formating. phpdoc complained about unknown tag.
[squirrelmail.git] / src / search.php
index 5b2118632ca8370d5b65f54e4c81c09fc4b061fa..2869fa57feab4fb9dcf96f49d9ce4c66a134204a 100644 (file)
@@ -12,6 +12,7 @@
  *
  * @version $Id$
  * @package squirrelmail
+ * @subpackage search
  * @link http://www.ietf.org/rfc/rfc3501.txt
  * @author Alex Lemaresquier - Brainstorm - alex at brainstorm.fr
  */
@@ -25,12 +26,12 @@ define('SM_PATH','../');
 /** SquirrelMail required files.
  */
 require_once(SM_PATH . 'include/validate.php');
-require_once(SM_PATH . 'functions/strings.php');
-require_once(SM_PATH . 'functions/imap_asearch.php');
-require_once(SM_PATH . 'functions/imap_mailbox.php');
-require_once(SM_PATH . 'functions/imap_messages.php');
-require_once(SM_PATH . 'functions/mime.php');
-require_once(SM_PATH . 'functions/mailbox_display.php'); //getButton()...
+include_once(SM_PATH . 'functions/strings.php');
+include_once(SM_PATH . 'functions/imap_asearch.php');
+include_once(SM_PATH . 'functions/imap_mailbox.php');
+include_once(SM_PATH . 'functions/imap_messages.php');
+include_once(SM_PATH . 'functions/mime.php');
+include_once(SM_PATH . 'functions/mailbox_display.php'); //getButton()...
 include_once(SM_PATH . 'class/template/template.class.php');
 
 /** Prefs array ordinals. Must match $recent_prefkeys and $saved_prefkeys
@@ -726,6 +727,7 @@ function asearch_get_form_mailbox($imapConnection, &$boxes, $mailbox, $row_num =
 }
 
 /** Build the Include subfolders checkbox
+ * @todo if(function_exists('addCheckBox')) ? 
  */
 function asearch_get_form_sub($sub, $row_num = 0)
 {
@@ -752,6 +754,7 @@ function asearch_get_form_what($what, $row_num = 0)
 }
 
 /** Build the Exclude criteria checkbox
+ * @todo if(function_exists('addCheckBox')) ?
  */
 function asearch_get_form_exclude($exclude, $row_num = 0)
 {
@@ -984,9 +987,11 @@ if ($search_advanced) {
  * - 'delete_saved'
  * @global string $submit
  */
+$searchpressed = false;
 if (isset($_GET['submit'])) {
     $submit = strip_tags($_GET['submit']);
 }
+
 /** Searched mailboxes
  * @global array $mailbox_array
  */
@@ -1354,7 +1359,9 @@ if (isset($aMailbox['FORWARD_SESSION'])) {
         // write the session in order to make sure that the compose window has
         // access to the composemessages array which is stored in the session
         session_write_close();
-        sqsession_is_active();
+        // restart the session. Do not use sqsession_is_active because the session_id
+        // isn't empty after a session_write_close
+        session_start();
 
         if (!preg_match("/^[0-9]{3,4}$/", $compose_width)) {
             $compose_width = '640';
@@ -1382,7 +1389,7 @@ if (isset($aMailbox['FORWARD_SESSION'])) {
 }
 
 if (isset($note)) {
-    echo html_tag( 'div', '<b>' . $note .'</b>', 'center' ) . "<br />\n";
+    echo html_tag( 'div', '<b>' . htmlspecialchars($note) .'</b>', 'center' ) . "<br />\n";
 }
 
 
@@ -1447,7 +1454,7 @@ if ($submit == $search_button_text) {
     echo '</table>' . "\n";
 
     flush();
-
+    $iMsgCnt = 0;
     $query_error = asearch_check_query($where_array, $what_array, $exclude_array);
     if ($query_error != '') {
         echo '<br />' . html_tag('div', asearch_get_error_display($color, $query_error), 'center') . "\n";
@@ -1516,8 +1523,8 @@ if ($submit == $search_button_text) {
             $aConfig['max_cache_size'] = count($mboxes_mailbox) +1;
             if (isset($startMessage) && $targetmailbox == $mbx) {
                 $aConfig['offset'] = $startMessage;
-            } else if (isset($aConfig['offset'])) {
-                unset($aConfig['offset']);
+            } else {
+                $aConfig['offset'] = 0;
             }
             if (isset($showall) && $targetmailbox == $mbx) {
                 $aConfig['showall'] = $showall;
@@ -1575,6 +1582,12 @@ if ($submit == $search_button_text) {
 
             $iError = 0;
             $aTemplate = showMessagesForMailbox($imapConnection, $aMailbox,$aProps, $iError);
+
+            // in th future we can make use of multiple message sets, now set it to 1 for search.
+            $iSetIndex = 1;
+            if (isset($aMailbox['UIDSET'][$iSetIndex])) {
+                $iMsgCnt += count($aMailbox['UIDSET'][$iSetIndex]);
+            }
             if ($iError) {
                 // error handling
             } else {
@@ -1586,38 +1599,37 @@ if ($submit == $search_button_text) {
                 $oTemplate = new Template($sTplDir);
 
                 if ($aMailbox['EXISTS'] > 0) {
-                    // $aTemplate =& showMessagesForMailbox($imapConnection,$aMailbox,$aProps,$iError);
                     if ($iError) {
-
-                    }
-                    foreach ($aTemplate as $k => $v) {
-                        $oTemplate->assign($k, $v);
-                    }
-                    $oTemplate->assign('page_selector',  $page_selector);
-                    $oTemplate->assign('page_selector_max', $page_selector_max);
-                    $oTemplate->assign('compact_paginator', $compact_paginator);
-                    $oTemplate->assign('javascript_on', $javascript_on);
-                    $oTemplate->assign('enablesort', (isset($aProps['config']['enablesort'])) ? $aProps['config']['enablesort'] : false);
-                    // Aaaaaahhhhhhh FIX ME DO NOT USE the string "none" for a var when you mean the boolean false or null
-                    $oTemplate->assign('icon_theme', (isset($icon_theme) && $icon_theme !== 'none') ? $icon_theme : false);
-                    $oTemplate->assign('use_icons', (isset($use_icons)) ? $use_icons : false);
-                    $oTemplate->assign('aOrder', array_keys($aColumns));
-                    $oTemplate->assign('alt_index_colors', isset($alt_index_colors) ? $alt_index_colors: false);
-                    $oTemplate->assign('color', $color);
-                    $oTemplate->assign('align', $align);
-                    $oTemplate->assign('showall', $showall);
-
-                    $mailbox_display = asearch_get_mailbox_display($aMailbox['NAME']);
-                    if (strtoupper($mbx) == 'INBOX') {
-                        $mailbox_display = _("INBOX");
+                       // TODO
+                       echo "ERROR occured, errorhandler will be implemented very soon";
                     } else {
-                        $mailbox_display = imap_utf7_decode_local($mbx);
-                    }
-
-                    echo '<br /><b><big>' . _("Folder:") . ' '. $mailbox_display . '&nbsp;</big></b>';
+                        foreach ($aTemplate as $k => $v) {
+                            $oTemplate->assign($k, $v);
+                        }
+                        $oTemplate->assign('page_selector',  $page_selector);
+                        $oTemplate->assign('page_selector_max', $page_selector_max);
+                        $oTemplate->assign('compact_paginator', $compact_paginator);
+                        $oTemplate->assign('javascript_on', $javascript_on);
+                        $oTemplate->assign('enablesort', (isset($aProps['config']['enablesort'])) ? $aProps['config']['enablesort'] : false);
+                        // Aaaaaahhhhhhh FIX ME DO NOT USE the string "none" for a var when you mean the boolean false or null
+                        $oTemplate->assign('icon_theme', (isset($icon_theme) && $icon_theme !== 'none') ? $icon_theme : false);
+                        $oTemplate->assign('use_icons', (isset($use_icons)) ? $use_icons : false);
+                        $oTemplate->assign('aOrder', array_keys($aColumns));
+                        $oTemplate->assign('alt_index_colors', isset($alt_index_colors) ? $alt_index_colors: false);
+                        $oTemplate->assign('color', $color);
+                        $oTemplate->assign('align', $align);
+
+                        $mailbox_display = asearch_get_mailbox_display($aMailbox['NAME']);
+                        if (strtoupper($mbx) == 'INBOX') {
+                            $mailbox_display = _("INBOX");
+                        } else {
+                            $mailbox_display = imap_utf7_decode_local($mbx);
+                        }
 
+                        echo '<br /><b><big>' . _("Folder:") . ' '. $mailbox_display . '&nbsp;</big></b>';
 
-                    $oTemplate->display('message_list.tpl');
+                        $oTemplate->display('message_list.tpl');
+                    }
                 }
             }
 
@@ -1626,7 +1638,7 @@ if ($submit == $search_button_text) {
 
         }
     }
-    if(!$msgsfound) {
+    if(!$iMsgCnt) {
         echo '<br />' . html_tag('div', asearch_get_error_display($color, _("No Messages Found")), 'center') . "\n";
     }
 }
@@ -1635,4 +1647,5 @@ do_hook('search_bottom');
 sqimap_logout($imapConnection);
 echo '</body></html>';
 sqsession_register($mailbox_cache,'mailbox_cache');
+
 ?>
\ No newline at end of file