mirror of
https://git.tt-rss.org/git/tt-rss.git
synced 2025-12-13 19:15:56 +00:00
implement plugin routing masks, add example plugin
This commit is contained in:
@@ -3,6 +3,7 @@ class PluginHost {
|
||||
private $link;
|
||||
private $hooks = array();
|
||||
private $plugins = array();
|
||||
private $handlers = array();
|
||||
|
||||
const HOOK_ARTICLE_BUTTON = 1;
|
||||
const HOOK_ARTICLE_FILTER = 2;
|
||||
@@ -62,7 +63,7 @@ class PluginHost {
|
||||
|
||||
foreach ($plugins as $class) {
|
||||
$class = trim($class);
|
||||
$class_file = str_replace("_", "/", strtolower(basename($class)));
|
||||
$class_file = strtolower(basename($class));
|
||||
$file = dirname(__FILE__)."/../plugins/$class_file/$class_file.php";
|
||||
|
||||
if (file_exists($file)) require_once $file;
|
||||
@@ -75,5 +76,33 @@ class PluginHost {
|
||||
}
|
||||
}
|
||||
|
||||
function add_handler($handler, $method, $sender) {
|
||||
$handler = strtolower($handler);
|
||||
$method = strtolower($method);
|
||||
|
||||
if (!is_array($this->handlers[$handler])) {
|
||||
$this->handlers[$handler] = array();
|
||||
}
|
||||
|
||||
$this->handlers[$handler][$method] = $sender;
|
||||
}
|
||||
|
||||
function del_handler($handler, $method) {
|
||||
$handler = strtolower($handler);
|
||||
$method = strtolower($method);
|
||||
|
||||
unset($this->handlers[$handler][$method]);
|
||||
}
|
||||
|
||||
function lookup_handler($handler, $method) {
|
||||
$handler = strtolower($handler);
|
||||
$method = strtolower($method);
|
||||
|
||||
if (is_array($this->handlers[$handler])) {
|
||||
return $this->handlers[$handler][$method];
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
Reference in New Issue
Block a user