From 9b68fd46b224cb26e592fc977b0019b01bee3d23 Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Tue, 3 Mar 2009 16:09:23 +0000 Subject: Add the ability for modules to define hooks. The challenge is that when the hooks are run, we haven't added all the installed modules to the path, So if a module defines a hook it will never be run. This change runs any module defined hooks as part of the gallery initialization. --- core/helpers/module.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'core/helpers') diff --git a/core/helpers/module.php b/core/helpers/module.php index d5dea099..49f0fdea 100644 --- a/core/helpers/module.php +++ b/core/helpers/module.php @@ -165,13 +165,27 @@ class module_Core { } try { + $hooks = array(); foreach ($modules as $module) { self::$module_names[$module->name] = $module->name; self::$modules[$module->name] = $module; $kohana_modules[] = MODPATH . $module->name; + $module_path = MODPATH . $module->name; + $kohana_modules[] = $module_path; + if (file_exists("$module_path/hooks") && + ($hook_files = glob("$module_path/hooks/*.php")) !== false) { + $hooks = array_merge($hooks, $hook_files); + } } Kohana::config_set("core.modules", $kohana_modules); + /* + * Kohana loads the hooks before all the installed module paths are defined, so lets call + * any module hooks now + */ + foreach($hooks as $hook) { + include($hook); + } } catch (Exception $e) { self::$module_names = array(); self::$modules = array(); -- cgit v1.2.3