/** * Return the list of available modules, including uninstalled modules. */ static function available() { if (empty(self::$available)) { $modules = new ArrayObject(array(), ArrayObject::ARRAY_AS_PROPS); foreach (glob(MODPATH . "*/module.info") as $file) { $module_name = basename(dirname($file)); $modules->{$module_name} = new ArrayObject(parse_ini_file($file), ArrayObject::ARRAY_AS_PROPS); foreach ($modules->{$module_name} as &$value) { $value = html::purify($value); } $m =& $modules->{$module_name}; $m->installed = module::is_installed($module_name); $m->active = module::is_active($module_name); $m->code_version = $m->version; $m->version = module::get_version($module_name); $m->locked = false; if ($m->active && $m->version != $m->code_version) { site_status::warning(t("Some of your modules are out of date. <a href=\"%upgrader_url\">Upgrade now!</a>", array("upgrader_url" => url::abs_site("upgrader"))), "upgrade_now"); } } // Lock certain modules $modules->gallery->locked = true; $identity_module = module::get_var("gallery", "identity_provider", "user"); $modules->{$identity_module}->locked = true; $modules->uasort(array("module", "module_comparator")); self::$available = $modules; } return self::$available; }
/** * Return the list of available modules, including uninstalled modules. */ static function available() { if (empty(self::$available)) { $modules = new ArrayObject(array(), ArrayObject::ARRAY_AS_PROPS); foreach (glob(MODPATH . "*/module.info") as $file) { $module_name = basename(dirname($file)); $modules->{$module_name} = new ArrayObject(parse_ini_file($file), ArrayObject::ARRAY_AS_PROPS); $m =& $modules->{$module_name}; $m->installed = self::is_installed($module_name); $m->active = self::is_active($module_name); $m->code_version = $m->version; $m->version = self::get_version($module_name); $m->locked = false; } // Lock certain modules $modules->gallery->locked = true; $modules->user->locked = true; $modules->ksort(); self::$available = $modules; } return self::$available; }