From 0d0f67f353af8cc75ddda4daee7bdddf5949e756 Mon Sep 17 00:00:00 2001 From: donal72 Date: Tue, 16 Jan 2007 22:53:11 +0000 Subject: [PATCH] Mnet: The tokenizer extension is now optional. MDL-8136 --- admin/mnet/adminlib.php | 75 ++++++++++++++++++++++------------------- 1 file changed, 40 insertions(+), 35 deletions(-) diff --git a/admin/mnet/adminlib.php b/admin/mnet/adminlib.php index 6d3bddbf85..3d2192f4b4 100644 --- a/admin/mnet/adminlib.php +++ b/admin/mnet/adminlib.php @@ -8,8 +8,6 @@ * @package mnet */ -include_once $CFG->dirroot.'/admin/mnet/MethodTable.php'; -error_reporting(E_ALL); /** * Parse a file to find out what functions/methods exist in it, and add entries * for the remote-call-enabled functions to the database. @@ -73,49 +71,56 @@ function mnet_get_functions($type, $parentname) { if (!file_exists($filename)) return false; - $functions = (array)MethodTable::create($filename,false); - - foreach($functions as $functionname => $details) { - if (array_key_exists($functionname, $methodServiceArray)) { - $dataobject->function_name = $functionname; - $dataobject->xmlrpc_path = $type.'/'.$parentname.'/'.$docname.'/'.$functionname; - $dataobject->parent_type = $type; - $dataobject->parent = $parentname; - $dataobject->enabled = '0'; - $dataobject->help = addslashes($details['description']); + if (extension_loaded('tokenizer')) { + include_once $CFG->dirroot.'/admin/mnet/MethodTable.php'; + $functions = (array)MethodTable::create($filename,false); + } + foreach($methodServiceArray as $method => $servicearray) { + if (!empty($functions[$method])) { + $details = $functions[$method]; $profile = $details['arguments']; if (!isset($details['returns'])) { array_unshift($profile, array('type' => 'void', 'description' => 'No return value')); } else { array_unshift($profile, $details['returns']); } - $dataobject->profile = serialize($profile); + $dataobject->profile = serialize($profile); + $dataobject->help = addslashes($details['description']); + } else { + $dataobject->profile = serialize(array(array('type' => 'void', 'description' => 'No return value'))); + $dataobject->help = ''; + } - if ($record_exists = get_record('mnet_rpc', 'xmlrpc_path', $dataobject->xmlrpc_path)) { - $dataobject->id = $record_exists->id; - $dataobject->enabled = $record_exists->enabled; - update_record('mnet_rpc', $dataobject); - } else { - $dataobject->id = insert_record('mnet_rpc', $dataobject, true); + $dataobject->function_name = $method; + $dataobject->xmlrpc_path = $type.'/'.$parentname.'/'.$docname.'/'.$method; + $dataobject->parent_type = $type; + $dataobject->parent = $parentname; + $dataobject->enabled = '0'; + + if ($record_exists = get_record('mnet_rpc', 'xmlrpc_path', $dataobject->xmlrpc_path)) { + $dataobject->id = $record_exists->id; + $dataobject->enabled = $record_exists->enabled; + update_record('mnet_rpc', $dataobject); + } else { + $dataobject->id = insert_record('mnet_rpc', $dataobject, true); + } + + foreach($servicearray as $service) { + $serviceobj = get_record('mnet_service', 'name', $service['name']); + if (false == $serviceobj) { + $serviceobj = new stdClass(); + $serviceobj->name = $service['name']; + $serviceobj->apiversion = $service['apiversion']; + $serviceobj->offer = 1; + $serviceobj->id = insert_record('mnet_service', $serviceobj, true); } - foreach($methodServiceArray[$functionname] as $service) { - $serviceobj = get_record('mnet_service', 'name', $service['name']); - if (false == $serviceobj) { - $serviceobj = new stdClass(); - $serviceobj->name = $service['name']; - $serviceobj->apiversion = $service['apiversion']; - $serviceobj->offer = 1; - $serviceobj->id = insert_record('mnet_service', $serviceobj, true); - } - - if (false == get_record('mnet_service2rpc', 'rpcid', $dataobject->id, 'serviceid', $serviceobj->id)) { - $obj = new stdClass(); - $obj->rpcid = $dataobject->id; - $obj->serviceid = $serviceobj->id; - insert_record('mnet_service2rpc', $obj, true); - } + if (false == get_record('mnet_service2rpc', 'rpcid', $dataobject->id, 'serviceid', $serviceobj->id)) { + $obj = new stdClass(); + $obj->rpcid = $dataobject->id; + $obj->serviceid = $serviceobj->id; + insert_record('mnet_service2rpc', $obj, true); } } } -- 2.39.5