diff --git a/mod/scorm/datamodel.php b/mod/scorm/datamodel.php index c48b81e4cf2..c233b94b3f0 100644 --- a/mod/scorm/datamodel.php +++ b/mod/scorm/datamodel.php @@ -72,7 +72,7 @@ // Log every datamodel update requested if (substr($element,0,15) == 'adl.nav.request' || substr($element,0,3) == 'cmi') { if (scorm_debugging($scorm)) { - add_to_log($course->id, 'scorm', 'trk: '.trim($scorm->name).' at: '.$attempt, 'view.php?id='.$cm->id, "$element => $value", $cm->id); + add_to_log($course->id, 'scorm', 'trk: scoid/'.$scoid.' at: '.$attempt, 'view.php?id='.$cm->id, "$element => $value", $cm->id); } } } diff --git a/mod/scorm/datamodels/scorm_13.js.php b/mod/scorm/datamodels/scorm_13.js.php index 5fdce9a8cd1..54286a54e55 100644 --- a/mod/scorm/datamodels/scorm_13.js.php +++ b/mod/scorm/datamodels/scorm_13.js.php @@ -266,6 +266,7 @@ function SCORMapi1_3() { var Initialized = false; var Terminated = false; var diagnostic = ""; + var errorCode = "0"; function Initialize (param) { errorCode = "0"; @@ -275,7 +276,6 @@ function SCORMapi1_3() { errorCode = "0"; @@ -292,7 +292,6 @@ function SCORMapi1_3() { } @@ -310,43 +309,53 @@ function SCORMapi1_3() { errorCode = "0"; if (param == "") { if ((Initialized) && (!Terminated)) { + var AJAXResult = StoreData(cmi,true); - Initialized = false; - Terminated = true; - var result = StoreData(cmi,true); - if (adl.nav.request != '_none_') { - switch (adl.nav.request) { - case 'continue': + result = ('true' == AJAXResult) ? 'true' : 'false'; + errorCode = ('true' == result)? '0' : '101'; // General exception for any AJAX fault + + if ('true' == result) { + Initialized = false; + Terminated = true; + if (adl.nav.request != '_none_') { + switch (adl.nav.request) { + case 'continue': + setTimeout('scorm_get_next();',500); + break; + case 'previous': + setTimeout('scorm_get_prev();',500); + break; + case 'choice': + break; + case 'exit': + break; + case 'exitAll': + break; + case 'abandon': + break; + case 'abandonAll': + break; + } + } else { + if (auto ?> == 1) { setTimeout('scorm_get_next();',500); - break; - case 'previous': - setTimeout('scorm_get_prev();',500); - break; - case 'choice': - break; - case 'exit': - break; - case 'exitAll': - break; - case 'abandon': - break; - case 'abandonAll': - break; + } } + // trigger TOC update + var sURL = "wwwroot; ?>" + "/mod/scorm/prereqs.php?a=id ?>&scoid=&attempt=&mode=¤torg=&sesskey="; + YAHOO.util.Connect.asyncRequest('GET', sURL, this.connectPrereqCallback, null); } else { - if (auto ?> == 1) { - setTimeout('scorm_get_next();',500); - } + diagnostic = "Failure calling the Terminate remote callback: the server replied with HTTP Status " + AJAXResult; } - // trigger TOC update - var sURL = "wwwroot; ?>" + "/mod/scorm/prereqs.php?a=id ?>&scoid=&attempt=&mode=¤torg=&sesskey="; - YAHOO.util.Connect.asyncRequest('GET', sURL, this.connectPrereqCallback, null); - return "true"; + return result; } else { if (Terminated) { errorCode = "113"; @@ -359,7 +368,7 @@ function SCORMapi1_3() { } return "false"; @@ -391,7 +400,6 @@ function SCORMapi1_3() { errorCode = "0"; "+eval(element));'; echo 'LogAPICall("GetValue", element, eval(element), 0);'; } ?> @@ -457,7 +465,6 @@ function SCORMapi1_3() { } "+GetErrorString(errorCode));'; echo 'LogAPICall("GetValue", element, "", errorCode);'; } ?> @@ -754,7 +761,6 @@ function SCORMapi1_3() { errorCode = "0"; OK");'; echo 'LogAPICall("SetValue", element, value, errorCode);'; } ?> @@ -770,7 +776,6 @@ function SCORMapi1_3() { errorCode = "0"; OK");'; echo 'LogAPICall("SetValue", element, value, errorCode);'; } ?> @@ -922,14 +927,23 @@ function SCORMapi1_3() { errorCode = "0"; if (param == "") { if ((Initialized) && (!Terminated)) { - result = StoreData(cmi,false); + var AJAXResult = StoreData(cmi,false); - return "true"; + var result = ('true' == AJAXResult) ? 'true' : 'false'; + errorCode = ('true' == result)? '0' : '101'; // General exception for any AJAX fault + + if ('false' == result) { + diagnostic = "Failure calling the Commit remote callback: the server replied with HTTP Status " + AJAXResult; + } + return result; } else { if (Terminated) { errorCode = "143"; @@ -942,15 +956,14 @@ function SCORMapi1_3() { } return "false"; } function GetLastError () { - '; datastring += '&scoid='; - var myRequest = NewHttpReq(); - var result = DoRequest(myRequest,"wwwroot) ?>/mod/scorm/datamodel.php","id=&sesskey="+datastring); - + var result = DoRequest(myRequest,"wwwroot) ?>/mod/scorm/datamodel.php","id=&a=&sesskey="+datastring); var results = String(result).split('\n'); if ((results.length > 2) && (navrequest != '')) { eval(results[2]);