require_once(SM_PATH . 'class/html.class.php');
require_once(SM_PATH . 'functions/imap_mailbox.php');
-/* Default value for page_selector_max. */
+/* Constants:
+ * PG_SEL_MAX: default value for page_selector_max
+ * SUBJ_TRIM_AT: the length at which we trim off subjects
+ */
define('PG_SEL_MAX', 10);
+define('SUBJ_TRIM_AT', 55);
function elapsed($start)
{
$msg['FROM'] = $msg['TO'];
}
$msg['FROM'] = parseAddress($msg['FROM'],1);
-
+
/*
* This is done in case you're looking into Sent folders,
* because you can have multiple receivers.
}
}
}
-
- $msg['SUBJECT'] = decodeHeader($msg['SUBJECT']);
- $subject = processSubject($msg['SUBJECT'], $indent_array[$msg['ID']]);
-
+ $senderName = str_replace(' ',' ',$senderName);
echo html_tag( 'tr','','','','VALIGN="top"') . "\n";
if (isset($msg['FLAG_FLAGGED']) && ($msg['FLAG_FLAGGED'] == true)) {
} else {
$searchstr = '';
}
-
+
if (is_array($message_highlight_list) && count($message_highlight_list)) {
$msg['TO'] = parseAddress($msg['TO']);
$msg['CC'] = parseAddress($msg['CC']);
case('CC'):
case('FROM'):
foreach ($msg[$match_type] as $address) {
- $address[0] = decodeHeader($address[0]);
- $address[1] = decodeHeader($address[1]);
+ $address[0] = decodeHeader($address[0], true, false);
+ $address[1] = decodeHeader($address[1], true, false);
if (strstr('^^' . strtolower($address[0]), $high_val) ||
strstr('^^' . strtolower($address[1]), $high_val)) {
$hlt_color = $message_highlight_list_part['color'];
}
break;
default:
- if (strstr('^^' . strtolower($msg[$match_type]), $high_val)) {
+ $headertest = strtolower(decodeHeader($msg[$match_type], true, false));
+ if (strstr('^^' . $headertest, $high_val)) {
$hlt_color = $message_highlight_list_part['color'];
break 3;
}
}
$checked = ($checkall == 1) ? ' CHECKED' : '';
$col = 0;
+ $msg['SUBJECT'] = 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) {
$td_str .= '<a href="read_body.php?mailbox='.$urlMailbox
. '&passed_id='. $msg["ID"]
. '&startMessage='.$start_msg.$searchstr.'"';
- $td_str .= ' ' .concat_hook_function('subject_link');
+ $td_str .= ' ' .concat_hook_function('subject_link', array($start_msg, $searchstr));
if ($subject != $msg['SUBJECT']) {
$title = get_html_translation_table(HTML_SPECIALCHARS);
$title = array_flip($title);
sqgetGlobalVar('msort', $msort, SQ_SESSION);
} else {
sqsession_unregister('msort');
- sqsession_unregister('msgs');
- }
+ sqsession_unregister('msgs'); }
switch ($mode) {
case 'thread':
$id = get_thread_sort($imapConnection);
* This is the beginning of the message list table.
* It wraps around all messages
*/
- echo '<form name="messageList" method="post" action="move_messages.php">' ."\n"
+ $safe_name = preg_replace("/[^0-9A-Za-z_]/", '_', $mailbox);
+ $form_name = "FormMsgs" . $safe_name;
+ echo '<form name="' . $form_name . '" method="post" action="move_messages.php">' ."\n"
. $moveFields
. html_tag( 'table' ,
html_tag( 'tr',
echo getButton('SUBMIT', 'expungeButton',_("Expunge"))
.' ' . _("mailbox") . "\n";
}
-
+ do_hook('mailbox_display_buttons');
echo getButton('SUBMIT', 'markRead',_("Read"));
echo getButton('SUBMIT', 'markUnread',_("Unread"));
echo getButton('SUBMIT', 'delete',_("Delete")) ." \n";
/* Now that we have everything figured out, show the actual button. */
echo ' <a href="' . $source_url .'?newsort=' . $which
. '&startMessage=1&mailbox=' . urlencode($mailbox)
- . '"><IMG SRC="../images/' . $img
- . '" BORDER=0 WIDTH=12 HEIGHT=10 ALT="sort"></a>';
+ . '"><img src="../images/' . $img
+ . '" border="0" width="12" height="10" alt="sort" title="'
+ . _("Click here to change the sorting of the message list") .'"></a>';
}
function get_selectall_link($start_msg, $sort) {
$result = '';
if ($javascript_on) {
+ $safe_name = preg_replace("/[^0-9A-Za-z_]/", '_', $mailbox);
+ $func_name = "CheckAll" . $safe_name;
+ $form_name = "FormMsgs" . $safe_name;
$result = '<script language="JavaScript" type="text/javascript">'
. "\n<!-- \n"
- . "function CheckAll() {\n"
- . " for (var i = 0; i < document.messageList.elements.length; i++) {\n"
- . " if(document.messageList.elements[i].type == 'checkbox'){\n"
- . " document.messageList.elements[i].checked = "
- . " !(document.messageList.elements[i].checked);\n"
+ . "function " . $func_name . "() {\n"
+ . " for (var i = 0; i < document." . $form_name . ".elements.length; i++) {\n"
+ . " if(document." . $form_name . ".elements[i].type == 'checkbox'){\n"
+ . " document." . $form_name . ".elements[i].checked = "
+ . " !(document." . $form_name . ".elements[i].checked);\n"
. " }\n"
. " }\n"
. "}\n"
. "//-->\n"
- . '</script><a href="#" onClick="CheckAll();">' . _("Toggle All")
+ . '</script><a href="javascript:void(0)" onClick="' . $func_name . '();">' . _("Toggle All")
+/* . '</script><a href="javascript:' . $func_name . '()">' . _("Toggle All")*/
. "</a>\n";
} else {
if (strpos($PHP_SELF, "?")) {
function processSubject($subject, $threadlevel = 0) {
global $languages, $squirrelmail_language;
/* Shouldn't ever happen -- caught too many times in the IMAP functions */
- if ($subject == '')
+ if ($subject == '') {
return _("(no subject)");
+ }
- $trim_at = 55;
+ $trim_at = SUBJ_TRIM_AT;
/* if this is threaded, subtract two chars per indentlevel */
- if($threadlevel > 0 && $threadlevel <= 10)
+ if($threadlevel > 0 && $threadlevel <= 10) {
$trim_at -= (2*$threadlevel);
+ }
- if (strlen($subject) <= $trim_at)
+ if (strlen($subject) <= $trim_at) {
return $subject;
+ }
$ent_strlen = $orig_len = strlen($subject);
$trim_val = $trim_at - 5;
function_exists($languages[$squirrelmail_language]['XTRA_CODE'])) {
return $languages[$squirrelmail_language]['XTRA_CODE']('strimwidth', $subject, $trim_val);
}
- return substr($subject, 0, $trim_val) . '...';
+
+ // only print '...' when we're actually dropping part of the subject
+ if(strlen($subject) <= $trim_val) {
+ return $subject;
+ } else {
+ return substr($subject, 0, $trim_val) . '...';
+ }
}
function getMbxList($imapConnection) {