From cbeea3d4d092f6ae2310175a57fe15b43d608b33 Mon Sep 17 00:00:00 2001 From: alecpl <alec@alec.pl> Date: Thu, 17 Sep 2009 08:36:32 -0400 Subject: [PATCH] - some code improvements for r2959 change --- program/steps/mail/func.inc | 70 +++++++++++++++++++--------------- 1 files changed, 39 insertions(+), 31 deletions(-) diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc index ca2b054..35354eb 100644 --- a/program/steps/mail/func.inc +++ b/program/steps/mail/func.inc @@ -152,10 +152,11 @@ $a_sort_cols = array('subject', 'date', 'from', 'to', 'size'); $mbox = $IMAP->get_mailbox_name(); - - // show 'to' instead of from in sent messages - if (($mbox==$CONFIG['sent_mbox'] || $mbox==$CONFIG['drafts_mbox']) && ($f = array_search('from', $a_show_cols)) - && !array_search('to', $a_show_cols)) + $delim = $IMAP->get_hierarchy_delimiter(); + + // show 'to' instead of 'from' in sent/draft messages + if ((strpos($mbox.$delim, $CONFIG['sent_mbox'].$delim)===0 || strpos($mbox.$delim, $CONFIG['drafts_mbox'].$delim)===0) + && ($f = array_search('from', $a_show_cols)) && !array_search('to', $a_show_cols)) $a_show_cols[$f] = 'to'; // add col definition @@ -392,9 +393,10 @@ $a_show_cols = $_SESSION['list_columns']; $mbox = $IMAP->get_mailbox_name(); - - // show 'to' instead of from in sent messages - if (($mbox == $CONFIG['sent_mbox'] || $mbox == $CONFIG['drafts_mbox']) + $delim = $IMAP->get_hierarchy_delimiter(); + + // show 'to' instead of 'from' in sent/draft messages + if ((strpos($mbox.$delim, $CONFIG['sent_mbox'].$delim)===0 || strpos($mbox.$delim, $CONFIG['drafts_mbox'].$delim)===0) && (($f = array_search('from', $a_show_cols)) !== false) && array_search('to', $a_show_cols) === false) $a_show_cols[$f] = 'to'; @@ -487,9 +489,6 @@ } -/** - * - */ function rcmail_messagecount_display($attrib) { global $IMAP, $OUTPUT; @@ -503,9 +502,6 @@ } -/** - * - */ function rcmail_quota_display($attrib) { global $OUTPUT, $COMM_PATH; @@ -522,9 +518,6 @@ } -/** - * - */ function rcmail_quota_content($quota=NULL, $attrib=NULL) { global $IMAP, $COMM_PATH, $RCMAIL; @@ -577,9 +570,6 @@ } -/** - * - */ function rcmail_get_messagecount_text($count=NULL, $page=NULL) { global $IMAP, $MESSAGE; @@ -608,26 +598,42 @@ return Q($out); } -/** - * - */ + function rcmail_mailbox_name_display($attrib) { - global $RCMAIL; + global $RCMAIL; - if (!$attrib['id']) - $attrib['id'] = 'rcmmailboxname'; + if (!$attrib['id']) + $attrib['id'] = 'rcmmailboxname'; - $RCMAIL->output->add_gui_object('mailboxname', $attrib['id']); + $RCMAIL->output->add_gui_object('mailboxname', $attrib['id']); - return html::span($attrib, rcmail_get_mailbox_name_text()); + return html::span($attrib, rcmail_get_mailbox_name_text()); } function rcmail_get_mailbox_name_text() { - global $RCMAIL; - return rcmail_localize_foldername($RCMAIL->imap->get_mailbox_name()); + global $RCMAIL; + return rcmail_localize_foldername($RCMAIL->imap->get_mailbox_name()); } + + +function rcmail_send_unread_count($mbox_name, $force=false) +{ + global $RCMAIL; + + $old_unseen = $_SESSION['unseen_count'][$mbox_name]; + $unseen = $RCMAIL->imap->messagecount($mbox_name, 'UNSEEN', $force); + + if ($unseen != $old_unseen) + $RCMAIL->output->command('set_unread_count', $mbox_name, $unseen, ($mbox_name == 'INBOX')); + + // @TODO: this data is doubled (session and cache tables) if caching is enabled + $_SESSION['unseen_count'][$mbox_name] = $unseen; + + return $unseen; +} + /** * Sets message is_safe flag according to 'show_images' option value @@ -676,11 +682,13 @@ '/(<\/nobr>)(\s+)(<nobr>)/i', // space(s) between <NOBR> '/<title>.*<\/title>/i', // PHP bug #32547 workaround: remove title tag '/^(\0\0\xFE\xFF|\xFF\xFE\0\0|\xFE\xFF|\xFF\xFE|\xEF\xBB\xBF)/', // byte-order mark (only outlook?) + '/<html\s[^>]+>/i', // washtml/DOMDocument cannot handle xml namespaces ); $html_replace = array( '\\1'.' '.'\\3', '', '', + '<html>', ); $html = preg_replace($html_search, $html_replace, $html); @@ -699,6 +707,7 @@ $html = '<head></head>'. $html; $html = substr_replace($html, '<meta http-equiv="Content-Type" content="text/html; charset='.RCMAIL_CHARSET.'" />', intval(stripos($html, '<head>')+6), 0); } + // turn relative into absolute urls $html = rcmail_resolve_base($html); @@ -719,7 +728,6 @@ $wash_opts['html_elements'][] = 'link'; $wash_opts['html_attribs'] = array('rel','type'); } -console($html); $washer = new washtml($wash_opts); $washer->add_callback('form', 'rcmail_washtml_callback'); @@ -1423,7 +1431,7 @@ 'From' => $sender, 'To' => $message->headers->mdn_to, 'Subject' => rcube_label('receiptread') . ': ' . $message->subject, - 'Message-ID' => sprintf('<%s@%s>', md5(uniqid('rcmail'.rand(),true)), $RCMAIL->config->mail_domain($_SESSION['imap_host'])), + 'Message-ID' => sprintf('<%s@%s>', md5(uniqid('rcmail'.mt_rand(),true)), $RCMAIL->config->mail_domain($_SESSION['imap_host'])), 'X-Sender' => $identity['email'], 'Content-Type' => 'multipart/report; report-type=disposition-notification', ); -- Gitblit v1.9.1