Aleksander Machniak
2014-04-10 8d34b9dce335883c0190e9e98232ce7b48a7b9c5
Refactored storage properties setting
2 files modified
62 ■■■■■ changed files
program/lib/Roundcube/rcube.php 49 ●●●●● patch | view | raw | blame | history
program/steps/mail/func.inc 13 ●●●● patch | view | raw | blame | history
program/lib/Roundcube/rcube.php
@@ -355,29 +355,6 @@
        // for backward compat. (deprecated, will be removed)
        $this->imap = $this->storage;
        // enable caching of mail data
        $storage_cache  = $this->config->get("{$driver}_cache");
        $messages_cache = $this->config->get('messages_cache');
        // for backward compatybility
        if ($storage_cache === null && $messages_cache === null && $this->config->get('enable_caching')) {
            $storage_cache  = 'db';
            $messages_cache = true;
        }
        if ($storage_cache) {
            $this->storage->set_caching($storage_cache);
        }
        if ($messages_cache) {
            $this->storage->set_messages_caching(true);
        }
        // set pagesize from config
        $pagesize = $this->config->get('mail_pagesize');
        if (!$pagesize) {
            $pagesize = $this->config->get('pagesize', 50);
        }
        $this->storage->set_pagesize($pagesize);
        // set class options
        $options = array(
            'auth_type'   => $this->config->get("{$driver}_auth_type", 'check'),
@@ -412,19 +389,35 @@
    /**
     * Set storage parameters.
     * This must be done AFTER connecting to the server!
     */
    protected function set_storage_prop()
    {
        $storage = $this->get_storage();
        // set pagesize from config
        $pagesize = $this->config->get('mail_pagesize');
        if (!$pagesize) {
            $pagesize = $this->config->get('pagesize', 50);
        }
        $storage->set_pagesize($pagesize);
        $storage->set_charset($this->config->get('default_charset', RCUBE_CHARSET));
        if (isset($_SESSION['mbox'])) {
            $storage->set_folder($_SESSION['mbox']);
        // enable caching of mail data
        $driver         = $this->config->get('storage_driver', 'imap');
        $storage_cache  = $this->config->get("{$driver}_cache");
        $messages_cache = $this->config->get('messages_cache');
        // for backward compatybility
        if ($storage_cache === null && $messages_cache === null && $this->config->get('enable_caching')) {
            $storage_cache  = 'db';
            $messages_cache = true;
        }
        if (isset($_SESSION['page'])) {
            $storage->set_page($_SESSION['page']);
        if ($storage_cache) {
            $storage->set_caching($storage_cache);
        }
        if ($messages_cache) {
            $storage->set_messages_caching(true);
        }
    }
program/steps/mail/func.inc
@@ -24,16 +24,15 @@
$RCMAIL->storage_init();
// set imap properties and session vars
if (strlen(trim($mbox = rcube_utils::get_input_value('_mbox', rcube_utils::INPUT_GPC, true)))) {
    $RCMAIL->storage->set_folder(($_SESSION['mbox'] = $mbox));
if (!strlen($mbox = rcube_utils::get_input_value('_mbox', rcube_utils::INPUT_GPC, true))) {
    $mbox = strlen($_SESSION['mbox']) ? $_SESSION['mbox'] : 'INBOX';
}
else if ($RCMAIL->storage) {
    $_SESSION['mbox'] = $RCMAIL->storage->get_folder();
if (!($page = intval($_GET['_page']))) {
    $page = $_SESSION['page'] ? $_SESSION['page'] : 1;
}
if (!empty($_GET['_page'])) {
    $RCMAIL->storage->set_page(($_SESSION['page'] = intval($_GET['_page'])));
}
$RCMAIL->storage->set_folder($_SESSION['mbox'] = $mbox);
$RCMAIL->storage->set_page($_SESSION['page'] = $page);
$a_threading        = $RCMAIL->config->get('message_threading', array());
$message_sort_col   = $RCMAIL->config->get('message_sort_col');