From 369dbc19d6ae35c97a2306ae4821c7812e2f24b2 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Fri, 17 Aug 2012 14:20:55 +0400 Subject: rework class system to use subdirectories add placeholder plugin/hook system --- classes/plugins.php | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 classes/plugins.php (limited to 'classes/plugins.php') diff --git a/classes/plugins.php b/classes/plugins.php new file mode 100644 index 000000000..6f3720ca9 --- /dev/null +++ b/classes/plugins.php @@ -0,0 +1,44 @@ +link = $link; + $this->listeners = array(); + $this->load_plugins(); + } + + function load_plugins() { + if (defined('_ENABLE_PLUGINS')) { + $plugins = explode(",", _ENABLE_PLUGINS); + + foreach ($plugins as $p) { + $plugin_class = "plugin_$p"; + if (class_exists($plugin_class)) { + $plugin = new $plugin_class($this->link, $this); + } + } + } + } + + function add_listener($hook_name, $plugin) { + if (!is_array($this->listeners[$hook_name])) + $this->listeners[$hook_name] = array(); + + array_push($this->listeners[$hook_name], $plugin); + } + + function hook($hook_name, &$params) { + if (is_array($this->listeners[$hook_name])) { + foreach ($this->listeners[$hook_name] as $p) { + if (method_exists($p, $hook_name)) { + $p->$hook_name($params); + } + } + } + } + +} +?> -- cgit v1.2.3