diff options
author | Bharat Mediratta <bharat@menalto.com> | 2008-12-22 03:41:33 +0000 |
---|---|---|
committer | Bharat Mediratta <bharat@menalto.com> | 2008-12-22 03:41:33 +0000 |
commit | fe27bd1eb34efe95da6ffe8b6f6c137fe8a18306 (patch) | |
tree | b89e04040d1a3fac5ce413505d5177b671e36db1 /core/helpers/module.php | |
parent | f7b4222e3fc725c2fc4db28840c151c1ebeb801c (diff) |
Change the way that we track modules.
Each module now has a "module.info" file that has information about
the module, including the core. We can display the installed version,
and the version in the code.
Also take a first shot at a modules admin page.
Diffstat (limited to 'core/helpers/module.php')
-rw-r--r-- | core/helpers/module.php | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/core/helpers/module.php b/core/helpers/module.php index fed01921..bb6e8dad 100644 --- a/core/helpers/module.php +++ b/core/helpers/module.php @@ -74,7 +74,7 @@ class module_Core { * @param string $module_name */ public static function is_installed($module_name) { - return in_array($module_name, self::$module_names); + return !empty(self::$module_names[$module_name]); } /** @@ -88,11 +88,13 @@ class module_Core { * Return the list of available modules. */ public static function available() { - $modules = array(); - foreach (glob(MODPATH . "*/helpers/*_installer.php") as $file) { - if (empty($modules[basename(dirname(dirname($file)))])) { - $modules[basename(dirname(dirname($file)))] = 0; - } + $modules = new ArrayObject(array(), ArrayObject::ARRAY_AS_PROPS); + foreach (array_merge(array("core/module.info"), 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 = + empty(self::$modules[$module_name]) ? + null : self::$modules[$module_name]->version; } return $modules; @@ -152,8 +154,8 @@ class module_Core { try { foreach ($modules as $module) { - self::$module_names[] = $module->name; - self::$modules[] = $module; + self::$module_names[$module->name] = $module->name; + self::$modules[$module->name] = $module; $kohana_modules[] = MODPATH . $module->name; } |