function system_module_action() { $declared_modules = module_manager::list_of_declared_modules(); foreach ($declared_modules as $module) { if ($module->action != null) { module_manager::update_action($module->module_name); switch ($module->action) { case constants::get("MM_ACTION_INSTALL"): module_manager::install_module($module->module_name); break; case constants::get("MM_ACTION_UNINSTALL"): module_manager::uninstall_module($module->module_name); break; case constants::get("MM_ACTION_ENABLE"): module_manager::enable_module($module->module_name); break; case constants::get("MM_ACTION_DISABLE"): module_manager::disable_module($module->module_name); break; default: throw new InvalidArgumentException("unknown action"); } } } }