如何将 scorm 播放器与 Moodle 数据库集成

How to integrate scorm player with Moodle database

我正在构建一个使用 Moodle API 的网站,基本上是一个 Moodle 包装器。我已经到了需要播放 scorm 文件的地步。如何使用原始moodle源代码集成scorm文件将跟踪数据发送到moodle数据库。

我曾尝试编写一些跟踪课程的代码,但它不够充分且不够健壮,因此无法很好地捕捉课程进度。 我需要从前端指向哪些特定的 Moodle 源文件以捕获课程进度?

这里有几个选项:

选项 1 - 如果 SCO 已经加载到 Moodle 中,将 SCORM-compliant 数据提交到 Moodle 的快速方法:mod_scorm_insert_scorm_tracks 网络服务。这是信息。来自 Moodle 追踪器:Detail on mod_scorm_insert_tracks

  • SCORM course/content 必须已经加载到 Moodle,因此它在 Moodle 数据库中有一个 SCO ID - 传递的数据与特定的 SCO ID 相关。

选项 2:如果需要从头开始构建 SCORM-compliant course/content 体验:

  • 高水平,content/course 体验通常开发为 SCORM-compliant 内容包,并编程为通过 SCORM SCORM-compliant 将课程进度数据传达给 LMS API . SCORM API 由 LMS(本例中为 Moodle)提供,在 javascript 中。
  • 您的 course/content 需要包含标准 SCORM 文件,例如 imsmanifest.xml 并且必须作为 SCORM 包加载到 Moodle。加载到 Moodle 后,您将拥有一门课程 ID/SCO ID/etc。您可以在为其传递数据时使用。
  • 从内容 experience/course 发送的数据必须符合您选择使用的任何 SCORM 版本(例如 1.2、2004 等)的 SCORM 数据模型。
    • 这是按版本分类的数据模型的一个很好的总结,这也让您很好地了解您可以跟踪的内容:SCORM data models
    • Moodle 支持 1.2 和 2004 年的大部分时间:Moodle SCORM support FAQ
  • content/course 必须包含正确定位和使用用于 pass/receive 数据的 SCORM API JS 对象的代码。
    • SCORM JS 对象由 LMS 中用于播放 course/content(有时称为 "the player" 或 "player window")的页面提供。在 Moodle 中,这是由 mod/scorm/player.php 处理的。
    • Moodle 中的 player.php 文件会在呈现页面时加载 SCORM JS API,使其可供课程使用。然后课程文件调用 objects/functions/etc。传递数据。
    • 您的内容将用于 send/receive 数据的确切 API 对象取决于您使用的 SCORM 数据模型版本。 Content/courses 可以传递与任何版本的 SCORM 兼容的数据,但必须使用该版本的 API 对象以确保正确处理数据。
    • 在 Moodle 中,对象在 mod/scorm/datamodels/ 中可用 - 那里还有 PHP 文件,其中 get/set 数据并由 player.php 调用,具体取决于您的内容使用的 SCORM 版本。
    • 这里有关于运行时的更多详细信息API:SCORM runtime detail

另外,还有 Storyline、Captivate、Elucidat、Lectora 等课程创作工具,它们将内容打包以自动传达 SCORM 数据。这些非常适合多种类型的内容。

祝你好运!