⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scorm_13.js.php

📁 很棒的在线教学系统
💻 PHP
📖 第 1 页 / 共 5 页
字号:
                                    return "unknown";                                } else {                                    return "false";                                }                            }                        } else {                            errorCode = "401";                        }                    }                }            } else {                errorCode = "301";            }        } else {            if (Terminated) {                errorCode = "123";            } else {                errorCode = "122";            }        }        <?php            if (debugging('',DEBUG_DEVELOPER)) {//                echo 'alert("GetValue("+element+") -> "+GetErrorString(errorCode));';                echo 'LogAPICall("GetValue", element, "", errorCode);';            }        ?>        return "";    }    function SetValue (element,value) {        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') != 'r') {                        if (eval('datamodel["'+elementmodel+'"].format') != 'CMIFeedback') {                            expression = new RegExp(eval('datamodel["'+elementmodel+'"].format'));                        } else {                            // cmi.interactions.n.type depending format accept everything at this stage                            expression = new RegExp(CMIFeedback);                        }                        value = value+'';                        var matches = value.match(expression);                        if ((matches != null) && ((matches.join('').length > 0) || (value.length == 0))) {                            // Value match dataelement format                            if (element != elementmodel) {                                //This is a dynamic datamodel element                                var elementIndexes = element.split('.');                                var subelement = 'cmi';                                var parentelement = 'cmi';                                for (var i=1;(i < elementIndexes.length-1) && (errorCode=="0");i++) {                                    var elementIndex = elementIndexes[i];                                    if (elementIndexes[i+1].match(/^\d+$/)) {                                        if ((parseInt(elementIndexes[i+1]) > 0) && (elementIndexes[i+1].charAt(0) == 0)) {                                            // Index has a leading 0 (zero), this is not a number                                            errorCode = "351";                                        }                                        parentelement = subelement+'.'+elementIndex;                                        if ((typeof eval(parentelement) == "undefined") || (typeof eval(parentelement+'._count') == "undefined")) {                                            errorCode="408";                                        } else {                                            if (elementIndexes[i+1] > eval(parentelement+'._count')) {                                                errorCode = "351";                                                diagnostic = "Data Model Element Collection Set Out Of Order";                                            }                                            subelement = subelement.concat('.'+elementIndex+'.N'+elementIndexes[i+1]);                                            i++;                                            if (((typeof eval(subelement)) == "undefined") && (i < elementIndexes.length-2)) {                                                errorCode="408";                                            }                                        }                                    } else {                                        subelement = subelement.concat('.'+elementIndex);                                    }                                }                                if (errorCode == "0") {                                    // Till now it's a real datamodel element                                    element = subelement.concat('.'+elementIndexes[elementIndexes.length-1]);                                    if ((typeof eval(subelement)) == "undefined") {                                        switch (elementmodel) {                                            case 'cmi.objectives.n.id':                                                if (!duplicatedID(element,parentelement,value)) {                                                    if (elementIndexes[elementIndexes.length-2] == eval(parentelement+'._count')) {                                                        eval(parentelement+'._count++;');                                                        eval(subelement+' = new Object();');                                                        var subobject = eval(subelement);                                                        subobject.success_status = datamodel["cmi.objectives.n.success_status"].defaultvalue;                                                        subobject.completion_status = datamodel["cmi.objectives.n.completion_status"].defaultvalue;                                                        subobject.progress_measure = datamodel["cmi.objectives.n.progress_measure"].defaultvalue;                                                        subobject.score = new Object();                                                        subobject.score._children = score_children;                                                        subobject.score.scaled = datamodel["cmi.objectives.n.score.scaled"].defaultvalue;                                                        subobject.score.raw = datamodel["cmi.objectives.n.score.raw"].defaultvalue;                                                        subobject.score.min = datamodel["cmi.objectives.n.score.min"].defaultvalue;                                                        subobject.score.max = datamodel["cmi.objectives.n.score.max"].defaultvalue;                                                    }                                                } else {                                                    errorCode="351";                                                    diagnostic = "Data Model Element ID Already Exists";                                                }                                            break;                                            case 'cmi.interactions.n.id':                                                if (elementIndexes[elementIndexes.length-2] == eval(parentelement+'._count')) {                                                    eval(parentelement+'._count++;');                                                    eval(subelement+' = new Object();');                                                    var subobject = eval(subelement);                                                    subobject.objectives = new Object();                                                    subobject.objectives._count = 0;                                                }                                            break;                                            case 'cmi.interactions.n.objectives.n.id':                                                if (typeof eval(parentelement) != "undefined") {                                                    if (!duplicatedID(element,parentelement,value)) {                                                        if (elementIndexes[elementIndexes.length-2] == eval(parentelement+'._count')) {                                                            eval(parentelement+'._count++;');                                                            eval(subelement+' = new Object();');                                                        }                                                    } else {                                                        errorCode="351";                                                        diagnostic = "Data Model Element ID Already Exists";                                                    }                                                } else {                                                    errorCode="408";                                                }                                            break;                                            case 'cmi.interactions.n.correct_responses.n.pattern':                                                if (typeof eval(parentelement) != "undefined") {                                                    // Use cmi.interactions.n.type value to check the right dataelement format                                                    if (elementIndexes[elementIndexes.length-2] == eval(parentelement+'._count')) {                                                        var interactiontype = eval(String(parentelement).replace('correct_responses','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";                                                               }                                                            }                                                        }                                                        if ((typeof correct_responses[interactiontype].limit == 'undefined') ||                                                            (eval(parentelement+'._count') < correct_responses[interactiontype].limit)) {                                                            var nodes = new Array();                                                            if (correct_responses[interactiontype].delimiter != '') {                                                                nodes = value.split(correct_responses[interactiontype].delimiter);                                                            } else {                                                                nodes[0] = value;                                                            }                                                            if (interactiontype == 'choice' && nodes.length == 1) {                                                              alert('not enough choices: ' + element);                                                            }                                                            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";                                                            }                                                            if ((errorCode == "0") && ((correct_responses[interactiontype].duplicate == false) ||                                                               (!duplicatedPA(element,parentelement,value))) || (errorCode == "0" && value == "")) {                                                               eval(parentelement+'._count++;');                                                               eval(subelement+' = new Object();');                                                            } else {                                                                if (errorCode == "0") {                                                                    errorCode="351";                                                                    diagnostic = "Data Model Element Pattern Already Exists";                                                                }                                                            }                                                        } else {                                                            errorCode="351";                                                            diagnostic = "Data Model Element Collection Limit Reached";                                                        }                                                    } else {                                                        errorCode="351";                                                        diagnostic = "Data Model Element Collection Set Out Of Order";                                                    }                                                } else {                                                    errorCode="408";                                                }                                            break;                                            default:                                                if ((parentelement != 'cmi.objectives') && (parentelement != 'cmi.interactions') && (typeof eval(parentelement) != "undefined")) {                                                    if (elementIndexes[elementIndexes.length-2] == eval(parentelement+'._count')) {                                                        eval(parentelement+'._count++;');                                                        eval(subelement+' = new Object();');                                                    } else {                                                        errorCode="351";                                                        diagnostic = "Data Model Element Collection Set Out Of Order";                                                    }                                                } else {                                                    errorCode="408";                                                }                                            break;                                        }                                    } else {                                        switch (elementmodel) {                                            case 'cmi.objectives.n.id':                                                if (eval(element) != value) {                                                    errorCode = "351";                                                    diagnostic = "Write Once Violation";                                                }                                            break;                                            case 'cmi.interactions.n.objectives.n.id':                                                if (duplicatedID(element,parentelement,value)) {                                                    errorCode = "351";

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -