thomascube
2011-12-09 2b017e7f79be26563ab767bb9e97fee5d88a01f4
program/include/rcube_config.php
@@ -91,6 +91,15 @@
        // enable display_errors in 'show' level, but not for ajax requests
        ini_set('display_errors', intval(empty($_REQUEST['_remote']) && ($this->prop['debug_level'] & 4)));
        // set timezone auto settings values
        if ($this->prop['timezone'] == 'auto') {
          $this->prop['dst_active'] = intval(date('I'));
          $this->prop['_timezone_value'] = date('Z') / 3600 - $this->prop['dst_active'];
        }
        else if ($this->prop['dst_active'] === null) {
          $this->prop['dst_active'] = intval(date('I'));
        }
        // export config data
        $GLOBALS['CONFIG'] = &$this->prop;
    }
@@ -150,7 +159,20 @@
     */
    public function get($name, $def = null)
    {
        return isset($this->prop[$name]) ? $this->prop[$name] : $def;
        $result = isset($this->prop[$name]) ? $this->prop[$name] : $def;
        $rcmail = rcmail::get_instance();
        if ($name == 'timezone' && isset($this->prop['_timezone_value']))
            $result = $this->prop['_timezone_value'];
        if (is_object($rcmail->plugins)) {
            $plugin = $rcmail->plugins->exec_hook('config_get', array(
                'name' => $name, 'default' => $def, 'result' => $result));
            return $plugin['result'];
        }
        return $result;
    }
@@ -197,6 +219,14 @@
        $this->userprefs = $prefs;
        $this->prop      = array_merge($this->prop, $prefs);
        // override timezone settings with client values
        if ($this->prop['timezone'] == 'auto') {
            $this->prop['_timezone_value'] = isset($_SESSION['timezone']) ? $_SESSION['timezone'] : $this->prop['_timezone_value'];
            $this->prop['dst_active'] = $this->userprefs['dst_active'] = isset($_SESSION['dst_active']) ? $_SESSION['dst_active'] : $this->prop['dst_active'];
        }
        else if (isset($this->prop['_timezone_value']))
           unset($this->prop['_timezone_value']);
    }
@@ -210,6 +240,15 @@
        return $this->prop;
    }
    /**
     * Special getter for user's timezone offset including DST
     *
     * @return float  Timezone offset (in hours)
     */
    public function get_timezone()
    {
      return floatval($this->get('timezone')) + intval($this->get('dst_active'));
    }
    /**
     * Return requested DES crypto key.