1
0
mirror of https://git.tt-rss.org/git/tt-rss.git synced 2025-12-20 18:21:29 +00:00

rework class system to use subdirectories

add placeholder plugin/hook system
This commit is contained in:
Andrew Dolgov
2012-08-17 14:20:55 +04:00
parent 3d2c9f5adf
commit 369dbc19d6
29 changed files with 131 additions and 22 deletions

44
classes/plugins.php Normal file
View File

@@ -0,0 +1,44 @@
<?php
class Plugins {
protected $link;
protected $plugins;
protected $listeners;
function __construct($link) {
$this->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);
}
}
}
}
}
?>