Based on many contributions like Ondrj and Konstantin I release
[squirrelmail.git] / functions / mailbox_display.php
index 0f6ab3c0a9b3833307d190576ff1b5822512a21f..132a9a904ce1d91d7ca4db3fcc5206c5586682c6 100644 (file)
@@ -3,7 +3,7 @@
 /**
  * mailbox_display.php
  *
- * Copyright (c) 1999-2001 The SquirrelMail Development Team
+ * Copyright (c) 1999-2002 The SquirrelMail Project Team
  * Licensed under the GNU GPL. For full terms see the file COPYING.
  *
  * This contains functions that display mailbox information, such as the
@@ -48,7 +48,7 @@ function printMessageInfo($imapConnection, $t, $i, $key, $mailbox, $sort, $start
     echo "<TR>\n";
 
     if (isset($msg['FLAG_FLAGGED']) && ($msg['FLAG_FLAGGED'] == true)) {
-        $flag = "<font color=$color[2]>";
+        $flag = "<font color=\"$color[2]\">";
         $flag_end = '</font>';
     } else {
         $flag = '';
@@ -62,7 +62,7 @@ function printMessageInfo($imapConnection, $t, $i, $key, $mailbox, $sort, $start
         $bold_end = '';
     }
 
-    if (($mailbox == $sent_folder) || ($mailbox == $draft_folder)) {
+    if (handleAsSent($mailbox)) {
         $italic = '<i>';
         $italic_end = '</i>';
     } else {
@@ -105,16 +105,16 @@ function printMessageInfo($imapConnection, $t, $i, $key, $mailbox, $sort, $start
     for ($i=1; $i <= count($index_order); $i++) {
         switch ($index_order[$i]) {
         case 1: /* checkbox */
-            echo "   <td bgcolor=$hlt_color align=center><input type=checkbox name=\"msg[$t]\" value=".$msg["ID"]."$checked></TD>\n";
+            echo "   <td bgcolor=\"$hlt_color\" align=center><input type=checkbox name=\"msg[$t]\" value=".$msg["ID"]."$checked></TD>\n";
             break;
         case 2: /* from */
-            echo "   <td bgcolor=$hlt_color>$italic$bold$flag$fontstr$senderName$fontstr_end$flag_end$bold_end$italic_end</td>\n";
+            echo "   <td bgcolor=\"$hlt_color\">$italic$bold$flag$fontstr$senderName$fontstr_end$flag_end$bold_end$italic_end</td>\n";
             break;
         case 3: /* date */
-            echo "   <td nowrap bgcolor=$hlt_color><center>$bold$flag$fontstr".$msg["DATE_STRING"]."$fontstr_end$flag_end$bold_end</center></td>\n";
+            echo "   <td nowrap bgcolor=\"$hlt_color\"><center>$bold$flag$fontstr".$msg["DATE_STRING"]."$fontstr_end$flag_end$bold_end</center></td>\n";
             break;
         case 4: /* subject */
-            echo "   <td bgcolor=$hlt_color>$bold";
+            echo "   <td bgcolor=\"$hlt_color\">$bold";
                 if (! isset($search_stuff)) { $search_stuff = ''; }
             echo "<a href=\"read_body.php?mailbox=$urlMailbox&passed_id=".$msg["ID"]."&startMessage=$start_msg&show_more=0$search_stuff\"";
             do_hook("subject_link");
@@ -130,7 +130,7 @@ function printMessageInfo($imapConnection, $t, $i, $key, $mailbox, $sort, $start
             break;
         case 5: /* flags */
             $stuff = false;
-            echo "   <td bgcolor=$hlt_color align=center nowrap><b><small>\n";
+            echo "   <td bgcolor=\"$hlt_color\" align=center nowrap><b><small>\n";
             if (isset($msg['FLAG_ANSWERED']) &&
                 $msg['FLAG_ANSWERED'] == true) {
                 echo "A\n";
@@ -142,11 +142,11 @@ function printMessageInfo($imapConnection, $t, $i, $key, $mailbox, $sort, $start
             }
             if ($default_use_priority) {
                 if (ereg('(1|2)',substr($msg['PRIORITY'],0,1))) {
-                    echo "<font color=$color[1]>!</font>\n";
+                    echo "<font color=\"$color[1]\">!</font>\n";
                     $stuff = true;
                 }
                 if (ereg('(5)',substr($msg['PRIORITY'],0,1))) {
-                    echo "<font color=$color[8]>?</font>\n";
+                    echo "<font color=\"$color[8]\">?</font>\n";
                     $stuff = true;
                 }
             }
@@ -161,7 +161,7 @@ function printMessageInfo($imapConnection, $t, $i, $key, $mailbox, $sort, $start
             echo "</small></b></td>\n";
             break;
         case 6: /* size */
-            echo "   <td bgcolor=$hlt_color>$bold$fontstr" .
+            echo "   <td bgcolor=\"$hlt_color\">$bold$fontstr" .
                  show_readable_size($msg['SIZE']) .
                  "$fontstr_end$bold_end</td>\n";
             break;
@@ -188,7 +188,7 @@ function showMessagesForMailbox
     }
     sqimap_mailbox_select($imapConnection, $mailbox);
 
-    $issent = (($mailbox == $sent_folder) || ($mailbox == $draft_folder));
+    $issent = handleAsSent($mailbox);
     if (!$use_cache) {
         /* If it is sorted... */
         if ($num_msgs >= 1) {
@@ -385,8 +385,7 @@ function displayMessageArray($imapConnection, $num_msgs, $start_msg, &$msgs, $ms
         $msg = '';
     }
 
-    mail_message_listing_beginning
-        ($imapConnection,
+    mail_message_listing_beginning( $imapConnection,
         "move_messages.php?msg=$msg&mailbox=$urlMailbox&startMessage=$start_msg",
         $mailbox, $sort, $msg_cnt_str, $paginator_str, $start_msg);
 
@@ -446,11 +445,11 @@ function displayMessageArray($imapConnection, $num_msgs, $start_msg, &$msgs, $ms
     }
 
     echo '</table>'.
-        "<table bgcolor=\"$color[9]\" width=100% border=0 cellpadding=1 cellspacing=1>" .
-            "<tr BGCOLOR=\"$color[4]\">" .
-                "<table width=100% BGCOLOR=\"$color[4]\" border=0 cellpadding=1 cellspacing=0><tr><td>$paginator_str</td>".
+        "<table bgcolor=\"$color[9]\" width=\"100%\" border=0 cellpadding=1 cellspacing=1>" .
+            "<tr BGCOLOR=\"$color[4]\"><td>" .
+                "<table width=\"100%\" BGCOLOR=\"$color[4]\" border=0 cellpadding=1 cellspacing=0><tr><td>$paginator_str</td>".
                 "<td align=right>$msg_cnt_str</td></tr></table>".
-            "</tr>".
+            "</td></tr>".
         "</table>";
     /** End of message-list table */
 
@@ -479,7 +478,8 @@ function mail_message_listing_beginning
     * This is the beginning of the message list table.
     * It wraps around all messages
     */
-    echo "<TABLE WIDTH=\"100%\" BORDER=\"0\" CELLPADDING=\"1\" CELLSPACING=\"0\">\n"
+    echo "<FORM name=messageList method=post action=\"$moveURL\">\n"
+       . "<TABLE WIDTH=\"100%\" BORDER=\"0\" CELLPADDING=\"1\" CELLSPACING=\"0\">\n"
        . "<TR BGCOLOR=\"$color[0]\"><TD>"
        . "    <TABLE BGCOLOR=\"$color[4]\" width=\"100%\" CELLPADDING=\"2\" CELLSPACING=\"0\" BORDER=\"0\"><TR>\n"
        . "    <TD ALIGN=LEFT>$paginator</TD>\n"
@@ -487,18 +487,17 @@ function mail_message_listing_beginning
        . "  </TR></TABLE>\n"
        . '</TD></TR>'
        . "<TR><TD BGCOLOR=\"$color[0]\">\n"
-       . "<FORM name=messageList method=post action=\"$moveURL\">\n"
        . "<TABLE BGCOLOR=\"$color[0]\" COLS=2 BORDER=0 cellpadding=0 cellspacing=0 width=\"100%\">\n"
        . "   <TR>\n"
-       . "      <TD ALIGN=LEFT VALIGN=CENTER NOWRAP>\n"
-       . '         <SMALL>&nbsp;' . _("Move selected to:") . "</SMALL>\n"
+       . "      <TD ALIGN=LEFT VALIGN=MIDDLE NOWRAP>\n"
+       . '         <SMALL>&nbsp;' . _("Move Selected To:") . "</SMALL>\n"
        . "      </TD>\n"
        . "      <TD ALIGN=RIGHT NOWRAP>\n"
        . '         <SMALL>&nbsp;' . _("Transform Selected Messages") . ": &nbsp; </SMALL><BR>\n"
        . "      </TD>\n"
        . "   </TR>\n"
        . "   <TR>\n"
-       . "      <TD ALIGN=LEFT VALIGN=CENTER NOWRAP>\n"
+       . "      <TD ALIGN=LEFT VALIGN=MIDDLE NOWRAP>\n"
        . '         <SMALL>&nbsp;<TT><SELECT NAME="targetMailbox">';
 
     $boxes = sqimap_mailbox_list($imapConnection);
@@ -509,8 +508,8 @@ function mail_message_listing_beginning
             echo "         <OPTION VALUE=\"$box\">$box2</option>\n";
         }
     }
-    echo '         </SELECT></TT></SMALL>'.
-         "<SMALL><INPUT TYPE=SUBMIT NAME=\"moveButton\" VALUE=\"" . _("Move") . "\"></SMALL>\n".
+    echo '         </SELECT></TT>&nbsp;'.
+         "<INPUT TYPE=SUBMIT NAME=\"moveButton\" VALUE=\"" . _("Move") . "\"></SMALL>\n".
          "      </TD>\n".
          "      <TD ALIGN=RIGHT NOWRAP>&nbsp;&nbsp;&nbsp;\n";
     if (!$auto_expunge) {
@@ -526,7 +525,7 @@ function mail_message_listing_beginning
     echo '</TD></TR>'.
 
         "<TR><TD BGCOLOR=\"$color[0]\">".
-        "<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=";
+        "<TABLE WIDTH=\"100%\" BORDER=0 CELLPADDING=2 CELLSPACING=";
     if ($GLOBALS['alt_index_colors']) {
         echo "0";
     } else {
@@ -544,8 +543,7 @@ function mail_message_listing_beginning
             break;
 
         case 2: /* from */
-            if (($mailbox == $sent_folder)
-                    || ($mailbox == $draft_folder)) {
+            if (handleAsSent($mailbox)) {
                 echo '   <TD WIDTH="25%"><B>'. _("To") .'</B>';
             } else {
                 echo '   <TD WIDTH="25%"><B>'. _("From") .'</B>';
@@ -613,7 +611,7 @@ function get_selectall_link($start_msg, $sort) {
             "   }\n" .
             "}\n" .
             "//-->\n" .
-            '</script><a href=# onClick="CheckAll();">' . _("Toggle All") . "</a>\n";
+            '</script><a href="#" onClick="CheckAll();">' . _("Toggle All") . "</a>\n";
     } else {
         $result .= "<a href=\"$PHP_SELF?mailbox=" . urlencode($mailbox)
                     . "&startMessage=$start_msg&sort=$sort&checkall=";
@@ -691,7 +689,7 @@ function get_paginator_str
     $sep = '|';          /* This will be used as a seperator. */
 
     /* Get some paginator preference values. */
-    $pg_sel = getPref($data_dir, $username, 'page_selector', SM_OPT_ON);
+    $pg_sel = getPref($data_dir, $username, 'page_selector', SMPREF_ON);
     $pg_max = getPref($data_dir, $username, 'page_selector_max', PG_SEL_MAX);
 
     /* Make sure that our start message number is not too big. */
@@ -850,9 +848,9 @@ function get_paginator_str
     $result = '';
     $result .= ($all_str != '' ? $all_str . $spc . $sep . $spc: '');
     $result .= ($prv_str != '' ? $prv_str . $spc . $sep . $spc : '');
-    $result .= ($pg_str != '' ? $pg_str . $sep . $spc : '');
-    $result .= ($nxt_str != '' ? $nxt_str : '');
-    $result .= ($result != '' ? $spc . $sep . $spc . $tgl_str: $tgl_str);
+    $result .= ($nxt_str != '' ? $nxt_str . $spc . $sep . $spc : '');
+    $result .= ($pg_str != '' ? $pg_str : '');
+    $result .= ($result != '' ? $sep . $spc . $tgl_str: $tgl_str);
 
     /* If the resulting string is blank, return a non-breaking space. */
     if ($result == '') {
@@ -892,4 +890,19 @@ function processSubject($subject) {
     return substr($subject, 0, $trim_val) . '...';
 }
 
+function handleAsSent($mailbox) {
+    global $sent_folder, $draft_folder;
+    global $handleAsSent_result;
+
+    /* First check if this is the sent or draft folder. */
+    $handleAsSent_result = (($mailbox == $sent_folder)
+                        || ($mailbox == $draft_folder));
+
+    /* Then check the result of the handleAsSent hook. */
+    do_hook('check_handleAsSent_result', $mailbox);
+
+    /* And return the result. */
+    return ($handleAsSent_result);
+}
+
 ?>