diff options
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/gallery/helpers/module.php | 26 | 
1 files changed, 10 insertions, 16 deletions
| diff --git a/modules/gallery/helpers/module.php b/modules/gallery/helpers/module.php index ad46b2ff..d684033b 100644 --- a/modules/gallery/helpers/module.php +++ b/modules/gallery/helpers/module.php @@ -107,7 +107,7 @@ class module_Core {     */    static function install($module_name) {      $kohana_modules = Kohana::config("core.modules"); -    $kohana_modules[] = MODPATH . $module_name; +    array_unshift($kohana_modules, MODPATH . $module_name);      Kohana::config_set("core.modules",  $kohana_modules);      $installer_class = "{$module_name}_installer"; @@ -116,7 +116,7 @@ class module_Core {      }      // Now the module is installed but inactive, so don't leave it in the active path -    array_pop($kohana_modules); +    array_shift($kohana_modules);      Kohana::config_set("core.modules",  $kohana_modules);      log::success( @@ -131,7 +131,7 @@ class module_Core {     */    static function activate($module_name) {      $kohana_modules = Kohana::config("core.modules"); -    $kohana_modules[] = MODPATH . $module_name; +    array_unshift($kohana_modules, MODPATH . $module_name);      Kohana::config_set("core.modules",  $kohana_modules);      $installer_class = "{$module_name}_installer"; @@ -145,15 +145,15 @@ class module_Core {        $module->save();      } -    self::load_modules();      graphics::activate_rules($module_name);      log::success(        "module", t("Activated module %module_name", array("module_name" => $module_name)));    }    /** -   * Deactivate an installed module.  This will call <module>_installer::deactivate() which -   * should take any cleanup steps to make sure that the module isn't visible in any way. +   * Deactivate an installed module.  This will call <module>_installer::deactivate() which should +   * take any cleanup steps to make sure that the module isn't visible in any way.  Note that the +   * module remains available in Kohana's cascading file system until the end of the request!     * @param string $module_name     */    static function deactivate($module_name) { @@ -168,7 +168,6 @@ class module_Core {        $module->save();      } -    self::load_modules();      graphics::deactivate_rules($module_name);      log::success(        "module", t("Deactivated module %module_name", array("module_name" => $module_name))); @@ -194,7 +193,6 @@ class module_Core {      // We could delete the module vars here too, but it's nice to leave them around      // in case the module gets reinstalled. -    self::load_modules();      log::success(        "module", t("Uninstalled module %module_name", array("module_name" => $module_name)));    } @@ -203,23 +201,19 @@ class module_Core {     * Load the active modules.  This is called at bootstrap time.     */    static function load_modules() { -    // Reload module list from the config file since we'll do a refresh after calling install() -    $core = Kohana::config_load("core"); -    $kohana_modules = $core["modules"]; -    $modules = ORM::factory("module")->find_all(); -      self::$modules = array();      self::$active = array(); -    foreach ($modules as $module) { +    $kohana_modules = array(); +    foreach (ORM::factory("module")->where("name <>", "gallery")->find_all() as $module) {        self::$modules[$module->name] = $module;        if ($module->active) {          self::$active[] = $module;        }        $kohana_modules[] = MODPATH . $module->name; -      // @todo: force 'gallery' to be at the end      } -    Kohana::config_set("core.modules", $kohana_modules); +    Kohana::config_set( +      "core.modules", array_merge($kohana_modules, Kohana::config("core.modules")));    }    /** | 
