]> git.mjollnir.org Git - moodle.git/commitdiff
Mnet: The tokenizer extension is now optional. MDL-8136
authordonal72 <donal72>
Tue, 16 Jan 2007 22:53:11 +0000 (22:53 +0000)
committerdonal72 <donal72>
Tue, 16 Jan 2007 22:53:11 +0000 (22:53 +0000)
admin/mnet/adminlib.php

index 6d3bddbf85f9356a768825b4ae33bb4ca896ef1f..3d2192f4b44e9af19e7f178521c2d1574acbad27 100644 (file)
@@ -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);
             }
         }
     }