summaryrefslogtreecommitdiff
path: root/program/lib
diff options
context:
space:
mode:
authorThomas B. <thomas@roundcube.net>2014-08-21 19:50:53 +0200
committerThomas B. <thomas@roundcube.net>2014-08-21 19:50:53 +0200
commit827b1dd459e4e90797ed6fe3187dc6de47cf8fec (patch)
tree37693f8d491935cf4006f5892c4849b729822770 /program/lib
parentfe03a9074d87fd25985aa2e1b138a6b69fdda290 (diff)
parent4eee212883b34e1ca7cfb9466580ff20dca5c979 (diff)
Merge pull request #212 from JohnDoh/patch-1
add include_plugin function for optional plugins
Diffstat (limited to 'program/lib')
-rw-r--r--program/lib/Roundcube/rcube_plugin.php11
-rw-r--r--program/lib/Roundcube/rcube_plugin_api.php5
2 files changed, 14 insertions, 2 deletions
diff --git a/program/lib/Roundcube/rcube_plugin.php b/program/lib/Roundcube/rcube_plugin.php
index cc7c7977f..9c7a9c2dc 100644
--- a/program/lib/Roundcube/rcube_plugin.php
+++ b/program/lib/Roundcube/rcube_plugin.php
@@ -121,6 +121,17 @@ abstract class rcube_plugin
}
/**
+ * Attempt to load the given plugin which is optional for the current plugin
+ *
+ * @param string Plugin name
+ * @return boolean True on success, false on failure
+ */
+ public function include_plugin($plugin_name)
+ {
+ return $this->api->load_plugin($plugin_name, true, false);
+ }
+
+ /**
* Load local config file from plugins directory.
* The loaded values are patched over the global configuration.
*
diff --git a/program/lib/Roundcube/rcube_plugin_api.php b/program/lib/Roundcube/rcube_plugin_api.php
index 335348cef..dae3a936d 100644
--- a/program/lib/Roundcube/rcube_plugin_api.php
+++ b/program/lib/Roundcube/rcube_plugin_api.php
@@ -170,10 +170,11 @@ class rcube_plugin_api
*
* @param string Plugin name
* @param boolean Force loading of the plugin even if it doesn't match the filter
+ * @param boolean Require loading of the plugin, error if it doesn't exist
*
* @return boolean True on success, false if not loaded or failure
*/
- public function load_plugin($plugin_name, $force = false)
+ public function load_plugin($plugin_name, $force = false, $require = true)
{
static $plugins_dir;
@@ -225,7 +226,7 @@ class rcube_plugin_api
true, false);
}
}
- else {
+ elseif ($require) {
rcube::raise_error(array('code' => 520, 'type' => 'php',
'file' => __FILE__, 'line' => __LINE__,
'message' => "Failed to load plugin file $fn"), true, false);