alecpl
2012-04-13 0c259682f65eaaf23ea4ccb56a706d6baf3007e4
program/steps/mail/func.inc
@@ -6,7 +6,10 @@
 |                                                                       |
 | This file is part of the Roundcube Webmail client                     |
 | Copyright (C) 2005-2010, The Roundcube Dev Team                       |
 | Licensed under the GNU GPL                                            |
 |                                                                       |
 | Licensed under the GNU General Public License version 3 or            |
 | any later version with exceptions for skins & plugins.                |
 | See the README file for a full license statement.                     |
 |                                                                       |
 | PURPOSE:                                                              |
 |   Provide webmail functionality and GUI objects                       |
@@ -96,6 +99,8 @@
  $OUTPUT->set_env('threads', $threading || $RCMAIL->storage->get_capability('THREAD'));
  $OUTPUT->set_env('preview_pane_mark_read', $RCMAIL->config->get('preview_pane_mark_read', 0));
  if ($CONFIG['delete_junk'])
    $OUTPUT->set_env('delete_junk', true);
  if ($CONFIG['flag_for_deletion'])
    $OUTPUT->set_env('flag_for_deletion', true);
  if ($CONFIG['read_when_deleted'])
@@ -225,7 +230,7 @@
  // Make sure there are no duplicated columns (#1486999)
  $a_show_cols = array_unique($a_show_cols);
  // Plugins may set header's list_cols/list_flags and other rcube_mail_header variables
  // Plugins may set header's list_cols/list_flags and other rcube_message_header variables
  // and list columns
  $plugin = $RCMAIL->plugins->exec_hook('messages_list',
    array('messages' => $a_headers, 'cols' => $a_show_cols));
@@ -879,7 +884,7 @@
  // show these headers
  $standard_headers = array('subject', 'from', 'to', 'cc', 'bcc', 'replyto',
    'mail-reply-to', 'mail-followup-to', 'date');
    'mail-reply-to', 'mail-followup-to', 'date', 'priority');
  $exclude_headers = $attrib['exclude'] ? explode(',', $attrib['exclude']) : array();
  $output_headers = array();
@@ -899,6 +904,13 @@
        $header_value = format_date($value, $RCMAIL->config->get('date_long', 'x'));
      else
        $header_value = format_date($value);
    }
    else if ($hkey == 'priority') {
      if ($value) {
        $header_value = html::span('prio' . $value, rcmail_localized_priority($value));
      }
      else
        continue;
    }
    else if ($hkey == 'replyto') {
      if ($headers['replyto'] != $headers['from'])
@@ -948,6 +960,24 @@
  return $table->show($attrib);
}
/**
 * Convert Priority header value into a localized string
 */
function rcmail_localized_priority($value)
{
  $labels_map = array(
    '1' => 'highest',
    '2' => 'high',
    '3' => 'normal',
    '4' => 'low',
    '5' => 'lowest',
  );
  if ($value && $labels_map[$value])
    return rcube_label($labels_map[$value]);
  return '';
}
/**
 * return block to show full message headers
@@ -994,10 +1024,20 @@
    foreach ($MESSAGE->parts as $i => $part) {
      if ($part->type == 'headers')
        $out .= rcmail_message_headers(sizeof($header_attrib) ? $header_attrib : NULL, $part->headers);
      else if ($part->type == 'content' && $part->size) {
      else if ($part->type == 'content') {
        // unsapported
        if ($part->realtype) {
          if ($part->realtype == 'multipart/encrypted') {
            $out .= html::span('part-notice', rcube_label('encryptedmessage'));
          }
          continue;
        }
        else if (!$part->size) {
          continue;
        }
        // Check if we have enough memory to handle the message in it
        // #1487424: we need up to 10x more memory than the body
        if (!rcmail_mem_check($part->size * 10)) {
        else if (!rcmail_mem_check($part->size * 10)) {
          $out .= html::span('part-notice', rcube_label('messagetoobig'). ' '
            . html::a('?_task=mail&_action=get&_download=1&_uid='.$MESSAGE->uid.'&_part='.$part->mime_id
              .'&_mbox='. urlencode($RCMAIL->storage->get_folder()), rcube_label('download')));
@@ -1408,9 +1448,14 @@
  $part = $MESSAGE->mime_parts[$part];
  $table = new html_table(array('cols' => 3));
  if (!empty($part->filename)) {
  $filename = $part->filename;
  if (empty($filename) && $attach_prop->mimetype == 'text/html') {
    $filename = rcube_label('htmlmessage');
  }
  if (!empty($filename)) {
    $table->add('title', Q(rcube_label('filename')));
    $table->add('header', Q($part->filename));
    $table->add('header', Q($filename));
    $table->add('download-link', html::a(array('href' => './?'.str_replace('_frame=', '_download=', $_SERVER['QUERY_STRING'])), Q(rcube_label('download'))));
  }