summaryrefslogtreecommitdiff
path: root/core/controllers/admin_modules.php
diff options
context:
space:
mode:
Diffstat (limited to 'core/controllers/admin_modules.php')
-rw-r--r--core/controllers/admin_modules.php16
1 files changed, 15 insertions, 1 deletions
diff --git a/core/controllers/admin_modules.php b/core/controllers/admin_modules.php
index a9769ba6..ada7dcfd 100644
--- a/core/controllers/admin_modules.php
+++ b/core/controllers/admin_modules.php
@@ -25,7 +25,21 @@ class Admin_Modules_Controller extends Admin_Controller {
}
public function save() {
- // Nothing yet
+ foreach (module::available() as $module_name => $info) {
+ if ($info->locked) {
+ continue;
+ }
+
+ $desired = $this->input->post($module_name) == 1;
+ if ($info->installed && !$desired) {
+ module::uninstall($module_name);
+ message::add(sprintf(_("Uninstalled %s module"), $info->name));
+ } else if (!$info->installed && $desired) {
+ module::install($module_name);
+ message::add(sprintf(_("Installed %s module"), $info->name));
+ }
+ }
+ url::redirect("admin/modules");
}
}