summaryrefslogtreecommitdiff
path: root/core/helpers/module.php
diff options
context:
space:
mode:
authorBharat Mediratta <bharat@menalto.com>2008-11-28 19:37:01 +0000
committerBharat Mediratta <bharat@menalto.com>2008-11-28 19:37:01 +0000
commit8b6ed6c477771e42d43ea0684e5139cf361b6cee (patch)
tree38c0db7b9d53e8ffb52f4ffaea05fdebbb248530 /core/helpers/module.php
parent1b1d3852949a39765a4c58df3bcbc9cd5a28e00e (diff)
Create module::event() which runs Gallery events. It works by
convention. To respond to the "photo_created" event in the gmaps module, you create modules/gmaps/helpers/gmaps_event.php containing class gmaps_event which has function photo_created. Renamed all events from gallery.foo.bar to foo_bar Updated tag module to use new convention.
Diffstat (limited to 'core/helpers/module.php')
-rw-r--r--core/helpers/module.php10
1 files changed, 10 insertions, 0 deletions
diff --git a/core/helpers/module.php b/core/helpers/module.php
index fc76c033..afba658a 100644
--- a/core/helpers/module.php
+++ b/core/helpers/module.php
@@ -54,4 +54,14 @@ class module_Core {
public static function installed() {
return ORM::factory("module")->find_all();
}
+
+ public static function event($name, &$data=null) {
+ foreach (self::installed() as $module) {
+ $class = "{$module->name}_event";
+ $function = str_replace(".", "_", $name);
+ if (method_exists($class, $function)) {
+ call_user_func_array(array($class, $function), array($data));
+ }
+ }
+ }
}