From eb565e33569541981713c24d643ff89517db237c Mon Sep 17 00:00:00 2001 From: brettp Date: Wed, 14 Oct 2009 21:36:23 +0000 Subject: Standardized engine/handlers/* git-svn-id: http://code.elgg.org/elgg/trunk@3545 36083f99-b078-4883-b0ff-0f9b5a30f544 --- engine/handlers/xml-rpc_handler.php | 90 ++++++++++++++++++------------------- 1 file changed, 44 insertions(+), 46 deletions(-) (limited to 'engine/handlers/xml-rpc_handler.php') diff --git a/engine/handlers/xml-rpc_handler.php b/engine/handlers/xml-rpc_handler.php index bc87306c7..26c1454bf 100644 --- a/engine/handlers/xml-rpc_handler.php +++ b/engine/handlers/xml-rpc_handler.php @@ -1,47 +1,45 @@ $result))); - -?> \ No newline at end of file +/** + * Elgg XML-RPC handler. + * + * @package Elgg + * @subpackage Core + * @author Curverider Ltd + * @link http://elgg.org/ + */ + +// Load Elgg engine +define('externalpage',true); +require_once("../start.php"); +global $CONFIG; + +// Register the error handler +error_reporting(E_ALL); +set_error_handler('__php_xmlrpc_error_handler'); + +// Register a default exception handler +set_exception_handler('__php_xmlrpc_exception_handler'); + +// Set some defaults +$result = null; +set_input('view', 'xml'); // Set default view regardless + +// Get the post data +$input = get_post_data(); + +if ($input) { + // Parse structures from xml + $call = new XMLRPCCall($input); + + // Process call + $result = trigger_xmlrpc_handler($call); +} else { + throw new CallException(elgg_echo('xmlrpc:noinputdata')); +} + +if (!($result instanceof XMLRPCResponse)) { + throw new APIException(elgg_echo('APIException:ApiResultUnknown')); +} + +// Output result +page_draw("XML-RPC", elgg_view("xml-rpc/output", array('result' => $result))); \ No newline at end of file -- cgit v1.2.3