2017-05-03 11 views
0

Ich benutze Moodle 3.2.2 und ich lade Scorm Course Dispatch-Datei in Moodle. Alles funktioniert gut außer Fortsetzen des Kurses.Moodle Scorm Kurs Lebenslauf

Ich habe meine eigene Versanddatei wie Scorm Cloud erstellt. Wenn ich den gleichen Kurs durch Download Scorm Cloud-Versanddatei testen, funktioniert es gut. Aber meine Versanddatei in Moodle setzt den Kurs nicht fort.

Hinweis: Ich benutze iSpring Presenter, um SCORM-Kurs zu erstellen.

Dies ist die Versandstruktur von Dateien, die ich habe.

enter image description here

Der dispatch.html Code ist

<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 eine Datei ist, die Kommunikation zwischen LMS und SCORM zu bauen hilft. während die Datei client-loader.js für die Kommunikation zuständig ist. Ich verwende folgenden Code

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"); 
      } 

Wenn der Benutzer die Moodle LMS Fenster diesen Code schließen

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

Aber das nächste Mal, wenn ich bin nicht in der Lage Kurs fortzusetzen. Kann mir jemand sagen, wo ich falsch liege? Wie kann ich den Kurs von der letzten Folie fortsetzen?

Antwort

0

Ich werde dies aus einem echten alten Wissen ausgraben, also denke daran, dass du es verifizieren musst. Ich glaube, wie Moodle kodiert wurde; Wenn Sie einen Status setzen, kann dies dazu führen, dass das SCO im "Review" -Modus neu startet, was Ihren cmi.core.entry stört. Ich musste in meiner Content-API-Bibliothek explizit die Option "Nicht Status bis zum Ende" einrichten, um dieses Problem zu beheben. Verwechseln Sie "Finish" nicht mit "LMSFinish". Es ist mehr oder weniger "der Student ist mit dem Versuch fertig". Die meisten SCORM 2004-Benutzer setzen den SCO-Status auf unvollständig, wenn dies nicht versucht wird. Es macht Sinn. Mit einem eklatanten Unterschied - In SCORM 1.2 gibt es nur einen Status für bestanden, nicht bestanden, abgeschlossen oder unvollständig (nicht versucht). Überprüfen Sie Ihre cmi.core.lesson_mode um zu sehen, ob meine Theorie bei einem zweiten Start korrekt ist.

Als Entwickler von Inhalten hätten wir wahrscheinlich eine bessere Arbeit machen können, um UI-Elemente zu entlarven, die "Ich bin fertig" wie ein Eingeben Ihrer Hausaufgaben. Einige LMS-Systeme gingen sogar zu Extents, um "fertig" -Buttons in ihre TOCs oder Lesson Viewers zu schreiben. Diese Begriffe verwirren oft Leute und einige davon wurden in SCORM 2004 angesprochen. Ich glaube, dass Moodle ihre SCORM 2004 Runtime-Unterstützung aufgegeben hat.

Bedenken Sie, dass Moodle auch erlaubt, Daten im Review-Modus gegen ein SCO zu setzen. SCORM gab nicht genau vor, was ein LMS in dieser Situation tun sollte, aber Moodle entschied sich dafür, dass dies den Schülerversuch weiter verändern sollte. Meine Meinung hier ist, dass dies ein "nie endender Versuch" ist. Wir könnten darüber diskutieren, ob das richtig/falsch oder gleichgültig ist - aber letztendlich war das SCORM-Whitepaper für 1.2 vor allem fakultativ und obligatorisch, und sie haben nicht darauf hingewiesen, was ein LMS dazu tun sollte oder nicht. Wir würden eine Zeitmaschine benötigen, um zu 2001 zurückzugehen.

Verwandte Themen