QC. Some code cleanup to avoid line overflow on mail list.
[squirrelmail.git] / functions / mailbox_display.php
index f9002381b41af88aaacd5974aa7715b497abe6fc..3631ac5405fb7ea26ad86dc3e178c7721d7b2f98 100644 (file)
  * $Id$
  */
 
+require_once('../functions/strings.php');
+
 define('PG_SEL_MAX', 10);  /* Default value for page_selector_max. */
 
 function printMessageInfo($imapConnection, $t, $i, $key, $mailbox, $sort, $start_msg, $where, $what) {
-    global $checkall;
-    global $color, $msgs, $msort;
-    global $sent_folder, $draft_folder;
-    global $default_use_priority;
-    global $message_highlight_list;
-    global $index_order;
+    global $checkall,
+           $color, $msgs, $msort,
+           $sent_folder, $draft_folder,
+           $default_use_priority,
+           $message_highlight_list,
+           $index_order,
+           $pos;            /* Search postion (if any)  */
 
     $color_string = $color[4];
     if ($GLOBALS['alt_index_colors']) {
-        if (!isset($GLOBALS["row_count"])) {
-            $GLOBALS["row_count"] = 0;
+        if (!isset($GLOBALS['row_count'])) {
+            $GLOBALS['row_count'] = 0;
         }
-        $GLOBALS["row_count"]++;
-        if ($GLOBALS["row_count"] % 2) {
-        if (!isset($color[12])) $color[12] = '#EAEAEA';
+        $GLOBALS['row_count']++;
+        if ($GLOBALS['row_count'] % 2) {
+            if (!isset($color[12])) {
+                $color[12] = '#EAEAEA';
+            }
             $color_string = $color[12];
         }
     }
     $msg = $msgs[$key];
 
-    $senderName = htmlspecialchars(sqimap_find_displayable_name($msg['FROM']));
+    /**
+     * This is done in case you're looking into Sent folders,
+     * because you can have multi receiver.
+     */
+    $sendersName = split(',', $msg['FROM']);
+    $senderName = '';
+    for ($index = 0 ; $index < count($sendersName) ; $index++) {
+        if ($senderName != '') {
+            $senderName .= ', ';
+        }
+        $senderName .= sqimap_find_displayable_name($sendersName[$index]);
+    }
+
     if( $mailbox == 'None' ) {
         // $imapConnection = sqimap_login($username, $key, $imapServerAddress, $imapPort, 0);
         $boxes = sqimap_mailbox_list($imapConnection);
@@ -48,7 +65,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 = '';
@@ -97,7 +114,10 @@ function printMessageInfo($imapConnection, $t, $i, $key, $mailbox, $sort, $start
     }
 
     if ($where && $what) {
-        $search_stuff = '&where='.urlencode($where).'&what='.urlencode($what);
+        if( !isset( $pos ) || $pos == '' ) {
+            $pos = '0';
+        }
+        $search_stuff = "&amp;pos=" . urlencode( $pos ) . "&amp;where=".urlencode($where).'&amp;what='.urlencode($what);
     }
 
     $checked = ($checkall == 1 ?' checked' : '');
@@ -105,18 +125,18 @@ 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\"";
+            echo "<a href=\"read_body.php?mailbox=$urlMailbox&amp;passed_id=".$msg["ID"]."&amp;startMessage=$start_msg&amp;show_more=0$search_stuff\"";
             do_hook("subject_link");
 
             if ($subject != $msg['SUBJECT']) {
@@ -130,10 +150,10 @@ 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";
+                echo _("A") . "\n";
                 $stuff = true;
             }
             if ($msg['TYPE0'] == 'multipart') {
@@ -142,11 +162,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 +181,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;
@@ -174,13 +194,12 @@ function printMessageInfo($imapConnection, $t, $i, $key, $mailbox, $sort, $start
  * This function loops through a group of messages in the mailbox
  * and shows them to the user.
  */
-function showMessagesForMailbox
-        ($imapConnection, $mailbox, $num_msgs, $start_msg,
-        $sort, $color,$show_num, $use_cache) {
-    global $msgs, $msort;
-    global $sent_folder, $draft_folder;
-    global $message_highlight_list;
-    global $auto_expunge;
+function showMessagesForMailbox($imapConnection, $mailbox, $num_msgs, $start_msg, $sort,
+                                $color, $show_num, $use_cache) {
+    global $msgs, $msort,
+           $sent_folder, $draft_folder,
+           $message_highlight_list,
+           $auto_expunge;
 
     /* If autoexpunge is turned on, then do it now. */
     if ($auto_expunge == true) {
@@ -248,7 +267,7 @@ function showMessagesForMailbox
 
         while ($j < $end_loop) {
             if (isset($date[$j])) {
-                $date[$j] = ereg_replace('  ', ' ', $date[$j]);
+                $date[$j] = str_replace('  ', ' ', $date[$j]);
                 $tmpdate = explode(' ', trim($date[$j]));
             } else {
                 $tmpdate = $date = array('', '', '', '', '', '');
@@ -327,21 +346,22 @@ function showMessagesForMailbox
         ** 2 = Name (up)
         ** 3 = Name (dn)
         **/
-        session_unregister("msgs");
-        if (($sort == 0) || ($sort == 1))
+        session_unregister('msgs');
+        if (($sort == 0) || ($sort == 1)) {
             $msort = array_cleave ($msgs, 'TIME_STAMP');
-        elseif (($sort == 2) || ($sort == 3))
+        } elseif (($sort == 2) || ($sort == 3)) {
             $msort = array_cleave ($msgs, 'FROM-SORT');
-        elseif (($sort == 4) || ($sort == 5))
+        } elseif (($sort == 4) || ($sort == 5)) {
             $msort = array_cleave ($msgs, 'SUBJECT-SORT');
-        else // ($sort == 6)
+        } else { // ($sort == 6) 
             $msort = $msgs;
+        }
 
         if ($sort < 6) {
             if ($sort % 2) {
-            asort($msort);
+                asort($msort);
             } else {
-            arsort($msort);
+                arsort($msort);
             }
         }
         session_register('msort');
@@ -386,7 +406,7 @@ function displayMessageArray($imapConnection, $num_msgs, $start_msg, &$msgs, $ms
     }
 
     mail_message_listing_beginning( $imapConnection,
-        "move_messages.php?msg=$msg&mailbox=$urlMailbox&startMessage=$start_msg",
+        "move_messages.php?msg=$msg&amp;mailbox=$urlMailbox&amp;startMessage=$start_msg",
         $mailbox, $sort, $msg_cnt_str, $paginator_str, $start_msg);
 
     $groupNum = $start_msg % ($show_num - 1);
@@ -445,11 +465,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 */
 
@@ -478,7 +498,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"
@@ -486,50 +507,53 @@ 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);
     for ($i = 0; $i < count($boxes); $i++) {
-        if (!in_array("noselect", $boxes[$i]['flags'])) {
+        if (!in_array('noselect', $boxes[$i]['flags'])) {
             $box = $boxes[$i]['unformatted'];
             $box2 = str_replace(' ', '&nbsp;', $boxes[$i]['unformatted-disp']);
+            if( $box2 == 'INBOX' ) {
+                $box2 = _("INBOX");
+            }
             echo "         <OPTION VALUE=\"$box\">$box2</option>\n";
         }
     }
     echo '         </SELECT></TT>&nbsp;'.
-         "<INPUT TYPE=SUBMIT NAME=\"moveButton\" VALUE=\"" . _("Move") . "\"></SMALL>\n".
+         '<INPUT TYPE="SUBMIT" NAME="moveButton" VALUE="' . _("Move") . '">&nbsp;'.
+        '<INPUT TYPE="SUBMIT" NAME="attache" VALUE="' . _("Forward") . "\">&nbsp;\n"."</SMALL>\n".
          "      </TD>\n".
-         "      <TD ALIGN=RIGHT NOWRAP>&nbsp;&nbsp;&nbsp;\n";
+         "      <TD ALIGN=\"RIGHT\" NOWRAP>";
     if (!$auto_expunge) {
-        echo '         <INPUT TYPE=SUBMIT NAME="expungeButton" VALUE="'. _("Expunge") .'">&nbsp;'. _("mailbox") ."&nbsp;\n";
+        echo '<INPUT TYPE=SUBMIT NAME="expungeButton" VALUE="' . _("Expunge") . '">&nbsp;' . _("mailbox") . '&nbsp;';
     }
-    echo "         <INPUT TYPE=SUBMIT NAME=\"markRead\" VALUE=\"". _("Read")."\">\n".
-         "         <INPUT TYPE=SUBMIT NAME=\"markUnread\" VALUE=\"". _("Unread")."\">\n".
-         "         <INPUT TYPE=SUBMIT VALUE=\"". _("Delete") . "\">&nbsp;\n".
-         "      </TD>\n".
+    echo '<INPUT TYPE="SUBMIT" NAME="markRead" VALUE="' . _("Read") . '">' .
+         '<INPUT TYPE="SUBMIT" NAME="markUnread" VALUE="' . _("Unread") . '">' .
+        '<INPUT TYPE="SUBMIT" VALUE="' . _("Delete") . '">&nbsp;' .
+         "</TD>\n".
          "   </TR>\n".
          "</TABLE>\n";
     do_hook('mailbox_form_before');
     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";
+        echo '0';
     } else {
-        echo "1";
+        echo '1';
     }
     echo " BGCOLOR=\"$color[0]\">".
         "<TR BGCOLOR=\"$color[5]\" ALIGN=\"center\">";
@@ -591,17 +615,19 @@ function ShowSortButton($sort, $mailbox, $Up, $Down) {
 
     /* Now that we have everything figured out, show the actual button. */
     echo ' <a href="right_main.php?newsort=' . $which .
-        '&startMessage=1&mailbox=' . urlencode($mailbox) .
+        '&amp;startMessage=1&amp;mailbox=' . urlencode($mailbox) .
         '"><IMG SRC="../images/' . $img .
         '" BORDER=0 WIDTH=12 HEIGHT=10></a>';
 }
 
 function get_selectall_link($start_msg, $sort) {
-    global $checkall, $PHP_SELF, $what, $where, $mailbox, $javascript_on;
+    global $checkall, $what, $where, $mailbox, $javascript_on;
+    global $PHP_SELF, $PG_SHOWNUM;
 
+    $result = '';
     if ($javascript_on) {
         $result =
-            '<script language="JavaScript">' .
+            '<script language="JavaScript" type="text/javascript">' .
             "\n<!-- \n" .
             "function CheckAll() {\n" .
             "   for (var i = 0; i < document.messageList.elements.length; i++) {\n" .
@@ -611,10 +637,16 @@ 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=";
+        if (strpos($PHP_SELF, "?")) {
+            $result .= "<a href=\"$PHP_SELF&amp;mailbox=" . urlencode($mailbox)
+                    . "&amp;startMessage=$start_msg&amp;sort=$sort&amp;checkall=";
+        }
+        else {
+            $result .= "<a href=\"$PHP_SELF?mailbox=" . urlencode($mailbox)
+                    . "&amp;startMessage=$start_msg&amp;sort=$sort&amp;checkall=";
+        }
         if (isset($checkall) && $checkall == '1') {
             $result .= '0';
         } else {
@@ -622,8 +654,12 @@ function get_selectall_link($start_msg, $sort) {
         }
 
         if (isset($where) && isset($what)) {
-            $result .= '&where=' . urlencode($where)
-                    . '&what=' . urlencode($what);
+            $result .= '&amp;where=' . urlencode($where)
+                    . '&amp;what=' . urlencode($what);
+        }
+
+        if ($PG_SHOWNUM == 999999) {
+            $result .= '&amp;PG_SHOWNUM=999999';
         }
 
         $result .= "\">";
@@ -665,7 +701,7 @@ function get_msgcnt_str($start_msg, $end_msg, $num_msgs) {
 function get_paginator_link
 ($box, $start_msg, $use, $text) {
     $result = "<A HREF=\"right_main.php?use_mailbox_cache=$use"
-            . "&startMessage=$start_msg&mailbox=$box\" "
+            . "&amp;startMessage=$start_msg&amp;mailbox=$box\" "
             . "TARGET=\"right\">$text</A>";
     return ($result);
 }
@@ -675,7 +711,7 @@ function get_paginator_link
  */
 function get_paginator_str
 ($box, $start_msg, $end_msg, $num_msgs, $show_num, $sort) {
-    global $username, $data_dir, $use_mailbox_cache, $color;
+    global $username, $data_dir, $use_mailbox_cache, $color, $PG_SHOWNUM;
 
     /* Initialize paginator string chunks. */
     $prv_str = '';
@@ -832,12 +868,16 @@ function get_paginator_str
                 $pg_str .= get_paginator_link($box, $start, $use, $pg) . $spc;
             }
         }
+    } else if ($PG_SHOWNUM == 999999) {
+        $pg_str = "<A HREF=\"right_main.php?use_mailbox_cache=$use"
+                . "&amp;startMessage=1&amp;mailbox=$box\" TARGET=\"right\">"
+                . _("Paginate") . '</A>' . $spc;
     }
 
     /* If necessary, compute the 'show all' string. */
     if (($prv_str != '') || ($nxt_str != '')) {
-        $all_str = "<A HREF=\"right_main.php?PG_SHOWNUM=9999"
-                 . "&use_mailbox_cache=$use&startMessage=1&mailbox=$box\" "
+        $all_str = "<A HREF=\"right_main.php?PG_SHOWNUM=999999"
+                 . "&amp;use_mailbox_cache=$use&amp;startMessage=1&amp;mailbox=$box\" "
                  . "TARGET=\"right\">" . _("Show All") . '</A>';
     }
 
@@ -846,10 +886,10 @@ function get_paginator_str
 
     /* Put all the pieces of the paginator string together. */
     $result = '';
-    $result .= ($all_str != '' ? $all_str . $spc . $sep . $spc: '');
     $result .= ($prv_str != '' ? $prv_str . $spc . $sep . $spc : '');
     $result .= ($nxt_str != '' ? $nxt_str . $spc . $sep . $spc : '');
     $result .= ($pg_str != '' ? $pg_str : '');
+    $result .= ($all_str != '' ? $sep . $spc . $all_str . $spc : '');
     $result .= ($result != '' ? $sep . $spc . $tgl_str: $tgl_str);
 
     /* If the resulting string is blank, return a non-breaking space. */