From bb32615dd0cedc85fbbec5f1c76a3e57e40e318b Mon Sep 17 00:00:00 2001 From: Michael Klier Date: Sun, 24 Aug 2008 10:04:57 +0200 Subject: XMLRPC: new event XMLRPC_CALLBACK_REGISTER By using this event, action plugins can register their own callback methods in DokuWikis XML-RPC server, and extend it's functionality. The event data is the server instance. Plugins can also remove already registered callbacks or replace them with their own methods. darcs-hash:20080824080457-23886-b49b897592ce6717f0980f6044bae2d51fd73336.gz --- inc/IXR_Library.php | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'inc') diff --git a/inc/IXR_Library.php b/inc/IXR_Library.php index c3c70b92c..fb11585ca 100644 --- a/inc/IXR_Library.php +++ b/inc/IXR_Library.php @@ -354,6 +354,15 @@ EOD; // Call the method #$result = $this->$method($args); $result = call_user_func_array(array(&$this,$method),$args); + } elseif (substr($method, 0, 7) == 'plugin:') { + require_once(DOKU_INC.'inc/pluginutils.php'); + list($pluginname, $callback) = explode(':', substr($method, 7), 2); + if(!plugin_isdisabled($pluginname)) { + $plugin = plugin_load('action', $pluginname); + return call_user_func_array(array($plugin, $callback), $args); + } else { + return new IXR_Error(-99999, 'server error'); + } } else { // It's a function - does it exist? if (!function_exists($method)) { -- cgit v1.2.3