diff options
author | Bharat Mediratta <bharat@menalto.com> | 2009-05-19 05:59:30 +0000 |
---|---|---|
committer | Bharat Mediratta <bharat@menalto.com> | 2009-05-19 05:59:30 +0000 |
commit | a0e0c48e47f9425d98a223ceb25995cfaa054013 (patch) | |
tree | c75929b57b18ceb6a5bb9144e8150d723d2642e1 | |
parent | 730cc7aabb7af99d4b58c3877f3f863b30078b28 (diff) |
Collate install/uninstall messages. Fixes ticket #288
-rw-r--r-- | core/controllers/admin_modules.php | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/core/controllers/admin_modules.php b/core/controllers/admin_modules.php index 9402ed03..b1967b80 100644 --- a/core/controllers/admin_modules.php +++ b/core/controllers/admin_modules.php @@ -36,18 +36,26 @@ class Admin_Modules_Controller extends Admin_Controller { } $desired = $this->input->post($module_name) == 1; - if ($info->installed && !$desired) { + if ($info->installed && !$desired && module::is_installed($module_name)) { $changes->uninstall[] = $module_name; + $uninstalled_names[] = $info->name; module::uninstall($module_name); - message::success(t("Uninstalled %module_name module", array("module_name" => $info->name))); - } else if (!$info->installed && $desired) { + } else if (!$info->installed && $desired && !module::is_installed($module_name)) { $changes->install[] = $module_name; + $installed_names[] = $info->name; module::install($module_name); - message::success(t("Installed %module_name module", array("module_name" => $info->name))); } } module::event("module_change", $changes); + + // @todo this type of collation is questionable from a i18n perspective + if (isset($installed_names)) { + message::success(t("Installed: %names", array("names" => join(", ", $uninstalled_names)))); + } + if (isset($uninstalled_names)) { + message::success(t("Uninstalled: %names", array("names" => join(", ", $installed_names)))); + } url::redirect("admin/modules"); } } |