X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=functions%2Fmailbox_display.php;h=8861f11c0fac82b6eb857a314bec295e19f6720f;hb=fcba142ab53af434a003ae1d998f0697066e51d3;hp=379bea5f6f9a27ce0141a808c60478bf54ab87a3;hpb=ed230bc30766b770fd5cd8054e9355b2fdae6403;p=squirrelmail.git diff --git a/functions/mailbox_display.php b/functions/mailbox_display.php index 379bea5f..8861f11c 100644 --- a/functions/mailbox_display.php +++ b/functions/mailbox_display.php @@ -3,7 +3,7 @@ /** * mailbox_display.php * - * Copyright (c) 1999-2002 The SquirrelMail Project Team + * Copyright (c) 1999-2003 The SquirrelMail Project Team * Licensed under the GNU GPL. For full terms see the file COPYING. * * This contains functions that display mailbox information, such as the @@ -76,9 +76,9 @@ function printMessageInfo($imapConnection, $t, $not_last=true, $key, $mailbox, $senderName = sqimap_find_displayable_name($msg['FROM']); } - $subject = processSubject($msg['SUBJECT']); + $subject = processSubject($msg['SUBJECT'], $indent_array[$msg['ID']]); - echo html_tag( 'tr' ) . "\n"; + echo html_tag( 'tr','','','','VALIGN="top"') . "\n"; if (isset($msg['FLAG_FLAGGED']) && ($msg['FLAG_FLAGGED'] == true)) { $flag = ""; @@ -118,7 +118,7 @@ function printMessageInfo($imapConnection, $t, $not_last=true, $key, $mailbox, * AAAAH! Make my eyes stop bleeding! * Who wrote this?! */ - if (sizeof($message_highlight_list)){ + if (is_array($message_highlight_list) && count($message_highlight_list)){ foreach ($message_highlight_list as $message_highlight_list_part) { if (trim($message_highlight_list_part['value']) != '') { $high_val = strtolower($message_highlight_list_part['value']); @@ -142,7 +142,7 @@ function printMessageInfo($imapConnection, $t, $not_last=true, $key, $mailbox, if (!isset($hlt_color)) { $hlt_color = $color_string; } - $checked = ($checkall == 1) ? true : false; + $checked = ($checkall == 1) ? ' CHECKED' : ''; $col = 0; if (sizeof($index_order)) { foreach ($index_order as $index_order_part) { @@ -161,8 +161,12 @@ function printMessageInfo($imapConnection, $t, $not_last=true, $key, $mailbox, $hlt_color ); break; case 3: /* date */ + $date_string = $msg['DATE_STRING'] . ''; + if ($date_string == '') { + $date_string = _("Unknown date"); + } echo html_tag( 'td', - $bold . $flag . $fontstr . $msg['DATE_STRING'] . + $bold . $flag . $fontstr . $date_string . $fontstr_end . $flag_end . $bold_end, 'center', $hlt_color, @@ -171,7 +175,7 @@ function printMessageInfo($imapConnection, $t, $not_last=true, $key, $mailbox, case 4: /* subject */ $td_str = $bold; if ($thread_sort_messages == 1) { - if (isset($indent_array[$msg["ID"]])) { + if (isset($indent_array[$msg['ID']])) { $td_str .= str_repeat("    ",$indent_array[$msg['ID']]); } } @@ -417,23 +421,28 @@ function showMessagesForMailbox($imapConnection, $mailbox, $num_msgs, $msg_cnt_str = get_msgcnt_str($start_msg, $end_msg, $num_msgs); do_hook('mailbox_index_before'); - - mail_message_listing_beginning($imapConnection, $mailbox, $sort, - $msg_cnt_str, $paginator_str, $start_msg); - - - echo '
'; + echo ''; + echo ''; + /* line between the button area and the list */ + echo ''; + + echo '
'; + + mail_message_listing_beginning($imapConnection, $mailbox, $sort, + $msg_cnt_str, $paginator_str, $start_msg); + echo '
'; + echo ' '; + echo '
'; + echo ' '; + echo '
'; printHeader($mailbox, $srt, $color, !$thread_sort_messages); - displayMessageArray($imapConnection, $num_msgs, $start_msg, - $msort, $mailbox, $sort, $color, $show_num, 0, 0); + displayMessageArray($imapConnection, $num_msgs, $start_msg, + $msort, $mailbox, $sort, $color, $show_num,0,0); + echo '
'; - mail_message_listing_end($num_msgs, $paginator_str, $msg_cnt_str, $color); + mail_message_listing_end($num_msgs, $paginator_str, $msg_cnt_str, $color); echo '
'; - - /** - * TODO: Switch to using $_SESSION[] whenever we ditch the 4.0.x series. - */ } function calc_msort($msgs, $sort) { @@ -446,12 +455,19 @@ function calc_msort($msgs, $sort) { * 4 = Subject (up) * 5 = Subject (dn) */ + if (($sort == 0) || ($sort == 1)) { - $msort = array_cleave ($msgs, 'TIME_STAMP'); + foreach ($msgs as $item) { + $msort[] = $item['TIME_STAMP']; + } } elseif (($sort == 2) || ($sort == 3)) { - $msort = array_cleave ($msgs, 'FROM-SORT'); + foreach ($msgs as $item) { + $msort[] = $item['FROM-SORT']; + } } elseif (($sort == 4) || ($sort == 5)) { - $msort = array_cleave ($msgs, 'SUBJECT-SORT'); + foreach ($msgs as $item) { + $msort[] = $item['SUBJECT-SORT']; + } } else { $msort = $msgs; } @@ -534,8 +550,7 @@ function fillMessageArray($imapConnection, $id, $count) { function displayMessageArray($imapConnection, $num_msgs, $start_msg, $msort, $mailbox, $sort, $color, $show_num, $where=0, $what=0) { - global $imapServerAddress, $use_mailbox_cache, - $index_order, $checkall, + global $imapServerAddress, $use_mailbox_cache, $index_order, $indent_array, $thread_sort_messages, $allow_server_sort, $server_sort_order, $PHP_SELF; @@ -546,7 +561,7 @@ function displayMessageArray($imapConnection, $num_msgs, $start_msg, $urlMailbox = urlencode($mailbox); /* get indent level for subject display */ - if ($thread_sort_messages == 1 ) { + if ($thread_sort_messages == 1 && $num_msgs) { $indent_array = get_parent_level($imapConnection); } @@ -570,7 +585,7 @@ function displayMessageArray($imapConnection, $num_msgs, $start_msg, /* messages display */ - if ($num_msgs == 0) { + if (!$num_msgs) { /* if there's no messages in this folder */ echo html_tag( 'tr', html_tag( 'td', @@ -616,7 +631,6 @@ function displayMessageArray($imapConnection, $num_msgs, $start_msg, next($msort); } while ($i && $i < $endVar); } - echo '
'; } /* @@ -661,35 +675,43 @@ function mail_message_listing_beginning ($imapConnection, * This is the beginning of the message list table. * It wraps around all messages */ - echo "
\n" - . html_tag( 'table' ,'' , '', '', 'border="0" width="100%" cellpadding="1" cellspacing="0"' ) . + . html_tag( 'table' , html_tag( 'tr', html_tag( 'td' , html_tag( 'table' , html_tag( 'tr', html_tag( 'td', $paginator, 'left' ) . - html_tag( 'td', $msg_cnt_str, 'right' ) + html_tag( 'td', $msg_cnt_str, 'right' ) ) - , '', $color[4], 'border="0" width="100%" cellpadding="2" cellspacing="0"' ) + , '', $color[4], 'border="0" width="100%" cellpadding="1" cellspacing="0"' ) , 'left', '', '' ) , '', $color[0] ) - . html_tag( 'tr' ) . "\n" - . html_tag( 'td' ,'' , 'left', $color[0], '' ) - . html_tag( 'table' ,'' , '', $color[0], 'border="0" width="100%" cellpadding="0" cellspacing="0"' ) + , '', '', 'border="0" width="100%" cellpadding="1" cellspacing="0"' ); + /* line between header and button area */ + echo ''; + + echo ''; + echo html_tag( 'tr' ) . "\n" + . html_tag( 'td' ,'' , 'left', '', '' ) + . html_tag( 'table' ,'' , '', $color[9], 'border="0" width="100%" cellpadding="1" cellspacing="0"' ) + . '' + . html_tag( 'table' ,'' , '', $color[0], 'border="0" width="100%" cellpadding="1" cellspacing="0"' ) . html_tag( 'tr', - getSmallStringCell(' ' . _("Move Selected To"), 'left') . - getSmallStringCell(_("Transform Selected Messages"), 'right') + getSmallStringCell(_("Move Selected To"), 'left', 'nowrap') . + getSmallStringCell(_("Transform Selected Messages"), 'right') ) . 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"; + getMbxList($imapConnection); + echo getButton('SUBMIT', 'moveButton',_("Move")) . "\n"; + echo getButton('SUBMIT', 'attache',_("Forward")) . "\n"; - echo " \n" + echo " \n" . html_tag( 'td', '', 'right', '', 'nowrap' ); + + if (!$auto_expunge) { echo getButton('SUBMIT', 'expungeButton',_("Expunge")) .' ' . _("mailbox") . "\n"; @@ -726,15 +748,10 @@ function mail_message_listing_beginning ($imapConnection, , '', '', '' ); } - echo "\n"; - echo "\n"; + echo "\n"; do_hook('mailbox_form_before'); - echo '' - . html_tag( 'tr' ) - . html_tag( 'td' ,'' , '', $color[0], '' ); - /* if using server sort we highjack the * the $sort var and use $server_sort_order * instead. but here we reset sort for a bit @@ -746,8 +763,12 @@ function mail_message_listing_beginning ($imapConnection, } function mail_message_listing_end($num_msgs, $paginator_str, $msg_cnt_str, $color) { - if ($num_msgs) { - echo html_tag( 'table', + if ($num_msgs) { + /* space between list and footer */ + echo ''; + + echo ''; + echo html_tag( 'table', html_tag( 'tr', html_tag( 'td', html_tag( 'table', @@ -755,12 +776,12 @@ function mail_message_listing_end($num_msgs, $paginator_str, $msg_cnt_str, $colo html_tag( 'td', $paginator_str ) . html_tag( 'td', $msg_cnt_str, 'right' ) ) - , '', $color[4], 'width="100%" cellpadding="1" cellspacing="1"' ) + , '', $color[4], 'width="100%" border="0" cellpadding="1" cellspacing="0"' ) ) - , '', $color[4] ) - , '', $color[9], 'width="100%" cellpadding="1" cellspacing="1"' ); - - } + ) + , '', $color[9], 'width="100%" border="0" cellpadding="1" cellspacing="0"' ); + echo ''; + } /* End of message-list table */ do_hook('mailbox_index_after'); @@ -769,10 +790,18 @@ function mail_message_listing_end($num_msgs, $paginator_str, $msg_cnt_str, $colo function printHeader($mailbox, $sort, $color, $showsort=true) { global $index_order; - echo html_tag( 'table' ,'' , '', $color[4], 'border="0" width="100%" cellpadding="1" cellspacing="0"' ); echo html_tag( 'tr' ,'' , 'center', $color[5] ); - for ($i = 1; $i <= count($index_order); $i++) { - switch ($index_order[$i]) { + + /* calculate the width of the subject column based on the + * widths of the other columns */ + $widths = array(1=>1,2=>25,3=>5,4=>0,5=>1,6=>5); + $subjectwidth = 100; + foreach($index_order as $item) { + $subjectwidth -= $widths[$item]; + } + + foreach ($index_order as $item) { + switch ($item) { case 1: /* checkbox */ case 5: /* flags */ echo html_tag( 'td' ,' ' , '', '', 'width="1%"' ); @@ -799,7 +828,7 @@ function printHeader($mailbox, $sort, $color, $showsort=true) { echo "\n"; break; case 4: /* subject */ - echo html_tag( 'td' ,'' , 'left', '', '' ) + echo html_tag( 'td' ,'' , 'left', '', 'width="'.$subjectwidth.'%"' ) . '' . _("Subject") . ''; if ($showsort) { ShowSortButton($sort, $mailbox, 4, 5); @@ -1139,18 +1168,24 @@ function get_paginator_str($box, $start_msg, $end_msg, $num_msgs, return ($result); } -function processSubject($subject) { +function processSubject($subject, $threadlevel = 0) { global $languages, $squirrelmail_language; /* Shouldn't ever happen -- caught too many times in the IMAP functions */ if ($subject == '') return _("(no subject)"); - if (strlen($subject) <= 55) + $trim_at = 55; + + /* if this is threaded, substract two chars per indentlevel */ + if($threadlevel > 0 && $threadlevel <= 10) + $trim_at -= (2*$threadlevel); + + if (strlen($subject) <= $trim_at) return $subject; $ent_strlen = strlen($subject); - $trim_val=50; - $ent_offset=0; + $trim_val = $trim_at - 5; + $ent_offset = 0; /* * see if this is entities-encoded string * If so, Iterate through the whole string, find out @@ -1164,7 +1199,7 @@ function processSubject($subject) { $ent_offset = $ent_loc_end+1; } - if ($ent_strlen <= 55){ + if ($ent_strlen <= $trim_at){ return $subject; } @@ -1179,21 +1214,7 @@ function processSubject($subject) { function getMbxList($imapConnection) { global $lastTargetMailbox; echo '   '; }