diff options
author | Thomas B. <thomas@roundcube.net> | 2014-08-21 19:50:53 +0200 |
---|---|---|
committer | Thomas B. <thomas@roundcube.net> | 2014-08-21 19:50:53 +0200 |
commit | 827b1dd459e4e90797ed6fe3187dc6de47cf8fec (patch) | |
tree | 37693f8d491935cf4006f5892c4849b729822770 /program/lib | |
parent | fe03a9074d87fd25985aa2e1b138a6b69fdda290 (diff) | |
parent | 4eee212883b34e1ca7cfb9466580ff20dca5c979 (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.php | 11 | ||||
-rw-r--r-- | program/lib/Roundcube/rcube_plugin_api.php | 5 |
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); |