Moodle 事件层次结构

问题描述

哪些核心 Moodle 事件可以让我看到学生何时在课程的各个区域之间导航?我需要构建一个事件触发器插件,以调用外部 REST 端点,每次学生在屏幕之间导航、开始或结束课程模块等时。 Event API docs 有很长的事件列表,但是我找不到任何详细说明事件何时实际触发的内容。此外,我能找到的唯一一个似乎与我正在寻找的远程相关的活动是 course_module_viewed,不幸的是,该事件名称在许多领域重复:

core\event\course_module_viewed
mod_lti\event\course_module_viewed  
mod_page\event\course_module_viewed 
mod_resource\event\course_module_viewed 
mod_url\event\course_module_viewed

解决方法

我认为您想要“course_module_viewed”事件是对的 - 但该事件(应该是,因为它与默认的活动完成选项相关)由每个活动/资源类型实现,因为它可能意味着不同的事情。因此,如果 Activity 是“页面”,则查看它会触发 mod_page\event\course_module_viewed,如果 Activity 是 SCORM 包,则触发 mod_scorm\event\course_module_viewed。所有这些都应该扩展抽象的 core\event\course_module_viewed 类。

没有用于在活动中的页面之间移动的默认事件 - 在该粒度级别上,您取决于该插件的实施者是否决定为此记录事件,或者活动是否甚至 页。

您可能感兴趣的其他事件是仅存在于核心中的 core\event\course_viewedcore\event\course_completed,以及您可能在课程内容中遇到的每个单独活动触发的各种其他事件。例如。对于 SCORM 活动,您可能对“mod_scorm\event\status_submitted”事件感兴趣