Moodle Scorm课程简历

时间:2017-05-03 08:09:00

标签: moodle scorm scorm1.2

我正在使用Moodle 3.2.2,我在Moodle上传Scorm课程调度文件。一切都很好,除了恢复课程。

我创建了自己的调度文件,就像Scorm cloud一样。当我通过下载Scorm云调度文件测试相同的课程时,其工作正常。但我在Moodle的发送文件并未恢复该课程。

注意: 我使用iSpring Presenter创建SCORM课程。

这是我拥有的文件的调度结构。

enter image description here

dispatch.html代码是

<html>

<head>
    <title></title>
    <meta charset="utf-8" />
    <script src="configuration.js"></script>
    <script src="utils.js"></script>
    <script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
    <script type="text/javascript">
     include_script(DispatchRoot + "/scripts/client-driver.js");
        include_script(DispatchRoot + "/scripts/client-loader.js");

    </script>
</head>
<frameset id="dispatch_frameset" rows="0,*" frameborder="0" framespacing="0" border="0" onload="DispatchStart('dispatch_course_frame')"
          onunload="DispatchUnload()">
    <!-- We set the src to blank.html to avoid security warnings in IE6 / IE7 when launching in HTTPS -->
    <!--<frame id="dispatch_content_frame" name="dispatch_content_frame" src="blank.html" />-->
    <frame id="dispatch_loading_frame" name="dispatch_loading_frame" src="blank.html" />
    <frame id="dispatch_course_frame" name="dispatch_course_frame">
</frameset>
<noframes>
    Your browser must be able to view frames for this content to display.
</noframes>

</html>

client-driver.js是一个有助于在LMS和SCORM之间建立通信的文件。而client-loader.js文件是通信发生的地方。我正在使用以下代码

var completionStatus = Getvalue("cmi.core.lesson_status");
            if (completionStatus == "not attempted") {
                SetValue("cmi.core.lesson_status", "incomplete");
            }
            SetValue("cmi.core.exit", "suspend");
            console.log(Getvalue("cmi.core.student_id"));
            console.log(Getvalue("cmi.core.student_name"));
            var entry = Getvalue("cmi.core.entry")
            console.log(entry);
            if (entry == "resume") {
                var val = Getvalue("cmi.suspend_data");
                SetValue("cmi.suspend_data", val);
            }
            else {
                SetValue("cmi.suspend_data", "2");
            }

当用户关闭Moodle LMS窗口时,此代码执行

  SetValue("cmi.core.exit", "suspend");
    api.LMSCommit("");
    api.LMSFinish("");

但下次我无法恢复课程。谁能告诉我我做错了什么?如何从上一张幻灯片中恢复课程。?

1 个答案:

答案 0 :(得分:1)

我将从一些真正的旧知识中挖掘出来,所以要记住你需要验证它。我相信Moodle的编码方式;如果您设置任何状态,它可能会触发SCO在“查看”模式下重新启动,这将使您的cmi.core.entry陷入困境。我必须在我的内容API库中明确设置“请勿完成状态”选项来处理此问题。不要将“完成”与“LMSFinish”混淆。它或多或少“学生完成了尝试”。大多数SCORM 2004用户在“未尝试”时将SCO的状态设置为不完整。这说得通。有一个明显的区别 - 在SCORM 1.2中,只有一个状态是传递,失败,完成或不完整(未尝试)。 检查你的cmi.core.lesson_mode以确定我的理论在第二次发布时是否正确。

作为内容开发人员,我们可能会做得更好,将UI元素暴露给“我已经完成”,就像转入你的作业一样。一些LMS系统甚至进入范围,在其TOC或课程查看器中放置“完成”按钮。 这些术语经常让人感到困惑,其中一些术语在SCORM 2004中得到了解决。我相信Moodle放弃了SCORM 2004运行时支持。

请记住,Moodle还允许在审核模式下针对SCO设置数据。在这种情况下,SCORM没有完全决定LMS应该做什么,但是Moodle选择允许继续改变学生的尝试。我的观点是,这是一个“永无止境的尝试”。我们可以辩论这是对是错还是无关紧要 - 但最终SCORM的1.2白皮书主要是可选的强制性的,而且他们没有说出LMS应该或不应该做什么。我们需要一台时间机器才能回到2001年。