### Eclipse Workspace Patch 1.0 #P moodle-HEAD Index: webservice/lib.php =================================================================== RCS file: /cvsroot/moodle/moodle/webservice/lib.php,v retrieving revision 1.55 diff -u -r1.55 lib.php --- webservice/lib.php 30 Apr 2010 06:37:43 -0000 1.55 +++ webservice/lib.php 12 May 2010 04:42:29 -0000 @@ -412,25 +412,29 @@ $function = external_function_info($function); + //arguments in function declaration line with defaults. + $paramanddefaults = array(); + //arguments used as parameters for external lib call. $params = array(); $params_desc = array(); foreach ($function->parameters_desc->keys as $name=>$keydesc) { $param = '$'.$name; + $paramanddefault = $param; //need to generate the default if there is any if ($keydesc instanceof external_value) { if ($keydesc->required == VALUE_DEFAULT) { if ($keydesc->default===null) { - $param .= '=null'; + $paramanddefault .= '=null'; } else { switch($keydesc->type) { case PARAM_BOOL: - $param .= $keydesc->default; break; + $paramanddefault .= '='.$keydesc->default; break; case PARAM_INT: - $param .= $keydesc->default; break; + $paramanddefault .= '='.$keydesc->default; break; case PARAM_FLOAT; - $param .= $keydesc->default; break; + $paramanddefault .= '='.$keydesc->default; break; default: - $param .= '=\''.$keydesc->default.'\''; + $paramanddefault .= '=\''.$keydesc->default.'\''; } } } else if ($keydesc->required == VALUE_OPTIONAL) { @@ -443,7 +447,8 @@ throw new moodle_exception('paramdefaultarraynotsupported'); } } - $params[] = $param; + $params[] = $param; + $paramanddefaults[] = $paramanddefault; $type = 'string'; if ($keydesc instanceof external_value) { switch($keydesc->type) { @@ -462,8 +467,9 @@ } $params_desc[] = ' * @param '.$type.' $'.$name.' '.$keydesc->desc; } - $params = implode(', ', $params); - $params_desc = implode("\n", $params_desc); + $params = implode(', ', $params); + $paramanddefaults = implode(', ', $paramanddefaults); + $params_desc = implode("\n", $params_desc); $serviceclassmethodbody = $this->service_class_method_body($function, $params); @@ -498,7 +504,7 @@ '.$params_desc.' '.$return.' */ - public function '.$function->name.'('.$params.') { + public function '.$function->name.'('.$paramanddefaults.') { '.$serviceclassmethodbody.' } ';