alecpl
2011-05-23 c9f4e9bc659a06f6d12c21ddfba0432ccf654e99
program/include/rcube_imap.php
@@ -3232,7 +3232,7 @@
        // try to subscribe it
        if ($result) {
            // clear cache
            $this->clear_cache('/^mailboxes.*/', true);
            $this->clear_cache('mailboxes', true);
            if ($subscribe)
                $this->subscribe($mailbox);
@@ -3288,7 +3288,7 @@
            // clear cache
            $this->clear_message_cache($mailbox.'.msg');
            $this->clear_cache('/^mailboxes.*/', true);
            $this->clear_cache('mailboxes', true);
        }
        return $result;
@@ -3330,7 +3330,7 @@
            // clear mailbox-related cache
            $this->clear_message_cache($mailbox.'.msg');
            $this->clear_cache('/^mailboxes.*/', true);
            $this->clear_cache('mailboxes', true);
        }
        return $result;
@@ -3786,15 +3786,15 @@
    /**
     * Clears the cache.
     *
     * @param string  $key          Cache key name or pattern
     * @param boolean $pattern_mode Enable it to clear all keys with name
     *                              matching PREG pattern in $key
     * @param string  $key         Cache key name or pattern
     * @param boolean $prefix_mode Enable it to clear all keys starting
     *                             with prefix specified in $key
     * @access public
     */
    function clear_cache($key=null, $pattern_mode=false)
    function clear_cache($key=null, $prefix_mode=false)
    {
        if ($this->cache) {
            $this->cache->remove($key, $pattern_mode);
            $this->cache->remove($key, $prefix_mode);
        }
    }
@@ -4583,20 +4583,9 @@
                    $updated = $this->conn->unsubscribe($mailbox);
            }
        // get cached mailbox list
        // clear cached mailbox list(s)
        if ($updated) {
            $a_mailbox_cache = $this->get_cache('mailboxes');
            if (!is_array($a_mailbox_cache))
                return $updated;
            // modify cached list
            if ($mode == 'subscribe')
                $a_mailbox_cache = array_merge($a_mailbox_cache, $a_mboxes);
            else if ($mode == 'unsubscribe')
                $a_mailbox_cache = array_diff($a_mailbox_cache, $a_mboxes);
            // write mailboxlist to cache
            $this->update_cache('mailboxes', $this->_sort_mailbox_list($a_mailbox_cache));
            $this->clear_cache('mailboxes', true);
        }
        return $updated;