summaryrefslogtreecommitdiff
path: root/lib/plugins/plugin/classes/ap_enable.class.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/plugins/plugin/classes/ap_enable.class.php')
-rw-r--r--lib/plugins/plugin/classes/ap_enable.class.php49
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();
+ }
+ }
+
+}
+