From 8dcb2b47628346226b18940b5cde7849f7a24687 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sun, 23 Dec 2012 23:05:51 +0400 Subject: implement plugin routing masks, add example plugin --- backend.php | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'backend.php') diff --git a/backend.php b/backend.php index 8aaf10016..2cac8232b 100644 --- a/backend.php +++ b/backend.php @@ -118,10 +118,18 @@ $op = str_replace("-", "_", $op); - if (class_exists($op)) { - $handler = new $op($link, $_REQUEST); + global $pluginhost; + $override = $pluginhost->lookup_handler($op, $method); - if ($handler && is_subclass_of($handler, 'Handler')) { + if (class_exists($op) || $override) { + + if ($override) { + $handler = $override; + } else { + $handler = new $op($link, $_REQUEST); + } + + if ($handler && implements_interface($handler, 'IHandler')) { if (validate_csrf($csrf_token) || $handler->csrf_ignore($method)) { if ($handler->before($method)) { if ($method && method_exists($handler, $method)) { -- cgit v1.2.3