我正在编写一个简单的实时搜索块插件。我通过 API 访问外部网站的资源,并显示与用户键入的搜索内容相匹配的结果。 我计划编写一个网络服务来执行此操作。我将把用户输入作为 ajax.call 中的参数之一传递,然后我的 Web 服务函数将返回建议的结果。 我想知道是否有必要使用网络服务,因为我没有从 Moodle 数据库检索或返回任何数据,并且我不想存储建议而只想显示它们。
现在我使用 XMLHttpRequest 调用我的插件中的内部 php 文件,该文件通过 api 连接并返回结果, 但我想知道是否有推荐的方法可以做到这一点。
//the ajax call
ajax.call([{
methodname: 'block_xxxx_loadpages',
args: {userinput: userinput},}])
// the webservice function
class block_xxxx_external extends external_api {
//parameters
public static function loadpages() {
return new external_function_parameters (
array('userinput' => new external_value(PARAM_TEXT, 'the user input'))
);
}
//the function
public static function loadpages($userinput = 'userinput') {
//parameter validation
$params = self::validate_parameters(self::hello_world_parameters(),
array('userinput' => $userinput));
//connect to api and return the result page matching the userinput
return $result;
}
public static function loadpages_returns() {
return new external_value(PARM_TEXT, 'the result')
}
}
Moodle 中的每个 ajax 调用都不需要有 Web 服务,除非你能很好地处理异常和功能。 您可以使用常规 XML HttpRequest 来获取数据。
寻找居住在阿根廷且具有 MOODLE 经验的 PHP 程序员。请将您的简历发送至 [email protected]