Aleksander Machniak
2015-01-03 7b924535fdb6fd9c4a4767893d0d0c996383df29
program/lib/Roundcube/rcube_config.php
@@ -3,7 +3,7 @@
/*
 +-----------------------------------------------------------------------+
 | This file is part of the Roundcube Webmail client                     |
 | Copyright (C) 2008-2013, The Roundcube Dev Team                       |
 | Copyright (C) 2008-2014, The Roundcube Dev Team                       |
 |                                                                       |
 | Licensed under the GNU General Public License version 3 or            |
 | any later version with exceptions for skins & plugins.                |
@@ -26,11 +26,12 @@
{
    const DEFAULT_SKIN = 'larry';
    private $env = '';
    private $paths = array();
    private $prop = array();
    private $errors = array();
    private $env       = '';
    private $paths     = array();
    private $prop      = array();
    private $errors    = array();
    private $userprefs = array();
    /**
     * Renamed options
@@ -47,7 +48,6 @@
        'messages_cache_ttl'   => 'message_cache_lifetime',
        'redundant_attachments_cache_ttl' => 'redundant_attachments_memcache_ttl',
    );
    /**
     * Object constructor
@@ -92,7 +92,6 @@
        $this->set('contactlist_fields', array('name', 'firstname', 'surname', 'email'));
    }
    /**
     * @brief Guess the type the string may fit into.
     *
@@ -120,7 +119,6 @@
        return $_;
    }
    /**
     * @brief Parse environment variable into PHP type.
@@ -159,10 +157,9 @@
        default:
            $_ = $this->parse_env($_, $this->guess_type($_));
        }
        return $_;
    }
    /**
     * @brief Get environment variable value.
@@ -179,7 +176,7 @@
    private function getenv_default($varname, $default_value, $type = null)
    {
        $_ = getenv($varname);
        if ($_ === false) {
            $_ = $default_value;
        }
@@ -187,12 +184,12 @@
            if (is_null($type)) {
                $type = gettype($default_value);
            }
            $_ = $this->parse_env($_, $type);
        }
        return $_;
    }
    /**
     * Load config from local config file
@@ -240,8 +237,9 @@
        $this->prop['temp_dir'] = $this->prop['temp_dir'] ? realpath(unslashify($this->prop['temp_dir'])) : RCUBE_INSTALL_PATH . 'temp';
        // fix default imap folders encoding
        foreach (array('drafts_mbox', 'junk_mbox', 'sent_mbox', 'trash_mbox') as $folder)
        foreach (array('drafts_mbox', 'junk_mbox', 'sent_mbox', 'trash_mbox') as $folder) {
            $this->prop[$folder] = rcube_charset::convert($this->prop[$folder], RCUBE_CHARSET, 'UTF7-IMAP');
        }
        // set PHP error logging according to config
        if ($this->prop['debug_level'] & 1) {
@@ -403,7 +401,6 @@
        return $plugin['result'];
    }
    /**
     * Setter for a config parameter
     *
@@ -415,7 +412,6 @@
        $this->prop[$name] = $value;
    }
    /**
     * Override config options with the given values (eg. user prefs)
     *
@@ -426,7 +422,6 @@
        $prefs = $this->fix_legacy_props($prefs);
        $this->prop = array_merge($this->prop, $prefs, $this->userprefs);
    }
    /**
     * Merge the given prefs over the current config
@@ -455,7 +450,6 @@
        $this->prop      = array_merge($this->prop, $prefs);
    }
    /**
     * Getter for all config options
     *
@@ -465,8 +459,9 @@
    {
        $props = $this->prop;
   foreach ($props as $prop_name => $prop_value)
        foreach ($props as $prop_name => $prop_value) {
            $props[$prop_name] = $this->getenv_default('ROUNDCUBE_' . strtoupper($prop_name), $prop_value);
        }
        $rcube  = rcube::get_instance();
        $plugin = $rcube->plugins->exec_hook('config_get', array(
@@ -483,16 +478,16 @@
     */
    public function get_timezone()
    {
      if ($tz = $this->get('timezone')) {
        try {
          $tz = new DateTimeZone($tz);
          return $tz->getOffset(new DateTime('now')) / 3600;
        if ($tz = $this->get('timezone')) {
            try {
                $tz = new DateTimeZone($tz);
                return $tz->getOffset(new DateTime('now')) / 3600;
            }
            catch (Exception $e) {
            }
        }
        catch (Exception $e) {
        }
      }
      return 0;
        return 0;
    }
    /**
@@ -526,7 +521,6 @@
        return $key;
    }
    /**
     * Try to autodetect operating system and find the correct line endings
     *
@@ -537,14 +531,16 @@
        // use the configured delimiter for headers
        if (!empty($this->prop['mail_header_delimiter'])) {
            $delim = $this->prop['mail_header_delimiter'];
            if ($delim == "\n" || $delim == "\r\n")
            if ($delim == "\n" || $delim == "\r\n") {
                return $delim;
            else
            }
            else {
                rcube::raise_error(array(
                    'code' => 500, 'type' => 'php',
                    'file' => __FILE__, 'line' => __LINE__,
                    'message' => "Invalid mail_header_delimiter setting"
                ), true, false);
            }
        }
        $php_os = strtolower(substr(PHP_OS, 0, 3));
@@ -557,7 +553,6 @@
        return "\n";
    }
    /**
     * Return the mail domain configured for the given host
@@ -585,7 +580,6 @@
        return $domain;
    }
    /**
     * Getter for error state
     *
@@ -595,7 +589,6 @@
    {
        return empty($this->errors) ? false : join("\n", $this->errors);
    }
    /**
     * Internal getter for client's (browser) timezone identifier