首页 > 解决方案 > 当 mdl_course_completion 在moodle中更新时

问题描述

 我正在构建一个调度程序。此调度程序将检查所有用户的课程结束日期并发送电子邮件通知他们完成课程。但它不应发送给已完成课程的用户。我无法追踪用户的课程完成记录。

我从https://docs.moodle.org/27/en/ad-hoc_contributed_reports找到了一个有用的链接 来完成这个。但是发现无论如何 mdl_course_completion 都没有更新。 

我只想知道 mdl_course_completion 何时更新。

如何完成用户的课程以及 mdl_course_completion 何时更新。

 

标签: phpmoodle

解决方案


如果两个项目设置正确, course_completions 表应该定期更新:

  1. 为您要跟踪的课程设置/保存 课程完成设置
    • 这些设置位于每门课程的课程设置菜单中,并且与课程中每个活动/模块的完成设置分开。
    • 如果您为每个活动/模块设置完成规则,而不是为整个课程设置完成规则,然后学生成功完成所有模块,您最终会在 course_modules_completions 表中获得数据,但在 course_completions 表中没有数据。
    • 学习者/学生必须满足课程完成要求。
  2. Moodle cron 命令设置正确
    • 例如,如果您在 Linux 中运行 Moodle,则该命令通常会添加到 crontab 文件中。如果使用 Windows 服务器,您将创建计划任务。
    • 如果设置正确,这会触发一系列核心 Moodle 任务,包括检查新的完成;它还将触发您设置的任何自定义任务。
    • 检查 cron 是否设置正确的一种快速方法是查看站点管理 -> 通知。如果您看到“自上次运行 cron 以来已超过 24 小时”或类似内容,则表明您的 cron 配置不正确。

如果这两个都设置了,则 course_completions 表应该在每次设置 cron 命令执行时更新为任何新的完成。

希望这是有用的 - 祝你好运!


推荐阅读