alecpl
2010-12-01 b46edc0f906e00f8cff42541f49f0d58181c836c
program/steps/mail/func.inc
@@ -46,7 +46,7 @@
}
// set imap properties and session vars
if ($mbox = get_input_value('_mbox', RCUBE_INPUT_GPC))
if (strlen(trim($mbox = get_input_value('_mbox', RCUBE_INPUT_GPC, true))))
  $IMAP->set_mailbox(($_SESSION['mbox'] = $mbox));
else if ($IMAP)
  $_SESSION['mbox'] = $IMAP->get_mailbox_name();
@@ -423,14 +423,16 @@
function rcmail_messagecount_display($attrib)
  {
  global $IMAP, $OUTPUT;
  global $RCMAIL;
  if (!$attrib['id'])
    $attrib['id'] = 'rcmcountdisplay';
  $OUTPUT->add_gui_object('countdisplay', $attrib['id']);
  $RCMAIL->output->add_gui_object('countdisplay', $attrib['id']);
  return html::span($attrib, rcmail_get_messagecount_text());
  $content =  $RCMAIL->action != 'show' ? rcmail_get_messagecount_text() : rcube_label('loading');
  return html::span($attrib, $content);
  }
@@ -495,14 +497,7 @@
function rcmail_get_messagecount_text($count=NULL, $page=NULL)
  {
  global $RCMAIL, $IMAP, $MESSAGE;
  if (isset($MESSAGE->index))
    {
    return rcube_label(array('name' => 'messagenrof',
        'vars' => array('nr'  => $MESSAGE->index+1,
        'count' => $count!==NULL ? $count : $IMAP->messagecount(NULL, 'ALL')))); // Only messages, no threads here
    }
  global $RCMAIL, $IMAP;
  if ($page===NULL)
    $page = $IMAP->list_page;
@@ -550,7 +545,7 @@
{
  global $RCMAIL;
  $old_unseen = $_SESSION['unseen_count'][$mbox_name];
  $old_unseen = rcmail_get_unseen_count($mbox_name);
  if ($count === null)
    $unseen = $RCMAIL->imap->messagecount($mbox_name, 'UNSEEN', $force);
@@ -560,10 +555,30 @@
  if ($unseen != $old_unseen || ($mbox_name == 'INBOX'))
    $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;
  rcmail_set_unseen_count($mbox_name, $unseen);
  return $unseen;
}
function rcmail_set_unseen_count($mbox_name, $count)
{
  // @TODO: this data is doubled (session and cache tables) if caching is enabled
  // Make sure we have an array here (#1487066)
  if (!is_array($_SESSION['unseen_count']))
    $_SESSION['unseen_count'] = array();
  $_SESSION['unseen_count'][$mbox_name] = $count;
}
function rcmail_get_unseen_count($mbox_name)
{
  if (is_array($_SESSION['unseen_count']) && array_key_exists($mbox_name, $_SESSION['unseen_count']))
    return $_SESSION['unseen_count'][$mbox_name];
  else
    return null;
}
@@ -836,8 +851,12 @@
    $quote_level = $q;
  }
  // quote plain text
  $body = Q(join("\n", $a_lines), 'dummy', false);
  $body = join("\n", $a_lines);
  // quote plain text (don't use Q() here, to display entities "as is")
  $table = get_html_translation_table(HTML_SPECIALCHARS);
  unset($table['?']);
  $body = strtr($body, $table);
  // colorize signature (up to <sig_max_lines> lines)
  $len = strlen($body);
@@ -977,7 +996,7 @@
  foreach ($plugin['output'] as $hkey => $row) {
    $table->add(array('class' => 'header-title'), Q($row['title']));
    $table->add(array('class' => $hkey, 'width' => "90%"), Q($row['value'], ($hkey == 'subject' ? 'strict' : 'show')));
    $table->add(array('class' => 'header '.$hkey), Q($row['value'], ($hkey == 'subject' ? 'strict' : 'show')));
  }
  // all headers division
@@ -1545,6 +1564,7 @@
      $delim   = $RCMAIL->config->header_delimiter();
      $to      = $headers_enc['To'];
      $subject = $headers_enc['Subject'];
      $header_str = rtrim($header_str);
      if ($delim != "\r\n") {
        $header_str = str_replace("\r\n", $delim, $header_str);