Aleksander Machniak
2014-03-31 16c7644ccbbbebbec9e7821da08ca95a46a5bfb7
program/include/rcmail.php
@@ -5,8 +5,8 @@
 | program/include/rcmail.php                                            |
 |                                                                       |
 | This file is part of the Roundcube Webmail client                     |
 | Copyright (C) 2008-2013, The Roundcube Dev Team                       |
 | Copyright (C) 2011-2013, Kolab Systems AG                             |
 | Copyright (C) 2008-2014, The Roundcube Dev Team                       |
 | Copyright (C) 2011-2014, Kolab Systems AG                             |
 |                                                                       |
 | Licensed under the GNU General Public License version 3 or            |
 | any later version with exceptions for skins & plugins.                |
@@ -157,12 +157,7 @@
     */
    public function set_user($user)
    {
        if (is_object($user)) {
            $this->user = $user;
            // overwrite config with user preferences
            $this->config->set_user_prefs((array)$this->user->get_prefs());
        }
        parent::set_user($user);
        $lang = $this->language_prop($this->config->get('language', $_SESSION['language']));
        $_SESSION['language'] = $this->user->language = $lang;
@@ -1167,11 +1162,11 @@
            $week_limit  = mktime(0, 0, 0, $now_date['mon'], $now_date['mday']-6, $now_date['year']);
            $pretty_date = $this->config->get('prettydate');
            if ($pretty_date && $timestamp > $today_limit && $timestamp < $now) {
            if ($pretty_date && $timestamp > $today_limit && $timestamp <= $now) {
                $format = $this->config->get('date_today', $this->config->get('time_format', 'H:i'));
                $today  = true;
            }
            else if ($pretty_date && $timestamp > $week_limit && $timestamp < $now) {
            else if ($pretty_date && $timestamp > $week_limit && $timestamp <= $now) {
                $format = $this->config->get('date_short', 'D H:i');
            }
            else {
@@ -1360,12 +1355,31 @@
        $delimiter = $storage->get_hierarchy_delimiter();
        foreach ($list as $folder) {
            if (empty($p['exceptions']) || !in_array($folder, $p['exceptions'])) {
                $this->build_folder_tree($a_mailboxes, $folder, $delimiter);
        if (!empty($p['exceptions'])) {
            $list = array_diff($list, (array) $p['exceptions']);
        }
        if (!empty($p['additional'])) {
            foreach ($p['additional'] as $add_folder) {
                $add_items = explode($delimiter, $add_folder);
                $folder    = '';
                while (count($add_items)) {
                    $folder .= array_shift($add_items);
                    // @TODO: sorting
                    if (!in_array($folder, $list)) {
                        $list[] = $folder;
                    }
                    $folder .= $delimiter;
                }
            }
        }
        foreach ($list as $folder) {
            $this->build_folder_tree($a_mailboxes, $folder, $delimiter);
        }
        $select = new html_select($p);
        if ($p['noselection']) {