📄 scorm_13.js.php
字号:
diagnostic = "Data Model Element ID Already Exists"; } break; case 'cmi.interactions.n.type': var subobject = eval(subelement); subobject.correct_responses = new Object(); subobject.correct_responses._count = 0; break; case 'cmi.interactions.n.learner_response': if (typeof eval(subelement+'.type') == "undefined") { errorCode="408"; } else { // Use cmi.interactions.n.type value to check the right dataelement format interactiontype = eval(subelement+'.type'); var nodes = new Array(); if (learner_response[interactiontype].delimiter != '') { nodes = value.split(learner_response[interactiontype].delimiter); } else { nodes[0] = value; } if ((nodes.length > 0) && (nodes.length <= learner_response[interactiontype].max)) { expression = new RegExp(learner_response[interactiontype].format); for (var i=0; (i < nodes.length) && (errorCode=="0"); i++) { if (typeof learner_response[interactiontype].delimiter2 != 'undefined') { values = nodes[i].split(learner_response[interactiontype].delimiter2); if (values.length == 2) { matches = values[0].match(expression); if (matches == null) { errorCode = "406"; } else { var expression2 = new RegExp(learner_response[interactiontype].format2); matches = values[1].match(expression2); if (matches == null) { errorCode = "406"; } } } else { errorCode = "406"; } } else { matches = nodes[i].match(expression); if (matches == null) { errorCode = "406"; } else { if ((nodes[i] != '') && (learner_response[interactiontype].unique)) { for (var j=0; (j<i) && (errorCode=="0"); j++) { if (nodes[i] == nodes[j]) { errorCode = "406"; } } } } } } } else if (nodes.length > learner_response[interactiontype].max) { errorCode = "351"; diagnostic = "Data Model Element Pattern Too Long"; } } break; case 'cmi.interactions.n.correct_responses.n.pattern': subel= subelement.split('.'); subel1= 'cmi.interactions.'+subel[2]; if (typeof eval(subel1+'.type') == "undefined") { errorCode="408"; } else { // Use cmi.interactions.n.type value to check the right //dataelement format var interactiontype = eval(subel1+'.type'); var interactioncount = eval(parentelement+'._count'); // trap duplicate values, which is not allowed for type choice if (interactiontype == 'choice') { for (var i=0; (i < interactioncount) && (errorCode=="0"); i++) { if (eval(parentelement+'.N'+i+'.pattern') == value) { errorCode = "351"; } } } var nodes = new Array(); if (correct_responses[interactiontype].delimiter != '') { nodes = value.split(correct_responses[interactiontype].delimiter); } else { nodes[0] = value; } if ((nodes.length > 0) && (nodes.length <= correct_responses[interactiontype].max)) { errorCode = CRcheckValueNodes (element, interactiontype, nodes, value, errorCode); } else if (nodes.length > correct_responses[interactiontype].max) { errorCode = "351"; diagnostic = "Data Model Element Pattern Too Long"; } } break; } } } } //Store data if (errorCode == "0") { if ((typeof eval('datamodel["'+elementmodel+'"].range')) != "undefined") { range = eval('datamodel["'+elementmodel+'"].range'); ranges = range.split('#'); value = value*1.0; if (value >= ranges[0]) { if ((ranges[1] == '*') || (value <= ranges[1])) { eval(element+'=value;'); errorCode = "0"; <?php if (debugging('',DEBUG_DEVELOPER)) {// echo 'alert("SetValue("+element+","+value+") -> OK");'; echo 'LogAPICall("SetValue", element, value, errorCode);'; } ?> return "true"; } else { errorCode = '407'; } } else { errorCode = '407'; } } else { eval(element+'=value;'); errorCode = "0"; <?php if (debugging('',DEBUG_DEVELOPER)) {// echo 'alert("SetValue("+element+","+value+") -> OK");'; echo 'LogAPICall("SetValue", element, value, errorCode);'; } ?> return "true"; } } } else { errorCode = "406"; } } else { errorCode = "404"; } } else { errorCode = "401" } } else { errorCode = "351"; } } else { if (Terminated) { errorCode = "133"; } else { errorCode = "132"; } } <?php if (debugging('',DEBUG_DEVELOPER)) { echo 'LogAPICall("SetValue", element, value, errorCode);'; } ?> return "false"; } function CRremovePrefixes (node) { // check for prefixes lang, case, order // case and then order var seenOrder = false; var seenCase = false; var seenLang = false; var errorCode = "0"; while (matches = node.match('^(\{(lang|case_matters|order_matters)=([^\}]+)\})')) { switch (matches[2]) { case 'lang': // check for language prefix on each node langmatches = node.match(CMILangcr); if (langmatches != null) { lang = langmatches[3]; // check that language string definition is valid if (lang.length > 0 && lang != undefined) { if (validLanguages[lang.toLowerCase()] == undefined) { errorCode = "406"; } } } seenLang = true; break; case 'case_matters': // check for correct case answer if (! seenLang && ! seenOrder && ! seenCase) { if (matches[3] != 'true' && matches[3] != 'false') { errorCode = "406"; } } seenCase = true; break; case 'order_matters': // check for correct case answer if (! seenCase && ! seenLang && ! seenOrder) { if (matches[3] != 'true' && matches[3] != 'false') { errorCode = "406"; } } seenOrder = true; break; default: break; } node = node.substr(matches[1].length); } return {'errorCode': errorCode, 'node': node}; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -