moodle 3.6如何使用Web服务功能获得学习者的进步

时间:2019-06-13 07:11:53

标签: php laravel moodle moodle-api

我们能否在Moodle 3.6中获得特定课程的学习者的学习进度(例如30%或60%完成)

1 个答案:

答案 0 :(得分:1)

这是一种可行的方法:

  • 在课程设置中打开完成跟踪
  • 为应计入进度计算的课程中的活动设置活动完成
  • 使用core_completion_get_activities_completion_status WS函数获取每个活动的完成状态。这利用了核心get_activities_completion_status函数来返回一个包含每个活动及其完成状态的数组。
  • 遍历返回的数组以基于已完成的活动计算进度。

您的计算结果应与使用Boost和许多其他主题时出现的仪表板中报告的每个课程的进度百分比相符。

一种情况可能无法返回您的期望(无论是使用Web服务还是在核心的Moodle完成/进度报告中),如果您的课程包括诸如SCORM包之类的活动,可以在其中跟踪活动的进度。

例如,如果您的课程包含5个SCORM活动/程序包,并且每个活动/程序包都已完成50%,但是每个SCORM活动的活动完成规则要求程序包的状态为“已完成”或“通过”,则课程进度将由于所有软件包仍在进行中,因此在Moodle或WS函数返回的数据中可能显示为0%(5之0)。可以使用活动中的进度来计算进度,但是通常需要进行一些自定义才能返回您期望的结果。

祝你好运!