Restructure the module lifecycle.

Install: <module>_installer::install() is called, any necessary tables
are created.

Activate: <module>_installer::activate() is called.  Module
controllers are routable, helpers are accessible, etc.  The module is
in use.

Deactivate: <module>_installer::deactivate() is called.  Module code
is not accessible or routable.  Module is *not* in use, but its tables
are still around.

Uninstall: <module>_installer::uninstall() is called.  Module is
completely removed from the database.

Admin > Modules will install and activate modules, but will only
deactivate (will NOT uninstall modules).
This commit is contained in:
Bharat Mediratta
2009-05-26 05:28:59 +00:00
parent 2966289b14
commit 7aed923908
37 changed files with 314 additions and 201 deletions
@@ -19,10 +19,10 @@
*/
class slideshow_event_Core {
static function module_change($changes) {
if (!module::is_installed("rss") || in_array("rss", $changes->uninstall)) {
if (!module::is_active("rss") || in_array("rss", $changes->deactivate)) {
site_status::warning(
t("The Slideshow module requires the RSS module. " .
"<a href=\"%url\">Install the RSS module now</a>",
"<a href=\"%url\">Activate the RSS module now</a>",
array("url" => url::site("admin/modules"))),
"slideshow_needs_rss");
} else {