/** * 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); } }