Changed and removed some redundant code. If this doesn't work, let me know.
authorindiri69 <indiri69@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Wed, 9 Oct 2002 17:43:37 +0000 (17:43 +0000)
committerindiri69 <indiri69@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Wed, 9 Oct 2002 17:43:37 +0000 (17:43 +0000)
git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@3826 7612ce4b-ef26-0410-bec9-ea0150e637f0

functions/mailbox_display.php

index 9ff7c72..379bea5 100644 (file)
@@ -152,7 +152,6 @@ function printMessageInfo($imapConnection, $t, $not_last=true, $key, $mailbox,
                                "<input type=checkbox name=\"msg[$t]\" value=\"".$msg['ID']."\"$checked>",
                                'center',
                                $hlt_color );
-               ++$col;
                 break;
             case 2: /* from */
                 echo html_tag( 'td',
@@ -160,7 +159,6 @@ function printMessageInfo($imapConnection, $t, $not_last=true, $key, $mailbox,
                                $fontstr_end . $flag_end . $bold_end . $italic_end,
                                'left',
                                $hlt_color );
-               ++$col;                        
                 break;
             case 3: /* date */
                 echo html_tag( 'td',
@@ -169,7 +167,6 @@ function printMessageInfo($imapConnection, $t, $not_last=true, $key, $mailbox,
                                'center',
                                $hlt_color,
                                'nowrap' );
-               ++$col;                        
                 break;
             case 4: /* subject */
                 $td_str = $bold;
@@ -191,7 +188,6 @@ function printMessageInfo($imapConnection, $t, $not_last=true, $key, $mailbox,
                 }
                 $td_str .= ">$flag$subject$flag_end</a>$bold_end";
                 echo html_tag( 'td', $td_str, 'left', $hlt_color );
-               ++$col;         
                 break;
             case 5: /* flags */
                 $stuff = false;
@@ -228,7 +224,6 @@ function printMessageInfo($imapConnection, $t, $not_last=true, $key, $mailbox,
                                'center',
                                $hlt_color,
                                'nowrap' );
-               ++$col;                        
                 break;
             case 6: /* size */
                 echo html_tag( 'td',
@@ -236,78 +231,87 @@ function printMessageInfo($imapConnection, $t, $not_last=true, $key, $mailbox,
                                $fontstr_end . $bold_end,
                                'right',
                                $hlt_color );
-               ++$col;                        
                 break;
             }
+            ++$col;
         }
     }
     if ($not_last) {
-        echo '</tr>'."\n".'<tr><td COLSPAN="'.$col. '" BGCOLOR="'. 
-            $color[0].'" HEIGHT="1"></td></tr>'."\n";
+        echo '</tr>' . "\n" . '<tr><td COLSPAN="' . $col . '" BGCOLOR="' .
+             $color[0] . '" HEIGHT="1"></td></tr>' . "\n";
     } else {
         echo '</tr>'."\n";
     }
 }
 
+function getServerMessages($imapConnection, $start_msg, $show_num, $num_msgs, $id) {
+    if ($id != 'no') {
+        if ($start_msg + ($show_num - 1) < $num_msgs) {
+            $end_msg = $start_msg + ($show_num-1);
+        } else {
+            $end_msg = $num_msgs;
+        }
+        $id = array_slice($id, ($start_msg-1), ($end_msg));
+
+        $end = $start_msg + $show_num - 1;
+        if ($num_msgs < $show_num) {
+            $end_loop = $num_msgs;
+        } else if ($end > $num_msgs) {
+            $end_loop = $num_msgs - $start_msg + 1;
+        } else {
+            $end_loop = $show_num;
+        }
+        return fillMessageArray($imapConnection,$id,$end_loop);
+    } else {
+        return false;
+    }
+}
+
+function getThreadMessages($imapConnection, $start_msg, $show_num, $num_msgs) {
+    $id = get_thread_sort($imapConnection);
+    return getServerMessages($imapConnection, $start_msg, $show_num, $num_msgs, $id);
+}
+
 function getServerSortMessages($imapConnection, $start_msg, $show_num,
-                              $num_msgs, $server_sort_order, $mbxresponse) {
-  $id = sqimap_get_sort_order($imapConnection, $server_sort_order,$mbxresponse);
-  if ($id != 'no') {
-     if ($start_msg + ($show_num - 1) < $num_msgs) {
-        $end_msg = $start_msg + ($show_num-1);
-     } else {
-        $end_msg = $num_msgs;
-     }
-     $id = array_slice($id, ($start_msg-1), ($end_msg));
-
-     $end = $start_msg + $show_num - 1;
-     if ($num_msgs < $show_num) {
-        $end_loop = $num_msgs;
-     } else if ($end > $num_msgs) {
-        $end_loop = $num_msgs - $start_msg + 1;
-     } else {
-        $end_loop = $show_num;
-     }
-     return fillMessageArray($imapConnection,$id,$end_loop);
-  } else {
-     return false;
-  }
+                               $num_msgs, $server_sort_order, $mbxresponse) {
+    $id = sqimap_get_sort_order($imapConnection, $server_sort_order,$mbxresponse);
+    return getServerMessages($imapConnection, $start_msg, $show_num, $num_msgs, $id);
 }
 
 function getSelfSortMessages($imapConnection, $start_msg, $show_num,
                               $num_msgs, $sort, $mbxresponse) {
-  $msgs = array();
-  if ($num_msgs >= 1) {
-    $id = sqimap_get_php_sort_order ($imapConnection, $mbxresponse);
-    if ($sort < 6 ) {
-       $end = $num_msgs;
-       $end_loop = $end;
-    } else {
-       /* if it's not sorted */
-       if ($start_msg + ($show_num - 1) < $num_msgs) {
-          $end_msg = $start_msg + ($show_num - 1);
-       } else {
-          $end_msg = $num_msgs;
-       }
-       if ($end_msg < $start_msg) {
-          $start_msg = $start_msg - $show_num;
-          if ($start_msg < 1) {
-             $start_msg = 1;
-          }
-       }
-       $id = array_slice(array_reverse($id), ($start_msg-1), ($end_msg));
-       $end = $start_msg + $show_num - 1;
-       if ($num_msgs < $show_num) {
-          $end_loop = $num_msgs;
-       } else if ($end > $num_msgs) {
-          $end_loop = $num_msgs - $start_msg + 1;
-       } else {
-          $end_loop = $show_num;
-       }
+    $msgs = array();
+    if ($num_msgs >= 1) {
+        $id = sqimap_get_php_sort_order ($imapConnection, $mbxresponse);
+        if ($sort < 6 ) {
+            $end = $num_msgs;
+            $end_loop = $end;
+        } else {
+            /* if it's not sorted */
+            if ($start_msg + ($show_num - 1) < $num_msgs) {
+                $end_msg = $start_msg + ($show_num - 1);
+            } else {
+                $end_msg = $num_msgs;
+            }
+            if ($end_msg < $start_msg) {
+                $start_msg = $start_msg - $show_num;
+                if ($start_msg < 1) {
+                    $start_msg = 1;
+                }
+            }
+            $id = array_slice(array_reverse($id), ($start_msg-1), ($end_msg));
+            $end = $start_msg + $show_num - 1;
+            if ($num_msgs < $show_num) {
+                $end_loop = $num_msgs;
+            } else if ($end > $num_msgs) {
+                $end_loop = $num_msgs - $start_msg + 1;
+            } else {
+                $end_loop = $show_num;
+            }
+        }
+        $msgs = fillMessageArray($imapConnection,$id,$end_loop);
     }
-    $msgs = fillMessageArray($imapConnection,$id,$end_loop);
-  }
-  return $msgs;
+    return $msgs;
 }
 
 
@@ -358,30 +362,26 @@ function showMessagesForMailbox($imapConnection, $mailbox, $num_msgs,
             $mode = '';
         }
 
+        sqsession_unregister('msort');
+        sqsession_unregister('msgs');
         switch ($mode) {
             case 'thread':
-                sqsession_unregister('msort');
-                sqsession_unregister('msgs');
-                $msgs = getThreadMessages($imapConnection, $start_msg, $show_num,
-                                          $num_msgs);
+                $id   = get_thread_sort($imapConnection);
+                $msgs = getServerMessages($imapConnection, $start_msg, $show_num, $num_msgs, $id);
                 if ($msgs === false) {
                     echo '<b><small><center><font color=red>' .
                          _("Thread sorting is not supported by your IMAP server.<br>Please report this to the system administrator.").
                          '</center></small></b>';
                     $thread_sort_messages = 0;
                     $msort = $msgs = array();
-                    sqsession_register($msort, 'msort');
-                    sqsession_register($msgs, 'msgs');
                 } else {
                     $msort= $msgs;
                     $sort = 6;
-                    sqsession_register($msort, 'msort');
-                    sqsession_register($msgs, 'msgs');
                 }
                 break;
             case 'serversort':
-                $msgs = getServerSortMessages($imapConnection, $start_msg, $show_num,
-                                              $num_msgs, $sort, $mbxresponse);
+                $id   = sqimap_get_sort_order($imapConnection, $sort, $mbxresponse);
+                $msgs = getServerMessages($imapConnection, $start_msg, $show_num, $num_msgs, $id);
                 if ($msgs === false) {
                     echo '<b><small><center><font color=red>' .
                          _( "Server-side sorting is not supported by your IMAP server.<br>Please report this to the system administrator.").
@@ -389,28 +389,22 @@ function showMessagesForMailbox($imapConnection, $mailbox, $num_msgs,
                     $sort = $server_sort_order;
                     $allow_server_sort = FALSE;
                     $msort = $msgs = array();
-                    sqsession_register($msort, 'msort');
-                    sqsession_register($msgs, 'msgs');
                     $id = array();
                 } else {
-                    $sort = 6;
                     $msort = $msgs;
-                    sqsession_register($msort, 'msort');
-                    sqsession_register($msgs, 'msgs');
+                    $sort = 6;
                 }
                 break;
             default:
                 if (!$use_cache) {
-                    sqsession_unregister('msgs');
-                    sqsession_unregister('msort');
                     $msgs = getSelfSortMessages($imapConnection, $start_msg, $show_num,
                                                 $num_msgs, $sort, $mbxresponse);
                     $msort = calc_msort($msgs, $sort);
-                    sqsession_register($msort, 'msort');
-                    sqsession_register($msgs, 'msgs');
                 } /* !use cache */
                 break;
         } // switch
+        sqsession_register($msort, 'msort');
+        sqsession_register($msgs,  'msgs');
     } /* if exists > 0 */
 
     $res = getEndMessage($start_msg, $show_num, $num_msgs);
@@ -601,7 +595,7 @@ function displayMessageArray($imapConnection, $num_msgs, $start_msg,
             $k++;
         } while (isset ($key) && ($k < $i));
         printMessageInfo($imapConnection, $t, true, $key, $mailbox,
-            $real_startMessage, $where, $what);
+                         $real_startMessage, $where, $what);
     } else {
         $i = $start_msg;
         reset($msort);
@@ -611,11 +605,11 @@ function displayMessageArray($imapConnection, $num_msgs, $start_msg,
             next($msort);
             $k++;
         } while (isset ($key) && ($k < $i));
-       $not_last = true;
+        $not_last = true;
         do {
-           if (!$i || $i == $endVar-1) $not_last = false;
-            printMessageInfo($imapConnection, $t, $not_last, $key, $mailbox,
-                             $real_startMessage, $where, $what);
+            if (!$i || $i == $endVar-1) $not_last = false;
+                printMessageInfo($imapConnection, $t, $not_last, $key, $mailbox,
+                                 $real_startMessage, $where, $what);
             $key = key($msort);
             $t++;
             $i++;