Parcourir la source

Moved a lot of duplicated code into a separate function to display the
header of the list of messages for searches and for standard folder listings.

Tyler Akins il y a 25 ans
Parent
commit
5a91c4cbdd
2 fichiers modifiés avec 112 ajouts et 170 suppressions
  1. 4 79
      functions/imap_search.php
  2. 108 91
      functions/mailbox_display.php

+ 4 - 79
functions/imap_search.php

@@ -127,86 +127,11 @@ function sqimap_search($imapConnection,$search_where,$search_what,$mailbox,$colo
 
       if (count($messagelist) > 0) {
          $j=0;
-         echo "<center><b>" . _("Found") . " " . count($messagelist) . " " . _("messages") . "</b></center>\n";
-         echo "<br>\n";
-         echo "<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0>";
-         echo "<TR><TD BGCOLOR=\"$color[0]\">";
-   
-         echo "\n\n\n<FORM name=messageList method=post action=\"move_messages.php?msg=$msg&mailbox=$urlMailbox&where=".urlencode($search_where)."&what=".urlencode($search_what)."\">";
-         echo "<TABLE BGCOLOR=\"$color[0]\" COLS=2 BORDER=0 cellpadding=0 cellspacing=0 width=\"100%\">\n";
-         echo "   <TR>\n";
-         echo "      <TD WIDTH=60% ALIGN=LEFT VALIGN=CENTER>\n";
-         echo "         <NOBR><SMALL>". _("Move selected to:") ."</SMALL>";
-         echo "         <TT><SMALL><SELECT NAME=\"targetMailbox\">";
-   
-         $boxes = sqimap_mailbox_list($imapConnection);
-         for ($i = 0; $i < count($boxes); $i++) {
-            if ($boxes[$i]["flags"][0] != "noselect" && $boxes[$i]["flags"][1] != "noselect" && $boxes[$i]["flags"][2] != "noselect") {
-               $box = $boxes[$i]["unformatted"];
-               $box2 = replace_spaces($boxes[$i]["formatted"]);
-               echo "         <OPTION VALUE=\"$box\">$box2\n";
-            }
-         }
-         echo "         </SELECT></SMALL></TT>";
-         echo "         <SMALL><INPUT TYPE=SUBMIT NAME=\"moveButton\" VALUE=\"". _("Move") ."\"></SMALL></NOBR>\n";
-   
-         echo "      </TD>\n";
-         echo "      <TD WIDTH=40% ALIGN=RIGHT>\n";
-         echo "         <NOBR><SMALL><INPUT TYPE=SUBMIT VALUE=\"". _("Delete") ."\">&nbsp;". _("checked messages") ."</SMALL></NOBR>\n";
-         echo "      </TD>";
-         echo "   </TR>\n";
-         echo "</TABLE>\n";
-         do_hook("mailbox_form_before");
-         echo "</TD></TR>";
-         echo "<TR><TD BGCOLOR=\"$color[0]\">";
-         echo "<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=1 BGCOLOR=\"$color[0]\">";
-         echo "<TR BGCOLOR=\"$color[5]\" ALIGN=\"center\">";
-
-         for ($i=1; $i <= count($index_order); $i++) {
-            switch ($index_order[$i]) {
-               case 1: # checkbox
-                  echo "   <TD WIDTH=1%><B>&nbsp;</B></TD>";
-                  break;
-               case 2: # from
-                  if ($mailbox == $sent_folder)
-               	     echo "   <TD WIDTH=30%><B>". _("To") ."</B>";
-                  else
-               	     echo "   <TD WIDTH=30%><B>". _("From") ."</B>";
+         mail_message_listing_beginning($imapConnection, 
+            "move_messages.php?msg=$msg&mailbox=$urlMailbox&where=".urlencode($search_where)."&what=".urlencode($search_what),
+             '', -1, '<b>' . _("Found") . ' ' . count($messagelist) . ' ' . _("messages") . '</b>',
+             '&nbsp;');
          
-                  if ($sort == 2)
-                     echo "   <A HREF=\"right_main.php?newsort=3&startMessage=1&mailbox=$urlMailbox\" TARGET=\"right\"><IMG SRC=\"../images/up_pointer.gif\" BORDER=0></A></TD>\n";
-                  else if ($sort == 3)
-                     echo "   <A HREF=\"right_main.php?newsort=2&startMessage=1&mailbox=$urlMailbox\" TARGET=\"right\"><IMG SRC=\"../images/down_pointer.gif\" BORDER=0></A></TD>\n";
-                  else
-                     echo "   <A HREF=\"right_main.php?newsort=3&startMessage=1&mailbox=$urlMailbox\" TARGET=\"right\"><IMG SRC=\"../images/sort_none.gif\" BORDER=0></A></TD>\n";
-                  break;
-               case 3: # date
-                  echo "   <TD nowrap WIDTH=1%><B>". _("Date") ."</B>";
-                  if ($sort == 0)
-                     echo "   <A HREF=\"right_main.php?newsort=1&startMessage=1&mailbox=$urlMailbox\" TARGET=\"right\"><IMG SRC=\"../images/up_pointer.gif\" BORDER=0></A></TD>\n";
-                  else if ($sort == 1)
-                     echo "   <A HREF=\"right_main.php?newsort=0&startMessage=1&mailbox=$urlMailbox\" TARGET=\"right\"><IMG SRC=\"../images/down_pointer.gif\" BORDER=0></A></TD>\n";
-                  else
-                     echo "   <A HREF=\"right_main.php?newsort=0&startMessage=1&mailbox=$urlMailbox\" TARGET=\"right\"><IMG SRC=\"../images/sort_none.gif\" BORDER=0></A></TD>\n";
-                  break;
-               case 4: # subject
-                  echo "   <TD WIDTH=%><B>". _("Subject") ."</B>\n";
-                  if ($sort == 4)
-                     echo "   <A HREF=\"right_main.php?newsort=5&startMessage=1&mailbox=$urlMailbox\" TARGET=\"right\"><IMG SRC=\"../images/up_pointer.gif\" BORDER=0></A></TD>\n";
-                  else if ($sort == 5)
-                     echo "   <A HREF=\"right_main.php?newsort=4&startMessage=1&mailbox=$urlMailbox\" TARGET=\"right\"><IMG SRC=\"../images/down_pointer.gif\" BORDER=0></A></TD>\n";
-                  else
-                     echo "   <A HREF=\"right_main.php?newsort=5&startMessage=1&mailbox=$urlMailbox\" TARGET=\"right\"><IMG SRC=\"../images/sort_none.gif\" BORDER=0></A></TD>\n";
-                  break;
-               case 5: # flags
-                  echo "   <TD WIDTH=1%>&nbsp;</TD>\n";
-                  break;
-               case 6: # size   
-                  echo "   <TD WIDTH=1%><b>" . _("Size")."</b></TD>\n";
-                  break;
-            }
-         }
-         echo "</TR>";
  
          while ($j < count($msgs)) {
             printMessageInfo($imapConnection, $msgs[$j]["ID"], 0, $j, $mailbox, "", 0, $search_where, $search_what);

+ 108 - 91
functions/mailbox_display.php

@@ -242,38 +242,107 @@
       $urlMailbox = urlencode($mailbox);
 
       do_hook("mailbox_index_before");
-      /** This is the beginning of the message list table.  It wraps around all messages */
-      echo "<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0>";
 
+      $Message = '';
       if ($startMessage < $endMessage) {
-         echo "<TR BGCOLOR=\"$color[4]\"><TD>";
-         echo "<CENTER>". _("Viewing messages") ." <B>$startMessage</B> ". _("to") ." <B>$endMessage</B> ($numMessages " . _("total") . ")</CENTER>\n";
-         echo "</TD></TR>\n";
+         $Message = _("Viewing messages") ." <B>$startMessage</B> ". _("to") ." <B>$endMessage</B> ($numMessages " . _("total") . ")\n";
       } else if ($startMessage == $endMessage) {
-         echo "<TR BGCOLOR=\"$color[4]\"><TD>";
-         echo "<CENTER>". _("Viewing message") ." <B>$startMessage</B> ($numMessages " . _("total") . ")</CENTER>\n";
-         echo "</TD></TR>\n";
+         $Message = _("Viewing message") ." <B>$startMessage</B> ($numMessages " . _("total") . ")\n";
       }
 
-      echo "<TR BGCOLOR=\"$color[4]\"><TD>";
+      $More = '';
       if (($nextGroup <= $numMessages) && ($prevGroup >= 0)) {
-         echo "<A HREF=\"right_main.php?use_mailbox_cache=1&startMessage=$prevGroup&mailbox=$urlMailbox\" TARGET=\"right\">". _("Previous") ."</A> | \n";
-         echo "<A HREF=\"right_main.php?use_mailbox_cache=1&&startMessage=$nextGroup&mailbox=$urlMailbox\" TARGET=\"right\">". _("Next") ."</A>\n";
+         $More = "<A HREF=\"right_main.php?use_mailbox_cache=1&startMessage=$prevGroup&mailbox=$urlMailbox\" TARGET=\"right\">". _("Previous") ."</A> | \n";
+         $More .= "<A HREF=\"right_main.php?use_mailbox_cache=1&&startMessage=$nextGroup&mailbox=$urlMailbox\" TARGET=\"right\">". _("Next") ."</A>\n";
       }
       else if (($nextGroup > $numMessages) && ($prevGroup >= 0)) {
-         echo "<A HREF=\"right_main.php?use_mailbox_cache=1&startMessage=$prevGroup&mailbox=$urlMailbox\" TARGET=\"right\">". _("Previous") ."</A> | \n";
-         echo "<FONT COLOR=\"$color[9]\">"._("Next")."</FONT>\n";
+         $More = "<A HREF=\"right_main.php?use_mailbox_cache=1&startMessage=$prevGroup&mailbox=$urlMailbox\" TARGET=\"right\">". _("Previous") ."</A> | \n";
+         $More .= "<FONT COLOR=\"$color[9]\">"._("Next")."</FONT>\n";
       }
       else if (($nextGroup <= $numMessages) && ($prevGroup < 0)) {
-         echo "<FONT COLOR=\"$color[9]\">"._("Previous")."</FONT> | \n";
-         echo "<A HREF=\"right_main.php?use_mailbox_cache=1&startMessage=$nextGroup&mailbox=$urlMailbox\" TARGET=\"right\">". _("Next") ."</A>\n";
+         $More = "<FONT COLOR=\"$color[9]\">"._("Previous")."</FONT> | \n";
+         $More .= "<A HREF=\"right_main.php?use_mailbox_cache=1&startMessage=$nextGroup&mailbox=$urlMailbox\" TARGET=\"right\">". _("Next") ."</A>\n";
+      }
+
+      mail_message_listing_beginning($imapConnection, 
+         "move_messages.php?msg=$msg&mailbox=$urlMailbox&startMessage=$startMessage",
+          $mailbox, $sort, $Message, $More);
+
+      
+      // loop through and display the info for each message.
+      $t = 0; // $t is used for the checkbox number
+      if ($numMessages == 0) { // if there's no messages in this folder
+         echo "<TR><TD BGCOLOR=\"$color[4]\" COLSPAN=" . count($index_order);
+         echo "><CENTER><BR><B>". _("THIS FOLDER IS EMPTY") ."</B><BR>&nbsp;</CENTER></TD></TR>";
+      } else if ($startMessage == $endMessage) { // if there's only one message in the box, handle it different.
+         $i = $startMessage;
+         reset($msort);
+         do {
+            $key = key($msort);
+            next($msort);
+            $k++;
+         } while (isset ($key) && ($k < $i));
+         printMessageInfo($imapConnection, $t, $i, $key, $mailbox, $sort, $startMessage, 0, 0);
+      } else {
+         $i = $startMessage;
+         reset($msort);
+         do {
+            $key = key($msort);
+            next($msort);
+            $k++;
+         } while (isset ($key) && ($k < $i));
+
+		   do {
+            printMessageInfo($imapConnection, $t, $i, $key, $mailbox, $sort, $startMessage, 0, 0);
+            $key = key($msort);
+            $t++;
+            $i++;
+            next($msort);
+         } while ($i < ($endMessage+1));
+      }
+      echo "</TABLE>";
+
+      echo "</td></tr>\n";
+
+      if ($More)
+      {
+         echo "<TR BGCOLOR=\"$color[4]\"><TD>$More</td></tr>\n";
+      }
+      echo "</table>"; /** End of message-list table */
+
+      do_hook("mailbox_index_after");
+   }
+
+   /* Displays the standard message list header.
+    * To finish the table, you need to do a "</table></table>";
+    * $moveURL is the URL to submit the delete/move form to
+    * $mailbox is the current mailbox
+    * $sort is the current sorting method (-1 for no sorting available [searches])
+    * $Message is a message that is centered on top of the list
+    * $More is a second line that is left aligned
+    */
+   function mail_message_listing_beginning($imapConnection, $moveURL, 
+       $mailbox = '', $sort = -1, $Message = '', $More = '')
+   {
+      global $color, $index_order;
+       
+         /** This is the beginning of the message list table.  It wraps around all messages */
+      echo "<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0>";
+      
+      if ($Message)
+      {
+         echo "<TR BGCOLOR=\"$color[4]\"><TD align=center>$Message</td></tr>\n";
+      }
+      
+      if ($More)
+      {
+         echo "<TR BGCOLOR=\"$color[4]\"><TD>$More</td></tr>\n";
       }
-      echo "</TD></TR>\n";
 
       /** The delete and move options */
       echo "<TR><TD BGCOLOR=\"$color[0]\">";
 
-      echo "\n\n\n<FORM name=messageList method=post action=\"move_messages.php?msg=$msg&mailbox=$urlMailbox&startMessage=$startMessage\">";
+      echo "\n\n\n<FORM name=messageList method=post action=\"$moveURL\">\n";
       echo "<TABLE BGCOLOR=\"$color[0]\" COLS=2 BORDER=0 cellpadding=0 cellspacing=0 width=100%>\n";
       echo "   <TR>\n";
       echo "      <TD WIDTH=60% ALIGN=LEFT VALIGN=CENTER>\n";
@@ -282,19 +351,20 @@
 
       $boxes = sqimap_mailbox_list($imapConnection);
       for ($i = 0; $i < count($boxes); $i++) {
-			if ($boxes[$i]["flags"][0] != "noselect" && $boxes[$i]["flags"][1] != "noselect" && $boxes[$i]["flags"][2] != "noselect") {
-         	$box = $boxes[$i]["unformatted"];
-         	$box2 = replace_spaces($boxes[$i]["formatted"]);
-         	echo "         <OPTION VALUE=\"$box\">$box2\n";
-			}	
+         if ($boxes[$i]["flags"][0] != "noselect" && 
+            $boxes[$i]["flags"][1] != "noselect" && 
+            $boxes[$i]["flags"][2] != "noselect") {
+            $box = $boxes[$i]["unformatted"];
+            $box2 = replace_spaces($boxes[$i]["formatted"]);
+            echo "         <OPTION VALUE=\"$box\">$box2</option>\n";
+	 }
       }
       echo "         </SELECT></SMALL></TT>";
       echo "         <SMALL><INPUT TYPE=SUBMIT NAME=\"moveButton\" VALUE=\"". _("Move") ."\"></SMALL></NOBR>\n";
-
       echo "      </TD>\n";
       echo "      <TD WIDTH=40% ALIGN=RIGHT>\n";
       echo "         <NOBR><SMALL><INPUT TYPE=SUBMIT VALUE=\"". _("Delete") ."\">&nbsp;". _("checked messages") ."</SMALL></NOBR>\n";
-      echo "      </TD>";
+      echo "      </TD>\n";
       echo "   </TR>\n";
 
       echo "</TABLE>\n";
@@ -305,106 +375,53 @@
       echo "<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=1 BGCOLOR=\"$color[0]\">";
       echo "<TR BGCOLOR=\"$color[5]\" ALIGN=\"center\">";
 
+      // Print the headers
       for ($i=1; $i <= count($index_order); $i++) {
          switch ($index_order[$i]) {
             case 1: # checkbox
+            case 5: # flags
                echo "   <TD WIDTH=1%><B>&nbsp;</B></TD>";
                break;
+               
             case 2: # from
-         		if ($mailbox == $sent_folder)
-               	echo "   <TD WIDTH=30%><B>". _("To") ."</B>";
-         		else
-               	echo "   <TD WIDTH=30%><B>". _("From") ."</B>";
+               if ($mailbox == $sent_folder)
+                  echo "   <TD WIDTH=30%><B>". _("To") ."</B>";
+               else
+               	  echo "   <TD WIDTH=30%><B>". _("From") ."</B>";
          
                if ($sort == 2)
                   echo "   <A HREF=\"right_main.php?newsort=3&startMessage=1&mailbox=$urlMailbox\" TARGET=\"right\"><IMG SRC=\"../images/up_pointer.gif\" BORDER=0></A></TD>\n";
                else if ($sort == 3)
                   echo "   <A HREF=\"right_main.php?newsort=2&startMessage=1&mailbox=$urlMailbox\" TARGET=\"right\"><IMG SRC=\"../images/down_pointer.gif\" BORDER=0></A></TD>\n";
-               else
+               else if ($sort != -1)
                   echo "   <A HREF=\"right_main.php?newsort=3&startMessage=1&mailbox=$urlMailbox\" TARGET=\"right\"><IMG SRC=\"../images/sort_none.gif\" BORDER=0></A></TD>\n";
                break;
+               
             case 3: # date
                echo "   <TD nowrap WIDTH=1%><B>". _("Date") ."</B>";
                if ($sort == 0)
                   echo "   <A HREF=\"right_main.php?newsort=1&startMessage=1&mailbox=$urlMailbox\" TARGET=\"right\"><IMG SRC=\"../images/up_pointer.gif\" BORDER=0></A></TD>\n";
                else if ($sort == 1)
                   echo "   <A HREF=\"right_main.php?newsort=0&startMessage=1&mailbox=$urlMailbox\" TARGET=\"right\"><IMG SRC=\"../images/down_pointer.gif\" BORDER=0></A></TD>\n";
-               else
+               else if ($sort != -1)
                   echo "   <A HREF=\"right_main.php?newsort=0&startMessage=1&mailbox=$urlMailbox\" TARGET=\"right\"><IMG SRC=\"../images/sort_none.gif\" BORDER=0></A></TD>\n";
                break;
+               
             case 4: # subject
                echo "   <TD WIDTH=%><B>". _("Subject") ."</B>\n";
                if ($sort == 4)
                  echo "   <A HREF=\"right_main.php?newsort=5&startMessage=1&mailbox=$urlMailbox\" TARGET=\"right\"><IMG SRC=\"../images/up_pointer.gif\" BORDER=0></A></TD>\n";
                else if ($sort == 5)
                   echo "   <A HREF=\"right_main.php?newsort=4&startMessage=1&mailbox=$urlMailbox\" TARGET=\"right\"><IMG SRC=\"../images/down_pointer.gif\" BORDER=0></A></TD>\n";
-               else
+               else if ($sort != -1)
                   echo "   <A HREF=\"right_main.php?newsort=5&startMessage=1&mailbox=$urlMailbox\" TARGET=\"right\"><IMG SRC=\"../images/sort_none.gif\" BORDER=0></A></TD>\n";
                break;
-            case 5: # flags
-               echo "   <TD WIDTH=1%>&nbsp;</TD>\n";
-               break;
+               
             case 6: # size   
                echo "   <TD WIDTH=1%><b>" . _("Size")."</b></TD>\n";
                break;
          }
       }
-      echo "</TR>";
-
-
-      
-      // loop through and display the info for each message.
-      $t = 0; // $t is used for the checkbox number
-      if ($numMessages == 0) { // if there's no messages in this folder
-         echo "<TR><TD BGCOLOR=\"$color[4]\" COLSPAN=" . count($index_order);
-         echo "><CENTER><BR><B>". _("THIS FOLDER IS EMPTY") ."</B><BR>&nbsp;</CENTER></TD></TR>";
-      } else if ($startMessage == $endMessage) { // if there's only one message in the box, handle it different.
-         $i = $startMessage;
-         reset($msort);
-         do {
-            $key = key($msort);
-            next($msort);
-            $k++;
-         } while (isset ($key) && ($k < $i));
-         printMessageInfo($imapConnection, $t, $i, $key, $mailbox, $sort, $startMessage, 0, 0);
-      } else {
-         $i = $startMessage;
-         reset($msort);
-         do {
-            $key = key($msort);
-            next($msort);
-            $k++;
-         } while (isset ($key) && ($k < $i));
-
-		   do {
-            printMessageInfo($imapConnection, $t, $i, $key, $mailbox, $sort, $startMessage, 0, 0);
-            $key = key($msort);
-            $t++;
-            $i++;
-            next($msort);
-         } while ($i < ($endMessage+1));
-      }
-      echo "</TABLE>";
-
-      echo "</TABLE>\n";
-      echo "</TD></TR>\n";
-
-      echo "<TR BGCOLOR=\"$color[4]\"><TD>";
-      if (($nextGroup <= $numMessages) && ($prevGroup >= 0)) {
-         echo "<A HREF=\"right_main.php?use_mailbox_cache=1&startMessage=$prevGroup&mailbox=$urlMailbox\" TARGET=\"right\">" . _("Previous") . "</A> | \n";
-         echo "<A HREF=\"right_main.php?use_mailbox_cache=1&startMessage=$nextGroup&mailbox=$urlMailbox\" TARGET=\"right\">" . _("Next") . "</A>\n";
-      }
-      else if (($nextGroup > $numMessages) && ($prevGroup >= 0)) {
-         echo "<A HREF=\"right_main.php?use_mailbox_cache=1&startMessage=$prevGroup&mailbox=$urlMailbox\" TARGET=\"right\">" . _("Previous") . "</A> | \n";
-         echo "<FONT COLOR=\"$color[9]\">" . _("Next") . "</FONT>\n";
-      }
-      else if (($nextGroup <= $numMessages) && ($prevGroup < 0)) {
-         echo "<FONT COLOR=\"$color[9]\">" . _("Previous"). "</FONT> | \n";
-         echo "<A HREF=\"right_main.php?use_mailbox_cache=1&startMessage=$nextGroup&mailbox=$urlMailbox\" TARGET=\"right\">" . _("Next") . "</A>\n";
-      }
-      echo "</form>";
-      echo "</TD></TR></table>"; /** End of message-list table */
-
-      do_hook("mailbox_index_after");
+      echo "</TR>\n";
    }
 ?>