X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=functions%2Fmailbox_display.php;h=0350414450e97b6a6562badce8e196a9acbab1c3;hp=f332ad09a2aa22aba7edf6d0eb0bef47f9a37562;hb=a3dd7047e2c00552c2b21af2bbbe8f183e0a7781;hpb=3ad5a36ed85640f1fc8c799b488941bb72086c77
diff --git a/functions/mailbox_display.php b/functions/mailbox_display.php
index f332ad09..03504144 100644
--- a/functions/mailbox_display.php
+++ b/functions/mailbox_display.php
@@ -14,17 +14,16 @@
require_once('../functions/strings.php');
require_once('../functions/html.php');
-require_once('../class/html.class');
-require_once('../functions/imap_utf7_decode_local.php');
+require_once('../class/html.class.php');
+require_once('../functions/imap_mailbox.php');
/* Default value for page_selector_max. */
define('PG_SEL_MAX', 10);
-function printMessageInfo($imapConnection, $t, $i, $key, $mailbox, $sort,
- $start_msg, $where, $what){
+function printMessageInfo($imapConnection, $t, $i, $key, $mailbox,
+ $start_msg, $where, $what) {
global $checkall,
$color, $msgs, $msort,
- $sent_folder, $draft_folder,
$default_use_priority,
$message_highlight_list,
$index_order,
@@ -34,7 +33,7 @@ function printMessageInfo($imapConnection, $t, $i, $key, $mailbox, $sort,
$server_sort_order, /* sort value when using server-sorting */
$row_count,
$allow_server_sort; /* enable/disable server-side sorting */
- $color_string = $color[4];
+ $color_string = $color[4];
if ($GLOBALS['alt_index_colors']) {
if (!isset($row_count)) {
@@ -50,27 +49,33 @@ function printMessageInfo($imapConnection, $t, $i, $key, $mailbox, $sort,
}
$msg = $msgs[$key];
- /*
- * This is done in case you're looking into Sent folders,
- * because you can have multiple receivers.
- */
- $senderNames = explode(',', $msg['FROM']);
- $senderName = '';
- if (sizeof($senderNames)){
- foreach ($senderNames as $senderNames_part) {
- if ($senderName != '') {
- $senderName .= ', ';
- }
- $senderName .= sqimap_find_displayable_name($senderNames_part);
- }
- }
-
if( $mailbox == 'None' ) {
$boxes = sqimap_mailbox_list($imapConnection);
$mailbox = $boxes[0]['unformatted'];
unset( $boxes );
}
$urlMailbox = urlencode($mailbox);
+
+ if (handleAsSent($mailbox)) {
+ $msg['FROM'] = $msg['TO'];
+ /*
+ * This is done in case you're looking into Sent folders,
+ * because you can have multiple receivers.
+ */
+ $senderNames = explode(',', $msg['FROM']);
+ $senderName = '';
+ if (sizeof($senderNames)){
+ foreach ($senderNames as $senderNames_part) {
+ if ($senderName != '') {
+ $senderName .= ', ';
+ }
+ $senderName .= sqimap_find_displayable_name($senderNames_part);
+ }
+ }
+ } else {
+ $senderName = sqimap_find_displayable_name($msg['FROM']);
+ }
+
$subject = processSubject($msg['SUBJECT']);
echo html_tag( 'tr' ) . "\n";
@@ -104,6 +109,11 @@ function printMessageInfo($imapConnection, $t, $i, $key, $mailbox, $sort,
$fontstr_end = '';
}
+ if ($where && $what) {
+ $searchstr = '&where='.$where.'&what='.$what;
+ } else {
+ $searchstr = '';
+ }
/**
* AAAAH! Make my eyes stop bleeding!
* Who wrote this?!
@@ -133,18 +143,13 @@ function printMessageInfo($imapConnection, $t, $i, $key, $mailbox, $sort,
$hlt_color = $color_string;
}
- if ($where && $what) {
- if(!isset($pos) || $pos == '') {
- $pos = '0';
- }
- $search_stuff = "&pos=" . urlencode($pos)
- . "&where=" . urlencode($where) . '&what=' . urlencode($what);
- } else {
- $search_stuff = '';
- }
-
$checked = ($checkall == 1) ? ' checked' : '';
-
+ $row = new html();
+ $row->tag = 'tr';
+ $row->class = 'm_r';
+ $row->id = 'mr'.$t;
+
+
if (sizeof($index_order)){
foreach ($index_order as $index_order_part) {
switch ($index_order_part) {
@@ -176,9 +181,9 @@ function printMessageInfo($imapConnection, $t, $i, $key, $mailbox, $sort,
$td_str .= str_repeat(" ",$indent_array[$msg['ID']]);
}
}
- $td_str .= "\n";
}
+function getThreadMessages($imapConnection, $start_msg, $show_num, $num_msgs) {
+ $id = get_thread_sort($imapConnection);
+ 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 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;
+ }
+}
+
+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 = fillMessageArray($imapConnection,$id,$end_loop);
+ }
+ return $msgs;
+}
+
+
+
/*
* 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,
- $sent_folder, $draft_folder,
- $message_highlight_list,
- $auto_expunge, $thread_sort_messages, $allow_server_sort,
- $data_dir, $username, $server_sort_order, $php_sort_order;
-
-
- /* If autoexpunge is turned on, then do it now. */
-
- $mbxresponse = sqimap_mailbox_select($imapConnection, $mailbox);
- $issent = handleAsSent($mailbox);
-
- /* If autoexpunge is turned on, then do it now. */
- if ($auto_expunge == true) {
- $exp_cnt = sqimap_mailbox_expunge($imapConnection, $mailbox, false, '');
- $mbxresponse['EXISTS'] = $mbxresponse['EXISTS'] - $exp_cnt;
- }
-
+ $use_cache, $mode='') {
+ global $msgs, $msort, $auto_expunge, $thread_sort_messages,
+ $allow_server_sort, $server_sort_order;
+
+ /* If autoexpunge is turned on, then do it now. */
+ $mbxresponse = sqimap_mailbox_select($imapConnection, $mailbox);
+ $srt = $sort;
+ /* If autoexpunge is turned on, then do it now. */
+ if ($auto_expunge == true) {
+ $exp_cnt = sqimap_mailbox_expunge($imapConnection, $mailbox, false, '');
+ $mbxresponse['EXISTS'] = $mbxresponse['EXISTS'] - $exp_cnt;
+ }
- if ($mbxresponse['EXISTS']>0) {
+ if ($mbxresponse['EXISTS']>0) {
+ /* if $start_msg is lower than $num_msgs, we probably deleted all messages
+ * in the last page. We need to re-adjust the start_msg
+ */
- /* if $start_msg is lower than $num_msgs, we probably deleted all messages
- * in the last page. We need to re-adjust the start_msg
- */
+ if($start_msg > $num_msgs) {
+ $start_msg -= $show_num;
+ if($start_msg < 1) {
+ $start_msg = 1;
+ }
+ }
- if($start_msg > $num_msgs) {
- $start_msg -= $show_num;
- if($start_msg < 1) {
- $start_msg = 1;
- }
- }
+ /* This code and the next if() block check for
+ * server-side sorting methods. The $id array is
+ * formatted and $sort is set to 6 to disable
+ * SM internal sorting
+ */
- /* This code and the next if() block check for
- * server-side sorting methods. The $id array is
- * formatted and $sort is set to 6 to disable
- * SM internal sorting
- */
if ($thread_sort_messages == 1) {
- $id = get_thread_sort($imapConnection);
- if ($id == 'no') {
- echo '' .
+ $mode = 'thread';
+ } elseif ($allow_server_sort == 1) {
+ $mode = 'serversort';
+ } else {
+ $mode = '';
+ }
+
+ switch ($mode) {
+ case 'thread':
+ session_unregister('msort');
+ session_unregister('msgs');
+ $msgs = getThreadMessages($imapConnection, $start_msg, $show_num,
+ $num_msgs);
+ if ($msgs === false) {
+ echo '' .
_("Thread sorting is not supported by your IMAP server.
Please report this to the system administrator.").
'';
- $thread_sort_messages = 0;
- $id = array();
- } else {
- $sort = 6;
- 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));
- }
- }
-
- if ($allow_server_sort == TRUE && $thread_sort_messages != 1) {
- $server_sort_order = $sort;
- $id = sqimap_get_sort_order($imapConnection, $server_sort_order,$mbxresponse);
- if ($id == 'no') {
+ $thread_sort_messages = 0;
+ $msort = $msgs = array();
+ session_register('msort');
+ session_register('msgs');
+ } else {
+ $msort= $msgs;
+ $sort = 6;
+ session_register('msort');
+ session_register('msgs');
+ }
+
+ break;
+ case 'serversort':
+ $msgs = getServerSortMessages($imapConnection, $start_msg, $show_num,
+ $num_msgs, $sort, $mbxresponse);
+ if ($msgs === false) {
echo '' .
- _( "Server-side sorting is not supported by your IMAP server.
Please report this to the system administrator.").
- '';
- $sort = $server_sort_order;
- $allow_server_sort = FALSE;
- $id = array();
- } else {
- $sort = 6;
- if ($start_msg + ($show_num - 1) < $num_msgs) {
- $end_msg = $start_msg + ($show_num-1);
+ _( "Server-side sorting is not supported by your IMAP server.
Please report this to the system administrator.").
+ '';
+ $sort = $server_sort_order;
+ $allow_server_sort = FALSE;
+ $msort = $msgs = array();
+ session_register('msort');
+ session_register('msgs');
+ $id = array();
} else {
- $end_msg = $num_msgs;
+ $sort = 6;
+ $msort = $msgs;
+ session_register('msort');
+ session_register('msgs');
}
- $id = array_slice($id, ($start_msg-1), ($end_msg));
- }
- }
+ break;
+ default:
+ if (!$use_cache) {
+ session_unregister('msgs');
+ session_unregister('msort');
+ $msgs= getSelfSortMessages($imapConnection, $start_msg, $show_num,
+ $num_msgs, $sort, $mbxresponse);
+ $msort = calc_msort($msgs, $sort);
+ session_register('msort');
+ session_register('msgs');
+ } /* !use cache */
+ break;
+ } // switch
+ } /* if exists > 0 */
+
+ $res = getEndMessage($start_msg, $show_num, $num_msgs);
+ $start_msg = $res[0];
+ $end_msg = $res[1];
+
+ $paginator_str = get_paginator_str($mailbox, $start_msg, $end_msg,
+ $num_msgs, $show_num, $sort);
- if (!$use_cache) {
- /* If it is sorted... */
- if ($num_msgs >= 1) {
- if ($sort < 6 ) {
- $id = sqimap_get_php_sort_order ($imapConnection, $mbxresponse);
- } elseif ($thread_sort_messages != 1 && $allow_server_sort != TRUE && $sort == 6) {
- /* if it's not sorted */
- $id = sqimap_get_php_sort_order ($imapConnection, $mbxresponse);
- 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;
- }
- }
-
- $real_startMessage = $num_msgs - $start_msg + 1;
- $real_endMessage = $num_msgs - $start_msg - $show_num + 2;
- if ($real_endMessage <= 0) {
- $real_endMessage = 1;
- }
- $id = array_slice(array_reverse($id), ($start_msg-1), ($end_msg));
- }
- }
- if ($sort == 6) {
- $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;
- }
- } else {
- $end = $num_msgs;
- $end_loop = $end;
- }
+ $msg_cnt_str = get_msgcnt_str($start_msg, $end_msg, $num_msgs);
- $messages = fillMessageArray($imapConnection,$id,$issent,$end_loop);
- if (!isset($messages)) {
- $messages = array();
- }
- $msgs = $messages;
-
- }
+ do_hook('mailbox_index_before');
+
+ mail_message_listing_beginning($imapConnection, $mailbox, $sort,
+ $msg_cnt_str, $paginator_str, $start_msg);
- $msort = calc_msort($msgs, $sort, $num_msgs, $use_cache);
+
+ printHeader($mailbox, $srt, $color, !$thread_sort_messages);
+ displayMessageArray($imapConnection, $num_msgs, $start_msg,
+ $msort, $mailbox, $sort, $color, $show_num,0,0);
- /* There's gotta be messages in the array for it to sort them. */
-} /* if exists > 0 */
- displayMessageArray($imapConnection, $num_msgs, $start_msg, $msgs,
- $msort, $mailbox, $sort, $color,$show_num);
+ mail_message_listing_end($num_msgs, $paginator_str, $msg_cnt_str, $color);
+
/**
* TODO: Switch to using $_SESSION[] whenever we ditch the 4.0.x series.
*/
- session_register('msgs');
}
-function calc_msort($msgs, $sort, $num_msgs, $use_cache) {
- global $thread_sort_messages, $allow_server_sort;
+function calc_msort($msgs, $sort) {
- if (($num_msgs > 0) && (!$use_cache)) {
/*
* 0 = Date (up)
* 1 = Date (dn)
@@ -399,34 +470,27 @@ function calc_msort($msgs, $sort, $num_msgs, $use_cache) {
* 4 = Subject (up)
* 5 = Subject (dn)
*/
- session_unregister('msgs');
- if (($sort == 0) || ($sort == 1)) {
- $msort = array_cleave ($msgs, 'TIME_STAMP');
- } elseif (($sort == 2) || ($sort == 3)) {
- $msort = array_cleave ($msgs, 'FROM-SORT');
- } elseif (($sort == 4) || ($sort == 5)) {
- $msort = array_cleave ($msgs, 'SUBJECT-SORT');
- } else {
- $msort = $msgs;
- }
- if ($sort < 6) {
- if ($sort % 2) {
- asort($msort);
- } else {
- arsort($msort);
- }
- }
- session_register('msort');
- } elseif ($thread_sort_messages == 1 || $allow_server_sort == TRUE) {
+ if (($sort == 0) || ($sort == 1)) {
+ $msort = array_cleave ($msgs, 'TIME_STAMP');
+ } elseif (($sort == 2) || ($sort == 3)) {
+ $msort = array_cleave ($msgs, 'FROM-SORT');
+ } elseif (($sort == 4) || ($sort == 5)) {
+ $msort = array_cleave ($msgs, 'SUBJECT-SORT');
+ } else {
$msort = $msgs;
- session_unregister('msgs');
- session_register('msort');
+ }
+ if ($sort < 6) {
+ if ($sort % 2) {
+ asort($msort);
+ } else {
+ arsort($msort);
+ }
}
return $msort;
}
-function fillMessageArray($imapConnection,$id,$issent,$count) {
- $msgs_list = sqimap_get_small_header_list($imapConnection, $id, $issent);
+function fillMessageArray($imapConnection,$id,$count) {
+ $msgs_list = sqimap_get_small_header_list($imapConnection, $id);
$messages = array();
if (sizeof($msgs_list)){
foreach ($msgs_list as $hdr) {
@@ -493,69 +557,28 @@ function fillMessageArray($imapConnection,$id,$issent,$count) {
return $messages;
}
+
/* Generic function to convert the msgs array into an HTML table. */
function displayMessageArray($imapConnection, $num_msgs, $start_msg,
- &$msgs, $msort, $mailbox, $sort, $color,
- $show_num, $search=false) {
- global $folder_prefix, $sent_folder,
- $imapServerAddress, $data_dir, $username, $use_mailbox_cache,
- $index_order, $real_endMessage, $real_startMessage, $checkall,
+ $msort, $mailbox, $sort, $color,
+ $show_num, $where=0, $what=0) {
+ global $imapServerAddress, $use_mailbox_cache,
+ $index_order, $checkall,
$indent_array, $thread_sort_messages, $allow_server_sort,
$server_sort_order, $PHP_SELF;
- /* If cache isn't already set, do it now. */
- if (!session_is_registered('msgs')) {
- session_register('msgs');
- }
- if (!session_is_registered('msort')) {
- session_register('msort');
- }
-
- 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;
- }
- }
+ $res = getEndMessage($start_msg, $show_num, $num_msgs);
+ $start_msg = $res[0];
+ $end_msg = $res[1];
$urlMailbox = urlencode($mailbox);
- do_hook('mailbox_index_before');
-
- if (preg_match('/.+search\.php.*/',$PHP_SELF,$regs)) {
- $paginator_str = get_selectall_link($start_msg, $sort);
- } else {
- $paginator_str = get_paginator_str($urlMailbox, $start_msg, $end_msg,
- $num_msgs, $show_num, $sort);
- }
-
-
- $msg_cnt_str = get_msgcnt_str($start_msg, $end_msg, $num_msgs);
-
- if (!isset($msg)) {
- $msg = '';
- }
-
/* get indent level for subject display */
if ($thread_sort_messages == 1 ) {
$indent_array = get_parent_level($imapConnection);
}
- $fstring = "move_messages.php?msg=$msg&mailbox=$urlMailbox"
- . "&startMessage=$start_msg";
- /* messages display header */
- if ($num_msgs) {
- mail_message_listing_beginning($imapConnection, $fstring,
- $mailbox, $sort, $msg_cnt_str,
- $paginator_str, $start_msg);
- }
- $groupNum = $start_msg % ($show_num - 1);
+
$real_startMessage = $start_msg;
if ($sort == 6) {
if ($end_msg - $start_msg < $show_num - 1) {
@@ -575,7 +598,7 @@ function displayMessageArray($imapConnection, $num_msgs, $start_msg,
$t = 0;
/* messages display */
- echo html_tag( 'table' ,'' , '', '', 'border="0" width="100%" cellpadding="1" cellspacing="0"' );
+
if ($num_msgs == 0) {
/* if there's no messages in this folder */
echo html_tag( 'tr',
@@ -600,8 +623,8 @@ function displayMessageArray($imapConnection, $num_msgs, $start_msg,
next($msort);
$k++;
} while (isset ($key) && ($k < $i));
- printMessageInfo($imapConnection, $t, $i, $key, $mailbox, $sort,
- $real_startMessage, 0, 0);
+ printMessageInfo($imapConnection, $t, $i, $key, $mailbox,
+ $real_startMessage, $where, $what);
} else {
$i = $start_msg;
reset($msort);
@@ -613,7 +636,7 @@ function displayMessageArray($imapConnection, $num_msgs, $start_msg,
} while (isset ($key) && ($k < $i));
do {
printMessageInfo($imapConnection, $t, $i, $key, $mailbox,
- $sort, $real_startMessage, 0, 0);
+ $real_startMessage, $where, $what);
$key = key($msort);
$t++;
$i++;
@@ -621,28 +644,6 @@ function displayMessageArray($imapConnection, $num_msgs, $start_msg,
} while ($i && $i < $endVar);
}
echo '';
-
-
- /* messages display footer */
- if ($num_msgs) {
- echo html_tag( 'table',
- html_tag( 'tr',
- html_tag( 'td',
- html_tag( 'table',
- html_tag( 'tr',
- html_tag( 'td', $paginator_str ) .
- html_tag( 'td', $msg_cnt_str, 'right' )
- )
- , '', $color[4], 'width="100%" cellpadding="1" cellspacing="1"' )
- )
- , '', $color[4] )
- , '', $color[9], 'width="100%" cellpadding="1" cellspacing="1"' );
-
- }
- /* End of message-list table */
-
- do_hook('mailbox_index_after');
- echo "\n";
}
/*
@@ -656,15 +657,14 @@ function displayMessageArray($imapConnection, $num_msgs, $start_msg,
* $More is a second line that is left aligned
*/
-function mail_message_listing_beginning ($imapConnection, $moveURL,
+function mail_message_listing_beginning ($imapConnection,
$mailbox = '', $sort = -1,
$msg_cnt_str = '',
$paginator = ' ',
$start_msg = 1) {
- global $color, $index_order, $auto_expunge, $move_to_trash, $base_uri,
- $checkall, $sent_folder, $draft_folder, $thread_sort_messages,
+ global $color, $auto_expunge, $base_uri, $thread_sort_messages,
$allow_thread_sort, $allow_server_sort, $server_sort_order,
- $lastTargetMailbox, $PHP_SELF;
+ $PHP_SELF;
$urlMailbox = urlencode($mailbox);
@@ -674,6 +674,11 @@ function mail_message_listing_beginning ($imapConnection, $moveURL,
$source_url = $PHP_SELF;
}
+ if (!isset($msg)) {
+ $msg = '';
+ }
+ $moveURL = "move_messages.php?msg=$msg&mailbox=$urlMailbox"
+ . "&startMessage=$start_msg";
/*
* This is the beginning of the message list table.
@@ -696,54 +701,34 @@ function mail_message_listing_beginning ($imapConnection, $moveURL,
. html_tag( 'td' ,'' , 'left', $color[0], '' )
. html_tag( 'table' ,'' , '', $color[0], 'border="0" width="100%" cellpadding="0" cellspacing="0"' )
. html_tag( 'tr',
- html_tag( 'td',
- ' ' . _("Move Selected To:") . '',
- 'left',
- '',
- 'valign="middle" nowrap' ) .
- html_tag( 'td',
- '' . _("Transform Selected Messages") . ': ',
- 'right',
- '',
- 'nowrap' )
+ getSmallStringCell(_("Move Selected To"), 'left') .
+ getSmallStringCell(_("Transform Selected Messages"), 'right')
)
- . html_tag( 'tr' ) ."\n"
- . html_tag( 'td', '', 'left', '', 'valign="middle" nowrap' )
- . ' '
- . ' '
- . ' \n" . "\n";
+ . html_tag( 'tr' ) ."\n"
+ . html_tag( 'td', '', 'left', '', 'valign="middle" nowrap' );
+ getMbxList($imapConnection);
+ echo getButton('SUBMIT', 'moveButton',_("Move")) . "\n";
+ echo getButton('SUBMIT', 'attache',_("Forward")) . "\n";
echo " \n"
. html_tag( 'td', '', 'right', '', 'nowrap' );
if (!$auto_expunge) {
- echo ' ' . _("mailbox") . ' ';
+ echo getButton('SUBMIT', 'expungeButton',_("Expunge"))
+ .' ' . _("mailbox") . "\n";
+ }
+
+ echo getButton('SUBMIT', 'markRead',_("Read"));
+ echo getButton('SUBMIT', 'markUnread',_("Unread"));
+ echo getButton('SUBMIT', 'delete',_("Delete")) ." \n";
+ if (!strpos($PHP_SELF,'mailbox')) {
+ $location = $PHP_SELF.'?mailbox=INBOX&startMessage=1';
+ } else {
+ $location = $PHP_SELF;
}
- echo ''
- . ''
- . ' '
- . "\n"
- . " \n";
+ echo '';
+ echo "\n"
+ . " \n";
/* draws thread sorting links */
if ($allow_thread_sort == TRUE) {
@@ -779,8 +764,8 @@ function mail_message_listing_beginning ($imapConnection, $moveURL,
} else {
$cellspacing = '1';
}
- echo html_tag( 'table' ,'' , '', $color[0], 'border="0" width="100%" cellpadding="2" cellspacing="'. $cellspacing .'"' )
- . html_tag( 'tr' ,'' , 'center', $color[5] );
+ echo html_tag( 'table' ,'' , '', $color[0], 'border="0" width="100%" cellpadding="2" cellspacing="'. $cellspacing .'"' );
+
/* if using server sort we highjack the
* the $sort var and use $server_sort_order
* instead. but here we reset sort for a bit
@@ -789,32 +774,35 @@ function mail_message_listing_beginning ($imapConnection, $moveURL,
if ($allow_server_sort == TRUE) {
$sort = $server_sort_order;
}
+}
- $showsort = false;
- if ($allow_thread_sort != TRUE || $thread_sort_messages != 1) {
- $showsort = true;
- }
- /* quick hack to support search.php */
- if (preg_match('/.+search\.php.*/',$source_url, $regs)) {
- $showsort = false;
- }
-
- /* Print the headers. */
- printHeader($mailbox, $sort, $showsort);
+function mail_message_listing_end($num_msgs, $paginator_str, $msg_cnt_str, $color) {
+ if ($num_msgs) {
+ echo html_tag( 'table',
+ html_tag( 'tr',
+ html_tag( 'td',
+ html_tag( 'table',
+ html_tag( 'tr',
+ html_tag( 'td', $paginator_str ) .
+ html_tag( 'td', $msg_cnt_str, 'right' )
+ )
+ , '', $color[4], 'width="100%" cellpadding="1" cellspacing="1"' )
+ )
+ , '', $color[4] )
+ , '', $color[9], 'width="100%" cellpadding="1" cellspacing="1"' );
- /* if using server-sorting,
- * send sort back to 6
- */
- if ($allow_server_sort == TRUE) {
- $sort = 6;
- }
- echo "\n";
+ }
+ /* End of message-list table */
+
+ do_hook('mailbox_index_after');
+ echo "\n";
}
-function printHeader($mailbox,$sort, $showsort=true) {
+function printHeader($mailbox, $sort, $color, $showsort=true) {
global $index_order;
-
+ echo html_tag( 'table' ,'' , '', $color[9], 'border="0" width="100%" cellpadding="1" cellspacing="1"' );
+ echo html_tag( 'tr' ,'' , 'center', $color[5] );
for ($i=1; $i <= count($index_order); $i++) {
switch ($index_order[$i]) {
case 1: /* checkbox */
@@ -855,9 +843,10 @@ function printHeader($mailbox,$sort, $showsort=true) {
break;
}
}
-
+ echo "\n";
}
+
/*
* This function shows the sort button. Isn't this a good comment?
*/
@@ -956,7 +945,6 @@ function get_msgcnt_str($start_msg, $end_msg, $num_msgs) {
} else {
$result = '
';
}
-
/* Return our result string. */
return ($result);
}
@@ -972,7 +960,7 @@ function get_paginator_link($box, $start_msg, $use, $text) {
} else {
$source_url = $PHP_SELF;
}
-
+
$result = '$text";
@@ -993,6 +981,8 @@ function get_paginator_str($box, $start_msg, $end_msg, $num_msgs,
$all_str = '';
$tgl_str = '';
+ $box = urlencode($box);
+
/* Create simple strings that will be creating the paginator. */
$spc = ' '; /* This will be used as a space. */
$sep = '|'; /* This will be used as a seperator. */
@@ -1209,6 +1199,56 @@ function processSubject($subject) {
return substr($subject, 0, $trim_val) . '...';
}
+function getMbxList($imapConnection) {
+ global $lastTargetMailbox;
+ echo ' ';
+}
+
+function getButton($type, $name, $value) {
+return '';
+}
+
+function getSmallStringCell($string, $align) {
+ return html_tag( 'td',
+ '' . $string . ': ',
+ $align,
+ '',
+ 'nowrap' );
+}
+
+function getEndMessage($start_msg, $show_num, $num_msgs) {
+ 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;
+ }
+ }
+ return (array($start_msg,$end_msg));
+}
+
function handleAsSent($mailbox) {
global $sent_folder, $draft_folder, $handleAsSent_result;