使用文件API获取Moodle中文件的实际URL


Get actual URL of file in Moodle using file API

简介:在moodle中,我们需要创建一个带有图像的问题(比如有4个选项的多选问题)(在问题文本或答案文本中)。我们可以将图像放在问题文本和答案文本中,moodle使用其文件API完美地显示这些图像。

问题:我的问题是,我正在开发一个用于打印测验的自定义模块,但我无法显示这些图像。

详细信息:当moodle将这些问题和答案保存在数据库中时,它会以以下格式保存图像URL(请参见img的src属性):

<p><img src="@@PLUGINFILE@@/22-2-16.png" alt="" width="1366" height="768" role="presentation" style="vertical-align:text-bottom; margin: 0 .5em;" class="img-responsive"><br></p>

由于moodle的这种格式,我的图像不会被提取。我需要以某种方式解码这个src属性,以获得保存在数据库中的图像的实际URL。

如有任何帮助,我们将不胜感激。

如果从question/questionbase.php开始跟踪原始问题代码,您应该会找到一个函数question_definition::format_text()。此功能涵盖了您需要对问题文本进行的所有操作,以便为显示做好准备。

在内部,它调用question_attempt::rewrite_pluginfile_urls(),然后调用函数question_rewrite_question_urls。

希望这足以让你开始。