- for ($q = 0; $q < $numMessages; $q++) {
- if ($mailbox == $sent_folder)
- $hdr = sqimap_get_small_header ($imapConnection, $q+1, true);
- else
- $hdr = sqimap_get_small_header ($imapConnection, $q+1, false);
-
- $from[$q] = $hdr->from;
- $date[$q] = $hdr->date;
- $subject[$q] = $hdr->subject;
- $to[$q] = $hdr->to;
- $priority[$q] = $hdr->priority;
- $cc[$q] = $hdr->cc;
-
- $flags[$q] = sqimap_get_flags ($imapConnection, $q+1);
+ if ($sort < 6) {
+ for ($q = 0; $q < $numMessages; $q++) {
+ if($mailbox == $sent_folder)
+ $hdr = sqimap_get_small_header ($imapConnection, $q+1, true);
+ else
+ $hdr = sqimap_get_small_header ($imapConnection, $q+1, false);
+
+ $from[$q] = $hdr->from;
+ $date[$q] = $hdr->date;
+ $subject[$q] = $hdr->subject;
+ $to[$q] = $hdr->to;
+ $priority[$q] = $hdr->priority;
+ $cc[$q] = $hdr->cc;
+ $size[$q] = $hdr->size;
+ $type[$q] = $hdr->type0;
+ $flags[$q] = sqimap_get_flags ($imapConnection, $q+1);
+ $id[$q] = $q + 1;
+ }
+ } else {
+ // if it's not sorted
+ if ($startMessage + ($show_num - 1) < $numMessages) {
+ $endMessage = $startMessage + ($show_num-1);
+ } else {
+ $endMessage = $numMessages;
+ }
+
+ if ($endMessage < $startMessage) {
+ $startMessage = $startMessage - $show_num;
+ if ($startMessage < 1)
+ $startMessage = 1;
+ }
+
+
+ $real_startMessage = $numMessages - $startMessage + 1;
+ $real_endMessage = $numMessages - $startMessage - $show_num;
+ if ($real_endMessage <= 0)
+ $real_endMessage = 1;
+
+ $j = 0;
+ for ($q = $real_startMessage; $q >= $real_endMessage; $q--) {
+ if($mailbox == $sent_folder)
+ $hdr = sqimap_get_small_header ($imapConnection, $q, true);
+ else
+ $hdr = sqimap_get_small_header ($imapConnection, $q, false);
+
+ $from[$j] = $hdr->from;
+ $date[$j] = $hdr->date;
+ $subject[$j] = $hdr->subject;
+ $to[$j] = $hdr->to;
+ $priority[$j] = $hdr->priority;
+ $cc[$j] = $hdr->cc;
+ $size[$j] = $hdr->size;
+ $type[$j] = $hdr->type0;
+ $flags[$j] = sqimap_get_flags ($imapConnection, $q);
+ $id[$j] = $q;
+ $j++;
+ }