diff options
author | Bharat Mediratta <bharat@menalto.com> | 2013-03-05 08:51:43 -0800 |
---|---|---|
committer | Bharat Mediratta <bharat@menalto.com> | 2013-03-05 08:51:43 -0800 |
commit | 7fd7b10108b8edca232d6eb387669189383b52ea (patch) | |
tree | 015404150d3810d7538de147d3a0e8f3742605df | |
parent | e630ab9bdc45cbb9ebd7db8fd280cb898fe6f291 (diff) | |
parent | 4b28478776071bf764545de767b70939484519aa (diff) |
Merge pull request #190 from shadlaws/fix_2040
#2040 - Deactivate modules that no longer exist.
-rw-r--r-- | modules/gallery/controllers/admin_maintenance.php | 1 | ||||
-rw-r--r-- | modules/gallery/helpers/module.php | 24 |
2 files changed, 23 insertions, 2 deletions
diff --git a/modules/gallery/controllers/admin_maintenance.php b/modules/gallery/controllers/admin_maintenance.php index 23df33ee..32f20784 100644 --- a/modules/gallery/controllers/admin_maintenance.php +++ b/modules/gallery/controllers/admin_maintenance.php @@ -55,6 +55,7 @@ class Admin_Maintenance_Controller extends Admin_Controller { ->where("expiration", "<>", 0) ->where("expiration", "<=", time()) ->execute(); + module::deactivate_missing_modules(); } /** diff --git a/modules/gallery/helpers/module.php b/modules/gallery/helpers/module.php index da201d20..1b6c8d1a 100644 --- a/modules/gallery/helpers/module.php +++ b/modules/gallery/helpers/module.php @@ -303,8 +303,25 @@ class module_Core { block_manager::deactivate_blocks($module_name); - log::success( - "module", t("Deactivated module %module_name", array("module_name" => $module_name))); + if (module::info($module_name)) { + log::success( + "module", t("Deactivated module %module_name", array("module_name" => $module_name))); + } else { + log::success( + "module", t("Deactivated missing module %module_name", array("module_name" => $module_name))); + } + } + + /** + * Deactivate modules that are unavailable or missing, yet still active. + * This happens when a user deletes a module without deactivating it. + */ + static function deactivate_missing_modules() { + foreach (self::$modules as $module_name => $module) { + if (module::is_active($module_name) && !module::info($module_name)) { + module::deactivate($module_name); + } + } } /** @@ -553,6 +570,9 @@ class module_Core { $obsolete_modules = array("videos" => 4, "noffmpeg" => 1, "videodimensions" => 1, "digibug" => 2); + // Before we check the active modules, deactivate any that are missing. + module::deactivate_missing_modules(); + $modules_found = array(); foreach ($obsolete_modules as $module => $version) { if (module::is_active($module) && (module::get_version($module) <= $version)) { |