From 3597cc2c1b22dc29fe1169075601c72fa5c8558c Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Mon, 09 Nov 2009 11:18:58 -0500
Subject: [PATCH] Plugins should not overwrite existing config props

---
 program/include/rcube_plugin.php |    2 +-
 program/include/rcube_config.php |    4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/program/include/rcube_config.php b/program/include/rcube_config.php
index b30cf2d..0aa6f8c 100644
--- a/program/include/rcube_config.php
+++ b/program/include/rcube_config.php
@@ -132,12 +132,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)
+  public function load_from_file($fpath, $merge = true)
   {
     if (is_file($fpath) && is_readable($fpath)) {
       include($fpath);
       if (is_array($rcmail_config)) {
-        $this->prop = array_merge($this->prop, $rcmail_config);
+        $this->prop = $merge ? array_merge($this->prop, $rcmail_config) : $this->prop + $rcmail_config;
         return true;
       }
     }
diff --git a/program/include/rcube_plugin.php b/program/include/rcube_plugin.php
index ed30e8f..cb5f8e2 100644
--- a/program/include/rcube_plugin.php
+++ b/program/include/rcube_plugin.php
@@ -59,7 +59,7 @@
   {
     $fpath = $this->home.'/'.$fname;
     $rcmail = rcmail::get_instance();
-    if (!$rcmail->config->load_from_file($fpath)) {
+    if (!$rcmail->config->load_from_file($fpath, false)) {
       raise_error(array('code' => 527, 'type' => 'php', 'message' => "Failed to load config from $fpath"), true, false);
       return false;
     }

--
Gitblit v1.9.1