diff options
Diffstat (limited to 'core/controllers/admin_modules.php')
-rw-r--r-- | core/controllers/admin_modules.php | 16 |
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"); } } |