From 199446c16d91b62e9924e7fff8d8a869175c0c85 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak <alec@alec.pl> Date: Mon, 02 Mar 2015 06:59:48 -0500 Subject: [PATCH] Fix so localized folder name is displayed in multi-folder search result (#1490243) --- program/steps/mail/func.inc | 50 +++++++++++++++++++++++++++++++------------------- 1 files changed, 31 insertions(+), 19 deletions(-) diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc index 8dced9b..341c14b 100644 --- a/program/steps/mail/func.inc +++ b/program/steps/mail/func.inc @@ -225,7 +225,7 @@ $pagetitle = $RCMAIL->gettext('searchresult'); } else { - $mbox_name = $RCMAIL->storage->get_folder(); + $mbox_name = $RCMAIL->output->get_env('mailbox') ?: $RCMAIL->storage->get_folder(); $delimiter = $RCMAIL->storage->get_hierarchy_delimiter(); $pagetitle = $RCMAIL->localize_foldername($mbox_name, true); $pagetitle = str_replace($delimiter, " \xC2\xBB ", $pagetitle); @@ -267,7 +267,7 @@ global $RCMAIL; $delim = $RCMAIL->storage->get_hierarchy_delimiter(); - $mbox = $RCMAIL->storage->get_folder(); + $mbox = $RCMAIL->output->get_env('mailbox') ?: $RCMAIL->storage->get_folder(); $sent_mbox = $RCMAIL->config->get('sent_mbox'); $drafts_mbox = $RCMAIL->config->get('drafts_mbox'); @@ -357,8 +357,6 @@ if (!in_array('threads', $a_show_cols)) array_unshift($a_show_cols, 'threads'); - $_SESSION['skin_path'] = $RCMAIL->config->get('skin_path'); - // set client env $OUTPUT->add_gui_object('messagelist', $attrib['id']); $OUTPUT->set_env('autoexpand_threads', intval($RCMAIL->config->get('autoexpand_threads'))); @@ -401,6 +399,7 @@ $head_replace = true; } + $delimiter = $RCMAIL->storage->get_hierarchy_delimiter(); $search_set = $RCMAIL->storage->get_search_set(); $multifolder = $search_set && $search_set[1]->multi; @@ -414,7 +413,7 @@ $head_replace = true; } - $mbox = $RCMAIL->storage->get_folder(); + $mbox = $RCMAIL->output->get_env('mailbox') ?: $RCMAIL->storage->get_folder(); // make sure 'threads' and 'subject' columns are present if (!in_array('subject', $a_show_cols)) @@ -491,8 +490,16 @@ $cont = show_bytes($header->$col); else if ($col == 'date') $cont = $RCMAIL->format_date($header->date); - else if ($col == 'folder') - $cont = rcube::Q(rcube_charset::convert($header->folder, 'UTF7-IMAP')); + else if ($col == 'folder') { + if ($last_folder !== $header->folder) { + $last_folder = $header->folder; + $last_folder_name = rcube_charset::convert($last_folder, 'UTF7-IMAP'); + $last_folder_name = $RCMAIL->localize_foldername($last_folder_name, true); + $last_folder_name = str_replace($delimiter, " \xC2\xBB ", $last_folder_name); + } + + $cont = rcube::Q($last_folder_name); + } else $cont = rcube::Q($header->$col); @@ -543,8 +550,6 @@ { global $RCMAIL; - $skin_path = $_SESSION['skin_path']; - // check to see if we have some settings for sorting $sort_col = $_SESSION['sort_col']; $sort_order = $_SESSION['sort_order']; @@ -566,7 +571,7 @@ $onclick = 'return ' . rcmail_output::JS_OBJECT_NAME . ".command('menu-open', 'messagelistmenu', this, event)"; $inner = $RCMAIL->gettext('listoptions'); if (is_string($attrib['optionsmenuicon']) && $attrib['optionsmenuicon'] != 'true') { - $inner = html::img(array('src' => $skin_path . $attrib['optionsmenuicon'], 'alt' => $RCMAIL->gettext('listoptions'))); + $inner = html::img(array('src' => $RCMAIL->output->abs_url($attrib['optionsmenuicon'], true), 'alt' => $RCMAIL->gettext('listoptions'))); } $list_menu = html::a(array( 'href' => '#list-options', @@ -647,7 +652,7 @@ */ function rcmail_messagecontent_frame($attrib) { - global $OUTPUT, $RCMAIL; + global $OUTPUT; if (empty($attrib['id'])) $attrib['id'] = 'rcmailcontentwindow'; @@ -711,7 +716,7 @@ function rcmail_get_mailbox_name_text() { global $RCMAIL; - return $RCMAIL->localize_foldername($RCMAIL->storage->get_folder()); + return $RCMAIL->localize_foldername($RCMAIL->output->get_env('mailbox') ?: $RCMAIL->storage->get_folder()); } function rcmail_send_unread_count($mbox_name, $force=false, $count=null, $mark='') @@ -819,7 +824,7 @@ $wash_opts = array( 'show_washed' => false, 'allow_remote' => $p['safe'], - 'blocked_src' => "./program/resources/blocked.gif", + 'blocked_src' => 'program/resources/blocked.gif', 'charset' => RCUBE_CHARSET, 'cid_map' => $cid_replaces, 'html_elements' => array('body'), @@ -1138,7 +1143,7 @@ /** * return block to show full message headers */ -function rcmail_message_full_headers($attrib, $headers=NULL) +function rcmail_message_full_headers($attrib) { global $OUTPUT, $RCMAIL; @@ -1204,7 +1209,7 @@ else if (!rcube_utils::mem_check($part->size * 10)) { $out .= html::span('part-notice', $RCMAIL->gettext('messagetoobig'). ' ' . html::a('?_task=mail&_action=get&_download=1&_uid='.$MESSAGE->uid.'&_part='.$part->mime_id - .'&_mbox='. urlencode($RCMAIL->storage->get_folder()), $RCMAIL->gettext('download'))); + .'&_mbox='. urlencode($MESSAGE->folder), $RCMAIL->gettext('download'))); continue; } @@ -1255,7 +1260,7 @@ if (!rcube_utils::mem_check(strlen($MESSAGE->body) * 10)) { $out .= html::span('part-notice', $RCMAIL->gettext('messagetoobig'). ' ' . html::a('?_task=mail&_action=get&_download=1&_uid='.$MESSAGE->uid.'&_part=0' - .'&_mbox='. urlencode($RCMAIL->storage->get_folder()), $RCMAIL->gettext('download'))); + .'&_mbox='. urlencode($MESSAGE->folder), $RCMAIL->gettext('download'))); } else { $plugin = $RCMAIL->plugins->exec_hook('message_body_prefix', @@ -1623,7 +1628,7 @@ rcmail_output::JS_OBJECT_NAME, rcube::JQ($string)), ), html::img(array( - 'src' => $RCMAIL->config->get('skin_path') . $addicon, + 'src' => $RCMAIL->output->abs_url($addicon, true), 'alt' => "Add contact", ))); } @@ -1963,9 +1968,16 @@ // Fixes some content-type names function rcmail_fix_mimetype($name) { + $map = array( + 'image/x-ms-bmp' => 'image/bmp', // #1490282 + ); + + if ($alias = $map[strtolower($name)]) { + $name = $alias; + } // Some versions of Outlook create garbage Content-Type: // application/pdf.A520491B_3BF7_494D_8855_7FAC2C6C0608 - if (preg_match('/^application\/pdf.+/', $name)) { + else if (preg_match('/^application\/pdf.+/', $name)) { $name = 'application/pdf'; } // treat image/pjpeg (image/pjpg, image/jpg) as image/jpeg (#1489097) @@ -2051,7 +2063,7 @@ return $out; } -function rcmail_message_error($uid=null) +function rcmail_message_error() { global $RCMAIL; -- Gitblit v1.9.1