📄 scorm_13.js.php
字号:
'cmi.suspend_data':{'defaultvalue':<?php echo isset($userdata->{'cmi.suspend_data'})?'\''.$userdata->{'cmi.suspend_data'}.'\'':'null' ?>, 'format':CMIString64000, 'mod':'rw'}, 'cmi.time_limit_action':{'defaultvalue':<?php echo isset($userdata->timelimitaction)?'\''.$userdata->timelimitaction.'\'':'null' ?>, 'mod':'r'}, 'cmi.total_time':{'defaultvalue':'<?php echo isset($userdata->{'cmi.total_time'})?$userdata->{'cmi.total_time'}:'PT0H0M0S' ?>', 'mod':'r'}, 'adl.nav.request':{'defaultvalue':'_none_', 'format':NAVEvent, 'mod':'rw'} }; // // Datamodel inizialization // var cmi = new Object(); cmi.comments_from_learner = new Object(); cmi.comments_from_learner._count = 0; cmi.comments_from_lms = new Object(); cmi.comments_from_lms._count = 0; cmi.interactions = new Object(); cmi.interactions._count = 0; cmi.learner_preference = new Object(); cmi.objectives = new Object(); cmi.objectives._count = 0; cmi.score = new Object(); // Navigation Object var adl = new Object(); adl.nav = new Object(); adl.nav.request_valid = new Array(); for (element in datamodel) { if (element.match(/\.n\./) == null) { if ((typeof eval('datamodel["'+element+'"].defaultvalue')) != 'undefined') { eval(element+' = datamodel["'+element+'"].defaultvalue;'); } else { eval(element+' = "";'); } } }<?php // reconstitute objectives, comments_from_learner and comments_from_lms scorm_reconstitute_array_element($scorm->version, $userdata, 'cmi.objectives', array('score')); scorm_reconstitute_array_element($scorm->version, $userdata, 'cmi.interactions', array('objectives', 'correct_responses')); scorm_reconstitute_array_element($scorm->version, $userdata, 'cmi.comments_from_learner', array()); scorm_reconstitute_array_element($scorm->version, $userdata, 'cmi.comments_from_lms', array());?> if (cmi.completion_status == '') { cmi.completion_status = 'not attempted'; } // // API Methods definition // var Initialized = false; var Terminated = false; var diagnostic = ""; function Initialize (param) { errorCode = "0"; if (param == "") { if ((!Initialized) && (!Terminated)) { Initialized = true; errorCode = "0"; <?php if (debugging('',DEBUG_DEVELOPER)) {// echo 'alert("Initialized SCORM 1.3");'; echo 'LogAPICall("Initialize", param, "", errorCode);'; } ?> return "true"; } else { if (Initialized) { errorCode = "103"; } else { errorCode = "104"; } } } else { errorCode = "201"; } <?php if (debugging('',DEBUG_DEVELOPER)) {// echo 'alert("Initialize: "+GetErrorString(errorCode));'; echo 'LogAPICall("Initialize", param, "", errorCode);'; } ?> return "false"; } function Terminate (param) { errorCode = "0"; if (param == "") { if ((Initialized) && (!Terminated)) { <?php if (debugging('',DEBUG_DEVELOPER)) {// echo 'alert("Terminated SCORM 1.3");'; echo 'LogAPICall("Terminate", param, "", 0);'; } ?> Initialized = false; Terminated = true; var result = StoreData(cmi,true); if (adl.nav.request != '_none_') { switch (adl.nav.request) { case 'continue': setTimeout('top.nextSCO();',500); break; case 'previous': setTimeout('top.prevSCO();',500); break; case 'choice': break; case 'exit': break; case 'exitAll': break; case 'abandon': break; case 'abandonAll': break; } } else { if (<?php echo $scorm->auto ?> == 1) { setTimeout('top.nextSCO();',500); } } return "true"; } else { if (Terminated) { errorCode = "113"; } else { errorCode = "112"; } } } else { errorCode = "201"; } <?php if (debugging('',DEBUG_DEVELOPER)) { echo 'alert("Terminate: "+GetErrorString(errorCode));'; } ?> return "false"; } function GetValue (element) { errorCode = "0"; diagnostic = ""; if ((Initialized) && (!Terminated)) { if (element !="") { var expression = new RegExp(CMIIndex,'g'); var elementmodel = String(element).replace(expression,'.n.'); if ((typeof eval('datamodel["'+elementmodel+'"]')) != "undefined") { if (eval('datamodel["'+elementmodel+'"].mod') != 'w') { element = String(element).replace(/\.(\d+)\./, ".N$1."); element = element.replace(/\.(\d+)\./, ".N$1."); var elementIndexes = element.split('.'); var subelement = element.substr(0,3); var i = 1; while ((i < elementIndexes.length) && (typeof eval(subelement) != "undefined")) { subelement += '.'+elementIndexes[i++]; } if (subelement == element) { if ((typeof eval(subelement) != "undefined") && (eval(subelement) != null)) { errorCode = "0"; <?php if (debugging('',DEBUG_DEVELOPER)) {// echo 'alert("GetValue("+element+") -> "+eval(element));'; echo 'LogAPICall("GetValue", element, eval(element), 0);'; } ?> return eval(element); } else { errorCode = "403"; } } else { errorCode = "301"; } } else { //errorCode = eval('datamodel["'+elementmodel+'"].readerror'); errorCode = "405"; } } else { var childrenstr = '._children'; var countstr = '._count'; var parentmodel = ''; if (elementmodel.substr(elementmodel.length-childrenstr.length,elementmodel.length) == childrenstr) { parentmodel = elementmodel.substr(0,elementmodel.length-childrenstr.length); if ((typeof eval('datamodel["'+parentmodel+'"]')) != "undefined") { errorCode = "301"; diagnostic = "Data Model Element Does Not Have Children"; } else { errorCode = "401"; } } else if (elementmodel.substr(elementmodel.length-countstr.length,elementmodel.length) == countstr) { parentmodel = elementmodel.substr(0,elementmodel.length-countstr.length); if ((typeof eval('datamodel["'+parentmodel+'"]')) != "undefined") { errorCode = "301"; diagnostic = "Data Model Element Cannot Have Count"; } else { errorCode = "401"; } } else { parentmodel = 'adl.nav.request_valid.'; if (element.substr(0,parentmodel.length) == parentmodel) { if (element.substr(parentmodel.length).match(NAVTarget) == null) { errorCode = "301"; } else { if (adl.nav.request == element.substr(parentmodel.length)) { return "true"; } else if (adl.nav.request == '_none_') {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -