diff options
Diffstat (limited to 'lib/plugins/plugin/classes/ap_enable.class.php')
-rw-r--r-- | lib/plugins/plugin/classes/ap_enable.class.php | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/lib/plugins/plugin/classes/ap_enable.class.php b/lib/plugins/plugin/classes/ap_enable.class.php new file mode 100644 index 000000000..35450a907 --- /dev/null +++ b/lib/plugins/plugin/classes/ap_enable.class.php @@ -0,0 +1,49 @@ +<?php + +class ap_enable extends ap_manage { + + var $enabled = array(); + + function process() { + global $plugin_protected; + $count_enabled = $count_disabled = 0; + + $this->enabled = isset($_REQUEST['enabled']) ? $_REQUEST['enabled'] : array(); + + foreach ($this->manager->plugin_list as $plugin) { + if (in_array($plugin, $plugin_protected)) continue; + + $new = in_array($plugin, $this->enabled); + $old = !plugin_isdisabled($plugin); + + if ($new != $old) { + switch ($new) { + // enable plugin + case true : + if(plugin_enable($plugin)){ + msg(sprintf($this->lang['enabled'],$plugin),1); + $count_enabled++; + }else{ + msg(sprintf($this->lang['notenabled'],$plugin),-1); + } + break; + case false: + if(plugin_disable($plugin)){ + msg(sprintf($this->lang['disabled'],$plugin),1); + $count_disabled++; + }else{ + msg(sprintf($this->lang['notdisabled'],$plugin),-1); + } + break; + } + } + } + + // refresh plugins, including expiring any dokuwiki cache(s) + if ($count_enabled || $count_disabled) { + $this->refresh(); + } + } + +} + |