示例#1
0
 /**
  * Disableds a module when it is enabled.
  *
  * @param string    Module name
  * @param bool   true for permanent disable
  *
  * @throws FuzeWorks\ModuleException
  */
 public static function disableModule($name, $permanent = true)
 {
     if (isset(self::$register[$name])) {
         $info = (object) self::$register[$name];
         // Do nothing if it is already disabled
         if (isset($info->meta)) {
             Logger::logWarning("Could not disable module '" . $name . "'. Module is already disabled.");
             return false;
         }
         $disabled = new StdClass();
         $disabled->meta = $info;
         $disabled->directory = $info->directory;
         $disabled->module_name = $info->module_name;
         self::$register[$name] = (array) $disabled;
         Logger::log("Disabled module '" . $name . "'");
         if ($permanent) {
             $file = $info->directory . '/moduleInfo.php';
             self::setModuleValue($file, 'enabled', false);
         }
         // Reload the eventRegister
         Events::buildEventRegister();
         // Remove the existence of the module
         unset(self::$modules[strtolower($cfg->module_name)]);
     } else {
         throw new ModuleException("Could not disable module '" . $name . "'. Module does not exist.", 1);
     }
 }