Browse Source

made message index order customizable

Luke Ehresman 25 năm trước cách đây
mục cha
commit
842c56ae78
4 tập tin đã thay đổi với 98 bổ sung38 xóa
  1. 1 0
      ChangeLog
  2. 71 38
      functions/mailbox_display.php
  3. 14 0
      src/load_prefs.php
  4. 12 0
      src/options.php

+ 1 - 0
ChangeLog

@@ -1,5 +1,6 @@
 Version 0.6pre1 -- DEVELOPMENT
 ------------------------------
+- Made message index order customizable (from, subject, date) can be (date, from, subject)
 - Fixed some security problems with uploading attachments
 - Added Catalan translation from Josep Sanz <jsanz@fa.upc.es>
 

+ 71 - 38
functions/mailbox_display.php

@@ -14,6 +14,7 @@
       global $color, $msgs, $msort;
 		global $sent_folder;
       global $message_highlight_list;
+      global $index_order;
 
 		$msg = $msgs[$key];
 
@@ -49,15 +50,31 @@
       if ($where && $what) {
          $search_stuff = "&where=".urlencode($where)."&what=".urlencode($what);
       }
-      
-      echo "   <td width=1% bgcolor=$hlt_color align=center><input type=checkbox name=\"msg[$t]\" value=".$msg["ID"]."$checked></TD>\n";
-      echo "   <td width=30% bgcolor=$hlt_color>$italic$bold$flag$senderName$flag_end$bold_end$italic_end</td>\n";
-      echo "   <td nowrap width=1% bgcolor=$hlt_color><center>$bold$flag".$msg["DATE_STRING"]."$flag_end$bold_end</center></td>\n";
 
-      if ($msg["FLAG_ANSWERED"] == true) echo "   <td bgcolor=$hlt_color width=1%><b><small>A</small></b></td>\n";
-      elseif (ereg("(1|2)",substr($msg["PRIORITY"],0,1))) echo "   <td bgcolor=$hlt_color width=1%><b><small><font color=$color[1]>!</font></small></b></td>\n";
-      else    echo "   <td bgcolor=$hlt_color width=1%>&nbsp;</td>\n";
-      echo "   <td bgcolor=$hlt_color>$bold<a href=\"read_body.php?mailbox=$urlMailbox&passed_id=".$msg["ID"]."&startMessage=$startMessage&show_more=0$search_stuff\">$flag$subject$flag_end</a>$bold_end</td>\n";
+      for ($i=1; $i <= count($index_order); $i++) {
+         switch ($index_order[$i]) {
+            case 1: # checkbox
+               echo "   <td width=1% bgcolor=$hlt_color align=center><input type=checkbox name=\"msg[$t]\" value=".$msg["ID"]."$checked></TD>\n";
+               break;
+            case 2: # from
+               echo "   <td width=30% bgcolor=$hlt_color>$italic$bold$flag$senderName$flag_end$bold_end$italic_end</td>\n";
+               break;
+            case 3: # date
+               echo "   <td nowrap width=1% bgcolor=$hlt_color><center>$bold$flag".$msg["DATE_STRING"]."$flag_end$bold_end</center></td>\n";
+               break;
+            case 4: # subject
+               echo "   <td bgcolor=$hlt_color>$bold<a href=\"read_body.php?mailbox=$urlMailbox&passed_id=".$msg["ID"]."&startMessage=$startMessage&show_more=0$search_stuff\">$flag$subject$flag_end</a>$bold_end</td>\n";
+               break;
+            case 5: # flags
+               if ($msg["FLAG_ANSWERED"] == true) echo "   <td bgcolor=$hlt_color width=1%><b><small>A</small></b></td>\n";
+               elseif (ereg("(1|2)",substr($msg["PRIORITY"],0,1))) echo "   <td bgcolor=$hlt_color width=1%><b><small><font color=$color[1]>!</font></small></b></td>\n";
+               else    echo "   <td bgcolor=$hlt_color width=1%>&nbsp;</td>\n";
+               break;
+            case 6: # size   
+               break;
+         }
+      }
+
 
       echo "</tr>\n";
    }
@@ -181,6 +198,7 @@
    function displayMessageArray($imapConnection, $numMessages, $startMessage, &$msgs, $msort, $mailbox, $sort, $color,$show_num) {
       global $folder_prefix, $sent_folder;
 		global $imapServerAddress;
+      global $index_order;
 
       // if cache isn't already set, do it now
       if (!session_is_registered("msgs"))
@@ -268,39 +286,54 @@
       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\">";
-      echo "   <TD WIDTH=1%><B>&nbsp;</B></TD>";
-      /** FROM HEADER **/
-		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
-         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";
-      /** DATE HEADER **/
-      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";
-      echo "   <TD WIDTH=1%>&nbsp;</TD>\n";
-      /** SUBJECT HEADER **/
-      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";
 
+      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>";
+         
+               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%>Size</TD>\n";
+               break;
+         }
+      }
       echo "</TR>";
 
+
       
       // loop through and display the info for each message.
       $t = 0; // $t is used for the checkbox number

+ 14 - 0
src/load_prefs.php

@@ -147,6 +147,20 @@
       $message_highlight_list[$i]["value"] = $ary[2];
       $message_highlight_list[$i]["match_type"] = $ary[3];
    }
+
+   #index order lets you change the order of the message index
+   $order = getPref($data_dir, $username, "order1");
+   for ($i=1; $order; $i++) {
+      $index_order[$i] = $order;
+      $order = getPref($data_dir, $username, "order".($i+1));
+   }
+   if (!$index_order) {
+      $index_order[1] = 1;
+      $index_order[2] = 2;
+      $index_order[3] = 3;
+      $index_order[4] = 5;
+      $index_order[5] = 4;
+   }
    
    $location_of_bar = getPref($data_dir, $username, 'location_of_bar');
    if ($location_of_bar == '')

+ 12 - 0
src/options.php

@@ -137,6 +137,18 @@
             </td>
          </tr>   
       </table><br>
+      <table width=100% cellpadding=3 cellspacing=0 border=0>
+         <tr>
+            <td bgcolor="<?php echo $color[9] ?>">
+               <a href="options_order.php"><?php echo _("Index Order"); ?></a>
+            </td>
+         </tr>
+         <tr>
+            <td bgcolor="<?php echo $color[0] ?>">
+               <?php echo _("The order of the message index can be rearanged and changed to contain the headers in any order you want.") ?>
+            </td>
+         </tr>   
+      </table><br>
    </td>
    <td valign=top width=50%>
       <table width=100% cellpadding=3 cellspacing=0 border=0>