From c73b195e5d02a09d56430dd6e666313b86fee2f9 Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Thu, 21 May 2009 16:34:28 -0400
Subject: [PATCH] Add function for plugins to load a local config file

---
 program/include/rcube_plugin.php |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/program/include/rcube_plugin.php b/program/include/rcube_plugin.php
index 365ef28..63acaf8 100644
--- a/program/include/rcube_plugin.php
+++ b/program/include/rcube_plugin.php
@@ -47,6 +47,20 @@
    * Initialization method, needs to be implemented by the plugin itself
    */
   abstract function init();
+  
+  /**
+   * Load local config file from plugins directory.
+   * The loaded values are patched over the global configuration.
+   *
+   * @param string Config file name relative to the plugin's folder
+   */
+  public function load_config($fname = 'config.inc.php')
+  {
+    $fpath = $this->home.'/'.$fname;
+    $rcmail = rcmail::get_instance();
+    if (!$rcmail->config->load_from_file($fpath))
+      raise_error(array('code' => 527, 'type' => 'php', 'message' => "Failed to load config from $fpath"), true, false);
+  }
 
   /**
    * Register a callback function for a specific (server-side) hook

--
Gitblit v1.9.1