alecpl
2010-12-01 b46edc0f906e00f8cff42541f49f0d58181c836c
- Fix "Cannot use scalar value..." warning (#1487066)


6 files modified
62 ■■■■ changed files
program/steps/mail/folders.inc 4 ●●●● patch | view | raw | blame | history
program/steps/mail/func.inc 26 ●●●● patch | view | raw | blame | history
program/steps/mail/getunread.inc 15 ●●●●● patch | view | raw | blame | history
program/steps/mail/mark.inc 4 ●●●● patch | view | raw | blame | history
program/steps/mail/move_del.inc 6 ●●●● patch | view | raw | blame | history
program/steps/mail/show.inc 7 ●●●● patch | view | raw | blame | history
program/steps/mail/folders.inc
@@ -53,7 +53,7 @@
    || preg_match($trash_regexp, $mbox) || preg_match($junk_regexp, $mbox))
  {
    $success = $IMAP->clear_mailbox($mbox);
    if ($success && !empty($_REQUEST['_reload']))
    {
      $OUTPUT->set_env('messagecount', 0);
@@ -62,7 +62,7 @@
      $OUTPUT->command('set_rowcount', rcmail_get_messagecount_text());
      $OUTPUT->command('set_unread_count', $mbox, 0);
      $OUTPUT->command('set_quota', rcmail_quota_content());
      $_SESSION['unseen_count'][$mbox] = 0;
      rcmail_set_unseen_count($mbox, 0);
    }
    else
      $commands = "// purged: $success";
program/steps/mail/func.inc
@@ -545,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);
@@ -555,13 +555,33 @@
  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;
}
/**
 * Sets message is_safe flag according to 'show_images' option value
 *
program/steps/mail/getunread.inc
@@ -28,15 +28,18 @@
  $check_all = (bool)$RCMAIL->config->get('check_all_folders');
  foreach ($a_folders as $mbox_row) {
    if (!$check_all && isset($_SESSION['unseen_count'][$mbox_row]) && $mbox_row != $current)
      $unseen = $_SESSION['unseen_count'][$mbox_row];
    else
      $unseen = $IMAP->messagecount($mbox_row, 'UNSEEN', !isset($_SESSION['unseen_count'][$mbox_row]));
    $unseen_old = rcmail_get_unseen_count($mbox_row);
    if ($unseen || !isset($_SESSION['unseen_count'][$mbox_row])) {
    if (!$check_all && $unseen_old !== null && $mbox_row != $current)
      $unseen = $unseen_old;
    else
      $unseen = $IMAP->messagecount($mbox_row, 'UNSEEN', $unseen_old === null);
    if ($unseen || $unseen_old === null) {
      $OUTPUT->command('set_unread_count', $mbox_row, $unseen, $inbox && $mbox_row == 'INBOX');
    }
    $_SESSION['unseen_count'][$mbox_row] = $unseen;
    rcmail_set_unseen_count($mbox_row, $unseen);
  }
}
program/steps/mail/mark.inc
@@ -98,11 +98,11 @@
      // update mailboxlist
      $mbox = $IMAP->get_mailbox_name();
      $unseen_count = $msg_count ? $IMAP->messagecount($mbox, 'UNSEEN') : 0;
      $old_unseen = $_SESSION['unseen_count'][$mbox];
      $old_unseen = rcmail_get_unseen_count($mbox);
      if ($old_unseen != $unseen_count) {
        $OUTPUT->command('set_unread_count', $mbox, $unseen_count, ($mbox == 'INBOX'));
        $_SESSION['unseen_count'][$mbox] = $unseen_count;
        rcmail_set_unseen_count($mbox, $unseen_count);
      }
      $OUTPUT->command('set_rowcount', rcmail_get_messagecount_text($msg_count));
program/steps/mail/move_del.inc
@@ -109,11 +109,11 @@
  // update mailboxlist
  $mbox = $IMAP->get_mailbox_name();
  $unseen_count = $msg_count ? $IMAP->messagecount($mbox, 'UNSEEN') : 0;
  $old_unseen = $_SESSION['unseen_count'][$mbox];
  $old_unseen = rcmail_get_unseen_count($mbox);
  if ($old_unseen != $unseen_count) {
    $OUTPUT->command('set_unread_count', $mbox, $unseen_count, ($mbox == 'INBOX'));
    $_SESSION['unseen_count'][$mbox] = $unseen_count;
    rcmail_set_unseen_count($mbox, $unseen_count);
  }
  if ($RCMAIL->action=='moveto' && strlen($target)) {
program/steps/mail/show.inc
@@ -196,8 +196,11 @@
if ($MESSAGE && $MESSAGE->headers && !$MESSAGE->headers->seen &&
  ($RCMAIL->action == 'show' || ($RCMAIL->action == 'preview' && intval($CONFIG['preview_pane_mark_read']) == 0)))
{
  if ($IMAP->set_flag($MESSAGE->uid, 'SEEN') && $_SESSION['unseen_count'][$mbox_name])
    $_SESSION['unseen_count'][$mbox_name] -= 1;
  if ($IMAP->set_flag($MESSAGE->uid, 'SEEN')) {
    if ($count = rcmail_get_unseen_count($mbox_name)) {
      rcmail_set_unseen_count($mbox_name, $count - 1);
    }
  }
}
exit;