From b545d3e8388d18a64d50b6f7879804cf4e7812ca Mon Sep 17 00:00:00 2001 From: thomascube <thomas@roundcube.net> Date: Thu, 18 Feb 2010 13:01:53 -0500 Subject: [PATCH] Fix loading of plugin configs: user prefs will always survive (#1486368) --- program/include/rcube_config.php | 18 ++++++++++++++++-- 1 files changed, 16 insertions(+), 2 deletions(-) diff --git a/program/include/rcube_config.php b/program/include/rcube_config.php index 85ff714..1e2aae3 100644 --- a/program/include/rcube_config.php +++ b/program/include/rcube_config.php @@ -28,6 +28,7 @@ { private $prop = array(); private $errors = array(); + private $userprefs = array(); /** @@ -132,12 +133,12 @@ * @param string Full path to the config file to be loaded * @return booelan True on success, false on failure */ - public function load_from_file($fpath, $merge = true) + public function load_from_file($fpath) { if (is_file($fpath) && is_readable($fpath)) { include($fpath); if (is_array($rcmail_config)) { - $this->prop = $merge ? array_merge($this->prop, $rcmail_config) : $this->prop + $rcmail_config; + $this->prop = array_merge($this->prop, $rcmail_config, $this->userprefs); return true; } } @@ -178,6 +179,19 @@ */ public function merge($prefs) { + $this->prop = array_merge($this->prop, $prefs, $this->userprefs); + } + + + /** + * Merge the given prefs over the current config + * and make sure that they survive further merging. + * + * @param array Hash array with user prefs + */ + public function set_user_prefs($prefs) + { + $this->userprefs = $prefs; $this->prop = array_merge($this->prop, $prefs); } -- Gitblit v1.9.1