/* Default value for page_selector_max. */
define('PG_SEL_MAX', 10);
+function elapsed($start)
+{
+ $end = microtime();
+ list($start2, $start1) = explode(" ", $start);
+ list($end2, $end1) = explode(" ", $end);
+ $diff1 = $end1 - $start1;
+ $diff2 = $end2 - $start2;
+ if( $diff2 < 0 ){
+ $diff1 -= 1;
+ $diff2 += 1.0;
+ }
+ return $diff2 + $diff1;
+}
+
function printMessageInfo($imapConnection, $t, $not_last=true, $key, $mailbox,
$start_msg, $where, $what) {
global $checkall,
- $color, $msgs, $msort,
+ $color, $msgs, $msort, $td_str, $msg,
$default_use_priority,
$message_highlight_list,
$index_order,
if (handleAsSent($mailbox)) {
$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.
*/
- $senderNames = explode(',', $msg['FROM']);
- $senderName = '';
- if (sizeof($senderNames)){
- foreach ($senderNames as $senderNames_part) {
+
+ $senderNames = $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']);
+ if ($senderNames_part[1]) {
+ $senderName .= decodeHeader($senderNames_part[1]);
+ } else {
+ $senderName .= htmlspecialchars($senderNames_part[0]);
+ }
+ }
}
-
+ $senderName = str_replace(' ',' ',$senderName);
+ $msg['SUBJECT'] = decodeHeader($msg['SUBJECT']);
$subject = processSubject($msg['SUBJECT'], $indent_array[$msg['ID']]);
-
+ $subject = str_replace(' ',' ',$subject);
echo html_tag( 'tr','','','','VALIGN="top"') . "\n";
if (isset($msg['FLAG_FLAGGED']) && ($msg['FLAG_FLAGGED'] == true)) {
} else {
$searchstr = '';
}
- /**
- * AAAAH! Make my eyes stop bleeding!
- * Who wrote this?!
- */
- if (is_array($message_highlight_list) && count($message_highlight_list)){
+
+ if (is_array($message_highlight_list) && count($message_highlight_list)) {
+ $msg['TO'] = parseAddress($msg['TO']);
+ $msg['CC'] = parseAddress($msg['CC']);
foreach ($message_highlight_list as $message_highlight_list_part) {
if (trim($message_highlight_list_part['value']) != '') {
$high_val = strtolower($message_highlight_list_part['value']);
$match_type = strtoupper($message_highlight_list_part['match_type']);
- if ($match_type == 'TO_CC') {
- if (strstr('^^' . strtolower($msg['TO']), $high_val) ||
- strstr('^^' . strtolower($msg['CC']), $high_val)) {
- $hlt_color = $message_highlight_list_part['color'];
- continue;
- }
+ if($match_type == 'TO_CC') {
+ $match = array('TO', 'CC');
} else {
- if (strstr('^^' . strtolower($msg[$match_type]), $high_val)) {
- $hlt_color = $message_highlight_list_part['color'];
- continue;
+ $match = array($match_type);
+ }
+ foreach($match as $match_type) {
+ switch($match_type) {
+ case('TO'):
+ case('CC'):
+ case('FROM'):
+ foreach ($msg[$match_type] as $address) {
+ $address[0] = decodeHeader($address[0]);
+ $address[1] = decodeHeader($address[1]);
+ if (strstr('^^' . strtolower($address[0]), $high_val) ||
+ strstr('^^' . strtolower($address[1]), $high_val)) {
+ $hlt_color = $message_highlight_list_part['color'];
+ break 4;
+ }
+ }
+ break;
+ default:
+ if (strstr('^^' . strtolower($msg[$match_type]), $high_val)) {
+ $hlt_color = $message_highlight_list_part['color'];
+ break 3;
+ }
+ break;
}
}
}
break;
case 2: /* from */
echo html_tag( 'td',
- $italic . $bold . $flag . $fontstr . htmlentities($senderName) .
+ $italic . $bold . $flag . $fontstr . $senderName .
$fontstr_end . $flag_end . $bold_end . $italic_end,
'left',
$hlt_color );
$td_str .= '<a href="read_body.php?mailbox='.$urlMailbox
. '&passed_id='. $msg["ID"]
. '&startMessage='.$start_msg.$searchstr.'"';
- do_hook("subject_link");
+ $td_str .= ' ' .concat_hook_function('subject_link');
if ($subject != $msg['SUBJECT']) {
$title = get_html_translation_table(HTML_SPECIALCHARS);
$title = array_flip($title);
if (!$stuff) {
$td_str .= ' ';
}
+ do_hook("msg_envelope");
$td_str .= '</small></b>';
echo html_tag( 'td',
$td_str,
function getServerMessages($imapConnection, $start_msg, $show_num, $num_msgs, $id) {
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));
-
+ $id = array_slice($id, ($start_msg-1), $show_num);
$end = $start_msg + $show_num - 1;
if ($num_msgs < $show_num) {
$end_loop = $num_msgs;
} else {
$end_loop = $show_num;
}
- return fillMessageArray($imapConnection,$id,$end_loop);
+ return fillMessageArray($imapConnection,$id,$end_loop,$show_num);
} else {
return false;
}
if ($sort < 6 ) {
$end = $num_msgs;
$end_loop = $end;
+ /* set shownum to 999999 to fool sqimap_get_small_header_list
+ and rebuild the msgs_str to 1:* */
+ $show_num = 999999;
} else {
/* if it's not sorted */
if ($start_msg + ($show_num - 1) < $num_msgs) {
$start_msg = 1;
}
}
- $id = array_slice(array_reverse($id), ($start_msg-1), ($end_msg));
+ $id = array_slice(array_reverse($id), ($start_msg-1), $show_num);
$end = $start_msg + $show_num - 1;
if ($num_msgs < $show_num) {
$end_loop = $num_msgs;
$end_loop = $show_num;
}
}
- $msgs = fillMessageArray($imapConnection,$id,$end_loop);
+ $msgs = fillMessageArray($imapConnection,$id,$end_loop, $show_num);
}
return $msgs;
}
global $msgs, $msort, $auto_expunge, $thread_sort_messages,
$allow_server_sort, $server_sort_order;
+ /*
+ * For some reason, on PHP 4.3+, this being unset, and set in the session causes havoc
+ * so setting it to an empty array beforehand seems to clean up the issue, and stopping the
+ * "Your script possibly relies on a session side-effect which existed until PHP 4.2.3" error
+ */
+
+ if (!isset($msort)) {
+ $msort = array();
+ }
+
+ if (!isset($msgs)) {
+ $msgs = array();
+ }
+
+ //$start = microtime();
/* If autoexpunge is turned on, then do it now. */
$mbxresponse = sqimap_mailbox_select($imapConnection, $mailbox);
$srt = $sort;
$mode = '';
}
- sqsession_unregister('msort');
- sqsession_unregister('msgs');
+ if ($use_cache) {
+ sqgetGlobalVar('msgs', $msgs, SQ_SESSION);
+ sqgetGlobalVar('msort', $msort, SQ_SESSION);
+ } else {
+ sqsession_unregister('msort');
+ sqsession_unregister('msgs');
+ }
switch ($mode) {
case 'thread':
$id = get_thread_sort($imapConnection);
} // switch
sqsession_register($msort, 'msort');
sqsession_register($msgs, 'msgs');
+
} /* if exists > 0 */
$res = getEndMessage($start_msg, $show_num, $num_msgs);
mail_message_listing_end($num_msgs, $paginator_str, $msg_cnt_str, $color);
echo '</td></tr></table>';
+ //$t = elapsed($start);
+ //echo("elapsed time = $t seconds\n");
}
function calc_msort($msgs, $sort) {
return $msort;
}
-function fillMessageArray($imapConnection, $id, $count) {
- return sqimap_get_small_header_list($imapConnection, $id);
+function fillMessageArray($imapConnection, $id, $count, $show_num=false) {
+ return sqimap_get_small_header_list($imapConnection, $id, $show_num);
}
* 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 "</td>\n";
break;
case 6: /* size */
- echo html_tag( 'td', '<b>' . _("Size") . '</b>', 'center', '', 'width="5%"' );
+ echo html_tag( 'td', '<b>' . _("Size") . '</b>', 'center', '', 'width="5%" nowrap' );
break;
}
}
$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, "?")) {
$trim_at = 55;
- /* if this is threaded, substract two chars per indentlevel */
+ /* if this is threaded, subtract two chars per indentlevel */
if($threadlevel > 0 && $threadlevel <= 10)
$trim_at -= (2*$threadlevel);
if (strlen($subject) <= $trim_at)
return $subject;
- $ent_strlen = strlen($subject);
+ $ent_strlen = $orig_len = strlen($subject);
$trim_val = $trim_at - 5;
$ent_offset = 0;
/*
* see if this is entities-encoded string
* If so, Iterate through the whole string, find out
* the real number of characters, and if more
- * than 55, substr with an updated trim value.
+ * than 55, substr with an updated trim value.
*/
- while ( (($ent_loc = strpos($subject, '&', $ent_offset)) !== false) &&
- (($ent_loc_end = strpos($subject, ';', $ent_loc)) !== false) ) {
- $trim_val += ($ent_loc_end-$ent_loc)+1;
- $ent_strlen -= $ent_loc_end-$ent_loc;
+ $step = $ent_loc = 0;
+ while ( $ent_loc < $trim_val && (($ent_loc = strpos($subject, '&', $ent_offset)) !== false) &&
+ (($ent_loc_end = strpos($subject, ';', $ent_loc+3)) !== false) ) {
+ $trim_val += ($ent_loc_end-$ent_loc);
$ent_offset = $ent_loc_end+1;
+ ++$step;
+ }
+
+ if (($trim_val > 50) && (strlen($subject) > ($trim_val))&& (strpos($subject,';',$trim_val) < ($trim_val +6))) {
+ $i = strpos($subject,';',$trim_val);
+ if ($i) {
+ $trim_val = strpos($subject,';',$trim_val);
+ }
}
-
if ($ent_strlen <= $trim_at){
return $subject;
}
function_exists($languages[$squirrelmail_language]['XTRA_CODE'])) {
return $languages[$squirrelmail_language]['XTRA_CODE']('strimwidth', $subject, $trim_val);
}
-
return substr($subject, 0, $trim_val) . '...';
}
/* And return the result. */
return $handleAsSent_result;
}
+
?>