- Fix "Cannot use scalar value..." warning (#1487066)

release-0.6
alecpl 14 years ago
parent 43fb35b5cb
commit b46edc0f90

@ -53,7 +53,7 @@ else if ($RCMAIL->action=='purge')
|| preg_match($trash_regexp, $mbox) || preg_match($junk_regexp, $mbox)) || preg_match($trash_regexp, $mbox) || preg_match($junk_regexp, $mbox))
{ {
$success = $IMAP->clear_mailbox($mbox); $success = $IMAP->clear_mailbox($mbox);
if ($success && !empty($_REQUEST['_reload'])) if ($success && !empty($_REQUEST['_reload']))
{ {
$OUTPUT->set_env('messagecount', 0); $OUTPUT->set_env('messagecount', 0);
@ -62,7 +62,7 @@ else if ($RCMAIL->action=='purge')
$OUTPUT->command('set_rowcount', rcmail_get_messagecount_text()); $OUTPUT->command('set_rowcount', rcmail_get_messagecount_text());
$OUTPUT->command('set_unread_count', $mbox, 0); $OUTPUT->command('set_unread_count', $mbox, 0);
$OUTPUT->command('set_quota', rcmail_quota_content()); $OUTPUT->command('set_quota', rcmail_quota_content());
$_SESSION['unseen_count'][$mbox] = 0; rcmail_set_unseen_count($mbox, 0);
} }
else else
$commands = "// purged: $success"; $commands = "// purged: $success";

@ -545,7 +545,7 @@ function rcmail_send_unread_count($mbox_name, $force=false, $count=null)
{ {
global $RCMAIL; global $RCMAIL;
$old_unseen = $_SESSION['unseen_count'][$mbox_name]; $old_unseen = rcmail_get_unseen_count($mbox_name);
if ($count === null) if ($count === null)
$unseen = $RCMAIL->imap->messagecount($mbox_name, 'UNSEEN', $force); $unseen = $RCMAIL->imap->messagecount($mbox_name, 'UNSEEN', $force);
@ -555,13 +555,33 @@ function rcmail_send_unread_count($mbox_name, $force=false, $count=null)
if ($unseen != $old_unseen || ($mbox_name == 'INBOX')) if ($unseen != $old_unseen || ($mbox_name == 'INBOX'))
$RCMAIL->output->command('set_unread_count', $mbox_name, $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 rcmail_set_unseen_count($mbox_name, $unseen);
$_SESSION['unseen_count'][$mbox_name] = $unseen;
return $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 * Sets message is_safe flag according to 'show_images' option value
* *

@ -28,15 +28,18 @@ if (!empty($a_folders))
$check_all = (bool)$RCMAIL->config->get('check_all_folders'); $check_all = (bool)$RCMAIL->config->get('check_all_folders');
foreach ($a_folders as $mbox_row) { foreach ($a_folders as $mbox_row) {
if (!$check_all && isset($_SESSION['unseen_count'][$mbox_row]) && $mbox_row != $current) $unseen_old = rcmail_get_unseen_count($mbox_row);
$unseen = $_SESSION['unseen_count'][$mbox_row];
if (!$check_all && $unseen_old !== null && $mbox_row != $current)
$unseen = $unseen_old;
else else
$unseen = $IMAP->messagecount($mbox_row, 'UNSEEN', !isset($_SESSION['unseen_count'][$mbox_row])); $unseen = $IMAP->messagecount($mbox_row, 'UNSEEN', $unseen_old === null);
if ($unseen || !isset($_SESSION['unseen_count'][$mbox_row])) { if ($unseen || $unseen_old === null) {
$OUTPUT->command('set_unread_count', $mbox_row, $unseen, $inbox && $mbox_row == 'INBOX'); $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);
} }
} }

@ -98,11 +98,11 @@ if (($uids = get_input_value('_uid', RCUBE_INPUT_POST)) && ($flag = get_input_va
// update mailboxlist // update mailboxlist
$mbox = $IMAP->get_mailbox_name(); $mbox = $IMAP->get_mailbox_name();
$unseen_count = $msg_count ? $IMAP->messagecount($mbox, 'UNSEEN') : 0; $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) { if ($old_unseen != $unseen_count) {
$OUTPUT->command('set_unread_count', $mbox, $unseen_count, ($mbox == 'INBOX')); $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)); $OUTPUT->command('set_rowcount', rcmail_get_messagecount_text($msg_count));

@ -109,11 +109,11 @@ else
// update mailboxlist // update mailboxlist
$mbox = $IMAP->get_mailbox_name(); $mbox = $IMAP->get_mailbox_name();
$unseen_count = $msg_count ? $IMAP->messagecount($mbox, 'UNSEEN') : 0; $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) { if ($old_unseen != $unseen_count) {
$OUTPUT->command('set_unread_count', $mbox, $unseen_count, ($mbox == 'INBOX')); $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)) { if ($RCMAIL->action=='moveto' && strlen($target)) {

@ -196,8 +196,11 @@ else
if ($MESSAGE && $MESSAGE->headers && !$MESSAGE->headers->seen && if ($MESSAGE && $MESSAGE->headers && !$MESSAGE->headers->seen &&
($RCMAIL->action == 'show' || ($RCMAIL->action == 'preview' && intval($CONFIG['preview_pane_mark_read']) == 0))) ($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]) if ($IMAP->set_flag($MESSAGE->uid, 'SEEN')) {
$_SESSION['unseen_count'][$mbox_name] -= 1; if ($count = rcmail_get_unseen_count($mbox_name)) {
rcmail_set_unseen_count($mbox_name, $count - 1);
}
}
} }
exit; exit;

Loading…
Cancel
Save