예제 #1
0
파일: module.php 프로젝트: HarriLu/gallery3
 /**
  * Deactivate an installed module.  This will call <module>_installer::deactivate() which should
  * take any cleanup steps to make sure that the module isn't visible in any way.  Note that the
  * module remains available in Kohana's cascading file system until the end of the request!
  * @param string $module_name
  */
 static function deactivate($module_name)
 {
     $installer_class = "{$module_name}_installer";
     if (class_exists($installer_class) && method_exists($installer_class, "deactivate")) {
         call_user_func_array(array($installer_class, "deactivate"), array());
     }
     $module = module::get($module_name);
     if ($module->loaded()) {
         $module->active = false;
         $module->save();
     }
     module::load_modules();
     graphics::deactivate_rules($module_name);
     block_manager::deactivate_blocks($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)));
     }
 }