phpDocumentor updates
[squirrelmail.git] / src / search.php
index acbc6dc8cc3ef6146a575b499e9fc2c54132a467..47eb52e8ee9305b60c938d421ef6a79c69264c90 100644 (file)
@@ -3,17 +3,17 @@
 /**
  * search.php
  *
- * Copyright (c) 1999-2005 The SquirrelMail Project Team
- * Licensed under the GNU GPL. For full terms see the file COPYING.
- *
  * IMAP search page
  *
  * Subfolder search idea from Patch #806075 by Thomas Pohl xraven at users.sourceforge.net. Thanks Thomas!
  *
+ * @author Alex Lemaresquier - Brainstorm <alex at brainstorm.fr>
+ * @copyright &copy; 1999-2005 The SquirrelMail Project Team
+ * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  * @version $Id$
  * @package squirrelmail
+ * @subpackage search
  * @link http://www.ietf.org/rfc/rfc3501.txt
- * @author Alex Lemaresquier - Brainstorm - alex at brainstorm.fr
  */
 
 /**
@@ -25,12 +25,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 +726,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 +753,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 +986,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
  */
@@ -1384,7 +1388,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";
 }
 
 
@@ -1449,7 +1453,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";
@@ -1518,8 +1522,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;
@@ -1577,6 +1581,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 {
@@ -1588,38 +1598,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');
+                    }
                 }
             }
 
@@ -1628,7 +1637,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";
     }
 }
@@ -1637,4 +1646,5 @@ do_hook('search_bottom');
 sqimap_logout($imapConnection);
 echo '</body></html>';
 sqsession_register($mailbox_cache,'mailbox_cache');
+
 ?>
\ No newline at end of file