summaryrefslogtreecommitdiff
path: root/inc
diff options
context:
space:
mode:
Diffstat (limited to 'inc')
-rw-r--r--inc/plugincontroller.class.php17
-rw-r--r--inc/pluginutils.php4
2 files changed, 14 insertions, 7 deletions
diff --git a/inc/plugincontroller.class.php b/inc/plugincontroller.class.php
index 61f460414..ad394e11f 100644
--- a/inc/plugincontroller.class.php
+++ b/inc/plugincontroller.class.php
@@ -55,15 +55,23 @@ class Doku_Plugin_Controller {
*
* @author Andreas Gohr <andi@splitbrain.org>
*
- * @param $type string type of plugin to load
- * @param $name string name of the plugin to load
- * @param $new bool true to return a new instance of the plugin, false to use an already loaded instance
+ * @param $type string type of plugin to load
+ * @param $name string name of the plugin to load
+ * @param $new bool true to return a new instance of the plugin, false to use an already loaded instance
+ * @param $disabled bool true to load even disabled plugins
* @return objectreference the plugin object or null on failure
*/
- function &load($type,$name,$new=false){
+ function &load($type,$name,$new=false,$disabled=false){
//we keep all loaded plugins available in global scope for reuse
global $DOKU_PLUGINS;
+ list($plugin,$component) = $this->_splitName($name);
+
+ // check if disabled
+ if(!$disabled && $this->isdisabled($plugin)){
+ return null;
+ }
+
//plugin already loaded?
if(!empty($DOKU_PLUGINS[$type][$name])){
if ($new || !$DOKU_PLUGINS[$type][$name]->isSingleton()) {
@@ -75,7 +83,6 @@ class Doku_Plugin_Controller {
}
//try to load the wanted plugin file
- list($plugin,$component) = $this->_splitName($name);
$dir = $this->get_directory($plugin);
$file = $component ? "$type/$component.php" : "$type.php";
diff --git a/inc/pluginutils.php b/inc/pluginutils.php
index da0704bec..85bcaee1e 100644
--- a/inc/pluginutils.php
+++ b/inc/pluginutils.php
@@ -16,9 +16,9 @@ function plugin_list($type='',$all=false) {
global $plugin_controller;
return $plugin_controller->getList($type,$all);
}
-function &plugin_load($type,$name,$new=false) {
+function &plugin_load($type,$name,$new=false,$disabled=false) {
global $plugin_controller;
- return $plugin_controller->load($type,$name,$new);
+ return $plugin_controller->load($type,$name,$new,$disabled);
}
function plugin_isdisabled($plugin) {
global $plugin_controller;