X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=functions%2Fmailbox_display.php;h=fdf317f90170d6fe80deded5cb3528681df9bbbd;hb=eac264935e8da241a837ac60bd3d3a94a071c0c6;hp=ae678a786ed8912b45619f933019d1f4c3672e3c;hpb=6dc5eca489e0a529d9b6ac0316b7990701a0ec86;p=squirrelmail.git
diff --git a/functions/mailbox_display.php b/functions/mailbox_display.php
index ae678a78..fdf317f9 100644
--- a/functions/mailbox_display.php
+++ b/functions/mailbox_display.php
@@ -10,20 +10,25 @@
* table row that has sender, date, subject, etc...
*
* $Id$
+ * @package squirrelmail
*/
+/** The standard includes.. */
require_once(SM_PATH . 'functions/strings.php');
require_once(SM_PATH . 'functions/html.php');
require_once(SM_PATH . 'class/html.class.php');
require_once(SM_PATH . 'functions/imap_mailbox.php');
+require_once(SM_PATH . 'functions/imap_messages.php');
+require_once(SM_PATH . 'functions/mime.php');
-/* Constants:
- * PG_SEL_MAX: default value for page_selector_max
- * SUBJ_TRIM_AT: the length at which we trim off subjects
+/**
+ * default value for page_selector_max
*/
define('PG_SEL_MAX', 10);
-define('SUBJ_TRIM_AT', 55);
+/**
+ * @param mixed $start UNDOCUMENTED
+ */
function elapsed($start)
{
$end = microtime();
@@ -45,12 +50,16 @@ function printMessageInfo($imapConnection, $t, $not_last=true, $key, $mailbox,
$default_use_priority,
$message_highlight_list,
$index_order,
- $indent_array, /* indent subject by */
- $pos, /* Search postion (if any) */
+ $indent_array, /* indent subject by */
+ $pos, /* Search postion (if any) */
$thread_sort_messages, /* thread sorting on/off */
- $server_sort_order, /* sort value when using server-sorting */
+ $server_sort_order, /* sort value when using server-sorting */
$row_count,
- $allow_server_sort; /* enable/disable server-side sorting */
+ $allow_server_sort, /* enable/disable server-side sorting */
+ $truncate_sender, /* number of characters for From/To field (<= 0 for unchanged) */
+ $email_address,
+ $show_recipient_instead; /* show recipient name instead of default identity */
+
$color_string = $color[4];
if ($GLOBALS['alt_index_colors']) {
@@ -74,31 +83,57 @@ function printMessageInfo($imapConnection, $t, $not_last=true, $key, $mailbox,
}
$urlMailbox = urlencode($mailbox);
- if (handleAsSent($mailbox)) {
- $msg['FROM'] = $msg['TO'];
+ $bSentFolder = handleAsSent($mailbox);
+ if ((!$bSentFolder) && ($show_recipient_instead)) {
+ // If the From address is the same as $email_address, then handle as Sent
+ $from_array = parseAddress($msg['FROM'], 1);
+ if (!isset($email_address)) {
+ global $datadir, $username;
+ $email_address = getPref($datadir, $username, 'email_address');
+ }
+ $bHandleAsSent = ((isset($from_array[0][0])) && ($from_array[0][0] == $email_address));
}
- $msg['FROM'] = parseAddress($msg['FROM'],1);
+ else
+ $bHandleAsSent = $bSentFolder;
+ // If this is a Sent message, display To address instead of From
+ if ($bHandleAsSent)
+ $msg['FROM'] = $msg['TO'];
+ // Passing 1 below results in only 1 address being parsed, thus defeating the following code
+ $msg['FROM'] = parseAddress($msg['FROM']/*,1*/);
/*
* This is done in case you're looking into Sent folders,
* because you can have multiple receivers.
*/
-
$senderNames = $msg['FROM'];
$senderName = '';
+ $senderAddress = '';
if (sizeof($senderNames)){
foreach ($senderNames as $senderNames_part) {
if ($senderName != '') {
$senderName .= ', ';
+ $senderAddress .= ', ';
}
- if ($senderNames_part[1]) {
- $senderName .= decodeHeader($senderNames_part[1]);
+ $sender_address_part = htmlspecialchars($senderNames_part[0]);
+ $sender_name_part = str_replace(' ',' ', decodeHeader($senderNames_part[1]));
+ if ($sender_name_part) {
+ $senderName .= $sender_name_part;
+ $senderAddress .= $sender_name_part . ' <' . $sender_address_part . '>';
} else {
- $senderName .= htmlspecialchars($senderNames_part[0]);
+ $senderName .= $sender_address_part;
+ $senderAddress .= $sender_address_part;
}
}
}
- $senderName = str_replace(' ',' ',$senderName);
+ // If Sent, prefix with To: but only if not Sent folder
+ if ($bHandleAsSent ^ $bSentFolder) {
+ $senderName = _("To:") . ' ' . $senderName;
+ $senderAddress = _("To:") . ' ' . $senderAddress;
+ }
+
+ if ($truncate_sender > 0)
+ $senderName = truncateWithEntities($senderName, $truncate_sender);
+
echo html_tag( 'tr','','','','VALIGN="top"') . "\n";
if (isset($msg['FLAG_FLAGGED']) && ($msg['FLAG_FLAGGED'] == true)) {
@@ -115,7 +150,7 @@ function printMessageInfo($imapConnection, $t, $not_last=true, $key, $mailbox,
$bold = '';
$bold_end = '';
}
- if (handleAsSent($mailbox)) {
+ if ($bHandleAsSent) {
$italic = '';
$italic_end = '';
} else {
@@ -181,9 +216,8 @@ function printMessageInfo($imapConnection, $t, $not_last=true, $key, $mailbox,
}
$checked = ($checkall == 1) ? ' CHECKED' : '';
$col = 0;
- $msg['SUBJECT'] = decodeHeader($msg['SUBJECT']);
+ $msg['SUBJECT'] = str_replace(' ', ' ', decodeHeader($msg['SUBJECT']));
$subject = processSubject($msg['SUBJECT'], $indent_array[$msg['ID']]);
- $subject = str_replace(' ',' ',$subject);
if (sizeof($index_order)) {
foreach ($index_order as $index_order_part) {
switch ($index_order_part) {
@@ -194,11 +228,17 @@ function printMessageInfo($imapConnection, $t, $not_last=true, $key, $mailbox,
$hlt_color );
break;
case 2: /* from */
+ if ($senderAddress != $senderName) {
+ $senderAddress = strtr($senderAddress, array_flip(get_html_translation_table(HTML_SPECIALCHARS)));
+ $title = ' title="' . str_replace('"', "''", $senderAddress) . '"';
+ }
+ else
+ $title = '';
echo html_tag( 'td',
$italic . $bold . $flag . $fontstr . $senderName .
$fontstr_end . $flag_end . $bold_end . $italic_end,
'left',
- $hlt_color );
+ $hlt_color, $title );
break;
case 3: /* date */
$date_string = $msg['DATE_STRING'] . '';
@@ -479,28 +519,41 @@ function showMessagesForMailbox($imapConnection, $mailbox, $num_msgs,
$msg_cnt_str = get_msgcnt_str($start_msg, $end_msg, $num_msgs);
do_hook('mailbox_index_before');
- echo '
';
- echo '';
-
- mail_message_listing_beginning($imapConnection, $mailbox, $sort,
- $msg_cnt_str, $paginator_str, $start_msg);
- echo ' |
';
- /* line between the button area and the list */
- echo ' |
';
-
- 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);
- echo ' | | ';
-
- mail_message_listing_end($num_msgs, $paginator_str, $msg_cnt_str, $color);
- echo ' |
';
+?>
+
+
+
+
+ |
+
+ |
+
+
+
+
+ |
+
+
+' .
- '' .
- '';
+ '' .
+ ''.
+ '';
-// $moveURL = "move_messages.php?msg=$msg&mailbox=$urlMailbox"
-// . "&startMessage=$start_msg";
/*
* This is the beginning of the message list table.
* It wraps around all messages
@@ -682,81 +741,67 @@ function mail_message_listing_beginning ($imapConnection,
$safe_name = preg_replace("/[^0-9A-Za-z_]/", '_', $mailbox);
$form_name = "FormMsgs" . $safe_name;
echo '