Software: Apache. PHP/5.5.15 uname -a: Windows NT SVR-DMZ 6.1 build 7600 (Windows Server 2008 R2 Enterprise Edition) i586 SYSTEM Safe-mode: OFF (not secure) E:\nuevo\htdocs\cursos\HTML curso 1\HTML\SDAC01_M2\lms\ drwxrwxrwx |
Viewing file: lms.js (10.92 KB) -rw-rw-rw- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) | /************** Articulate LMS Libary -- Modify data to fit the rsecAPI -- Version 4.0.000 **************/ var SURVEY_CORRECT_RESPONSE = "_"; // RSEC API var lmsAPI = parent; var g_bAPIPresent = false; var g_bLMSPresent = false; // Is Lesson Completed var g_bLessonCompleted = false; // Resume data var g_strResumeData = ""; // Save State Delay var g_nSaveTimeout; var g_nDelayCount = 0; var g_strStatus = ""; if (lmsAPI && lmsAPI.IsLmsPresent) { g_bAPIPresent = true; g_bLMSPresent = lmsAPI.IsLmsPresent(); } var g_strLDelim = "|~|"; var g_strLInteractionDelim = "|#|"; function lms_DoFSCommand(command, args) { if (g_bAPIPresent) { args = String(args); command = String(command); var arrArgs = args.split(g_strLDelim); switch (command) { case "BW_StoreQuestionResult": RecordInteraction(arrArgs); break; case "BW_SetResumeData": g_strResumeData = args; SaveStateData(); break; case "BW_UpdateStatus": ReportStatus(); break; case "BW_UpdateViewStatus": SetStatus(normalizeStatus(g_oContentResults.strStatus)); break; case "BW_InitResume": if (arrArgs[0] == "true") { g_strStatus = "incomplete"; } else { SetStatus("incomplete"); } break; case "BW_ClosePlayer": // This is an important milestone, save the data ReportStatus(); LMSCommit(); lmsAPI.ConcedeControl() break; } } } function ReportStatus() { if (g_oContentResults.strType == "quiz") { lmsAPI.SetScore(g_oContentResults.nScore, 100, 0); } SetStatus(normalizeStatus(g_oContentResults.strStatus)); } function RecordInteraction(arrArgs) { var bResult = true; var strQuizId = arrArgs[0]; var strId = arrArgs[1]; // var strId = arrArgs[2]; // Quiz id var strType = arrArgs[3]; var strCorrectResponse = arrArgs[4]; var strStudentResponse = arrArgs[5]; var nLatency = arrArgs[6]; var strResult = arrArgs[7]; var nPoints = arrArgs[8]; var strTime = arrArgs[9]; var strWeight = arrArgs[10]; var nQuestionNumber = arrArgs[11]; var strDescription = arrArgs[12]; var strLearningObjectiveId = arrArgs[13]; var bTracked = (arrArgs[14] == "true"); var bSurvey = (strResult.toLowerCase() == "neutral"); if (bTracked) { strLearningObjectiveId = strLearningObjectiveId.replace(/[ \t\r\n\v\f]/g, "_"); strResult = normalizeResult(strResult); var strTemp = ""; strTemp += "Description: " + strDescription + "\n"; strTemp += "Time: " + strTime + "\n"; strTemp += "Id: " + strId + "\n"; strTemp += "Learning Objective Id: " + strLearningObjectiveId + "\n"; strTemp += "Type: " + strType + "\n"; strTemp += "Correct Response: " + strCorrectResponse + "\n"; strTemp += "Student Response: " + strStudentResponse + "\n"; strTemp += "Result: " + strResult + "\n"; strTemp += "Weight: " + strWeight + "\n"; strTemp += "Latency: " + parseInt(nLatency) + "\n"; strTemp += "Survey: " + bSurvey; switch(strType) { case "truefalse": // True - False var bUserResult = (strStudentResponse.toLowerCase() == "true"); var bCorrectResult = (strCorrectResponse.toLowerCase() == "true"); bResult = lmsAPI.RecordTrueFalseInteraction(strId, bUserResult, strResult, bCorrectResult, strDescription, parseInt(strWeight), parseInt(nLatency), strLearningObjectiveId); break; case "wordbank": case "hotspot": case "multiplechoice": case "multipleresponse": var arrUserResult = strStudentResponse.split(g_strLInteractionDelim); var arrCorrectResult = strCorrectResponse.split(g_strLInteractionDelim); for (var i = 0; i < arrUserResult.length; i++) { var lmsString = encodeLmsString(arrUserResult[i]); var objUserResult = lmsAPI.CreateResponseIdentifier(lmsString.short, lmsString.long); arrUserResult[i] = objUserResult; } if (!bSurvey) { for (var i = 0; i < arrCorrectResult.length; i++) { var lmsString = encodeLmsString(arrCorrectResult[i]); var objCorrectResponse = lmsAPI.CreateResponseIdentifier(lmsString.short, lmsString.long); arrCorrectResult[i] = objCorrectResponse; } } else { arrCorrectResult = new Array(); } bResult = lmsAPI.RecordMultipleChoiceInteraction(strId, arrUserResult, strResult, arrCorrectResult, strDescription, parseInt(strWeight), parseInt(nLatency), strLearningObjectiveId); break; case "essay": case "fillin": case "numeric": bResult = lmsAPI.RecordFillInInteraction(strId, strStudentResponse, strResult, strCorrectResponse, strDescription, parseInt(strWeight), parseInt(nLatency), strLearningObjectiveId); break; case "matching": // Matching var arrUserResult = strStudentResponse.split(g_strLInteractionDelim); var arrCorrectResult = strCorrectResponse.split(g_strLInteractionDelim); var arrNewUserResult = new Array(); var arrNewCorrectResult = new Array(); var nIndex = 0; for (var i = 0; i < arrUserResult.length; i += 2) { var strShort = "" + (nIndex + 1); var objSource = lmsAPI.CreateResponseIdentifier(strShort.substr(0,1), arrUserResult[i]); var objUserResult = lmsAPI.CreateResponseIdentifier(arrUserResult[i + 1].substr(0,1), arrUserResult[i + 1]); arrNewUserResult[nIndex] = new lmsAPI.MatchingResponse(objSource, objUserResult); nIndex++; } nIndex = 0; if (!bSurvey) { for (var i = 0; i < arrCorrectResult.length; i += 2) { var strShort = "" + (nIndex + 1); var objSource = lmsAPI.CreateResponseIdentifier(strShort.substr(0,1), arrCorrectResult[i]); var objCorrectResponse = lmsAPI.CreateResponseIdentifier(arrCorrectResult[i + 1].substr(0,1), arrCorrectResult[i + 1]); arrNewCorrectResult[nIndex] = new lmsAPI.MatchingResponse(objSource, objCorrectResponse); nIndex++; } } bResult = lmsAPI.RecordMatchingInteraction(strId, arrNewUserResult, strResult, arrNewCorrectResult, strDescription, parseInt(strWeight), parseInt(nLatency), strLearningObjectiveId); break; case "sequence": var arrUserResult = strStudentResponse.split(g_strLInteractionDelim); var arrCorrectResult = strCorrectResponse.split(g_strLInteractionDelim); for (var i = 0; i < arrUserResult.length; i++) { var objUserResult = lmsAPI.CreateResponseIdentifier(arrUserResult[i].substr(0,1), arrUserResult[i]); arrUserResult[i] = objUserResult; } if (!bSurvey) { for (var i = 0; i < arrCorrectResult.length; i++) { var strShort = ""; if (arrCorrectResult[i].length > 0) { strShort = arrCorrectResult[i].substr(0,1); } var objCorrectResponse = lmsAPI.CreateResponseIdentifier(arrCorrectResult[i].substr(0,1), arrCorrectResult[i]); arrCorrectResult[i] = objCorrectResponse; } } else { arrCorrectResult = new Array(); } bResult = lmsAPI.RecordSequencingInteraction(strId, arrUserResult, strResult, arrCorrectResult, strDescription, parseInt(strWeight), parseInt(nLatency), strLearningObjectiveId); break; case "likert": bResult = lmsAPI.RecordLikertInteraction(strId, lmsAPI.CreateResponseIdentifier(strStudentResponse.substr(0,1), strStudentResponse), strResult, strCorrectResponse, strDescription, parseInt(strWeight), parseInt(nLatency), strLearningObjectiveId); break; break; default: // alert("Unhandled: " + strType); break; } } } function encodeLmsString(value) { var long = value.replace(/[^A-Za-z_0-9!@#$%^*()\-+=.?,[\]\/`~\|:;]+/g, "_"); var short = "" var tempShort =value.replace(/[\W]+/g, ""); if (tempShort.length > 0) { short = tempShort.substr(0,1); } return { short: short, long: long }; } function normalizeResult(result) { switch (result.toUpperCase().charAt(0)) { case 'C': return lmsAPI.INTERACTION_RESULT_CORRECT; case 'I': return lmsAPI.INTERACTION_RESULT_WRONG; case 'W': return lmsAPI.INTERACTION_RESULT_WRONG; case 'U': return lmsAPI.INTERACTION_RESULT_UNANTICIPATED; case 'N': return lmsAPI.INTERACTION_RESULT_NEUTRAL; } return result; } function normalizeStatus(status) { switch (status.toUpperCase().charAt(0)) { case 'C': return "completed"; case 'I': return "incomplete"; case 'N': return "not attempted"; case 'F': return "failed"; case 'P': return "passed"; } return status; } function timecodeToMilliSeconds( tCode) { var results = tCode.split(":"); var secs; for (var i = 0; i < results.length; i++) { if (results[i].substr(0,1) == "0") { results[i] = results[i].substr(1); } } secs = ((parseInt(results[0]) * 60) + parseInt(results[1])) * 60 + parseInt(results[2]); return secs * 1000; } function SetStatus(strStatus) { if (strStatus != g_strStatus) { g_strStatus = strStatus; switch (strStatus) { case "complete": case "completed": lmsAPI.SetReachedEnd(); break; case "incomplete": lmsAPI.ResetStatus(); break; case "not attempted": break; case "failed": lmsAPI.SetFailed(); break; case "passed": lmsAPI.SetPassed(); break; } ForceCommit(); } } function SaveStateData() { g_nDelayCount++; if (g_nSaveTimeout) { clearTimeout(g_nSaveTimeout); } if (g_nDelayCount >= 10) { SaveNow(); } else { g_nSaveTimeout = setTimeout("SaveNow()",500); } } function ForceCommit() { if (g_bAPIPresent) { lmsAPI.SetDataChunk(g_strResumeData); LMSCommit(); } } function SaveNow() { g_nDelayCount = 0; if (g_bAPIPresent) { lmsAPI.SetDataChunk(g_strResumeData); } } function RetrieveStateData() { if (g_bAPIPresent) { // Get Resume Data g_strResumeData = lmsAPI.GetDataChunk(); // Check to see if the lesson was completed g_bLessonCompleted = (lmsAPI.GetStatus() == lmsAPI.LESSON_STATUS_COMPLETED); } } function LMSCommit() { if (g_bWarnOnCommitFail) { var bResult = true; try { bResult = lmsAPI.CommitData(); } catch(e) { bResult = false; }; if (!bResult) { WarnCommit(); } } else { lmsAPI.CommitData(); } } function WarnCommit() { var bResult = false; while (!bResult) { bResult = true; if (confirm("The method CommitData failed sending data to LMS. Retry?")) { try { bResult = lmsAPI.CommitData(); } catch(e) { bResult = false; }; } } } // Use this method to update the status at the last minute and then call the LMS APIs Unload method function LMSUnload() { if (g_bAPIPresent) { ReportStatus(); lmsAPI.Unload(); } } setInterval("ForceCommit()", 600000); if (g_bAPIPresent) { if (IE6) { setTimeout("ForceCommit()", 5000); } else { LMSCommit(); } } |
:: Command execute :: | |
--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0156 ]-- |