diff options
author | Tim Almdal <tnalmdal@shaw.ca> | 2009-06-09 20:35:37 -0700 |
---|---|---|
committer | Tim Almdal <tnalmdal@shaw.ca> | 2009-06-09 20:35:37 -0700 |
commit | 16ef912154f7adb1d623ac843f480c5f91f05774 (patch) | |
tree | 7e6737d27ad436dff4a48c4558ea9d4a97f48581 /modules/gallery/helpers/module.php | |
parent | ec0890e42bda0262a621b8c8d3e8a5e8000bbc55 (diff) | |
parent | f55686c7ef2ca5f3c2c78588e39ac717064c5e09 (diff) |
Merge branch 'master' of git://github.com/gallery/gallery3
Diffstat (limited to 'modules/gallery/helpers/module.php')
-rw-r--r-- | modules/gallery/helpers/module.php | 34 |
1 files changed, 20 insertions, 14 deletions
diff --git a/modules/gallery/helpers/module.php b/modules/gallery/helpers/module.php index 2fd5be6c..58f9b20d 100644 --- a/modules/gallery/helpers/module.php +++ b/modules/gallery/helpers/module.php @@ -27,6 +27,7 @@ class module_Core { public static $active = array(); public static $modules = array(); public static $var_cache = null; + public static $available = array(); /** * Set the version of the corresponding Module_Model @@ -74,22 +75,27 @@ class module_Core { * Return the list of available modules, including uninstalled modules. */ static function 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); - $modules->$module_name->installed = self::is_installed($module_name); - $modules->$module_name->active = self::is_active($module_name); - $modules->$module_name->version = self::get_version($module_name); - $modules->$module_name->locked = false; - } + 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(); + // Lock certain modules + $modules->gallery->locked = true; + $modules->user->locked = true; + $modules->ksort(); + self::$available = $modules; + } - return $modules; + return self::$available; } /** |