@ -1,4 +1,4 @@
<?php // $Id: scorm_api.php 21157 2009-06-01 05:41:16 Z yannoo $
<?php // $Id: scorm_api.php 21158 2009-06-01 14:00:45 Z yannoo $
/*
==============================================================================
Dokeos - elearning and course management software
@ -753,12 +753,12 @@ function savedata(origin) {
<?php } ?>
;
} else {
/*
* See notes in switch_item for why this has been disabled
if ((origin== 'finish' || origin == 'unload') & & lesson_status != 'completed' & & lesson_status != 'passed' & & lesson_status != 'browsed' & & lesson_status != 'failed' & & lesson_status != 'incomplete') {
/*
The SCORM1.2 Runtime object document says for the "cmi.core.lesson_status" variable:
Upon receiving the LMSFinish() call or the user navigates away,
the LMS should set the cmi.core.lesson_status for the SCO to 'completed'
*/
// The SCORM1.2 Runtime object document says for the "cmi.core.lesson_status" variable:
// Upon receiving the LMSFinish() call or the user navigates away,
// the LMS should set the cmi.core.lesson_status for the SCO to 'completed'
logit_lms('the LMS did saving data (status='+lesson_status+' - interactions: '+ interactions.length +')',1);
if (mastery_score & & mastery_score!= '' & & score & & score != '') {
if (score >= mastery_score) {
@ -772,6 +772,7 @@ function savedata(origin) {
updatetable_to_list['cmi.core.lesson_status']='true';
}
}
*/
}
my_get_value_scorm=new Array();
@ -796,9 +797,12 @@ function savedata(origin) {
variable_to_send=new Array();
my_get_value_scorm=new Array();
}
/*
* See notes in switch_item for why this has been disabled
function savedata_onunload() {
savedata('unload');
}
*/
function LMSCommit(val) {
logit_scorm('LMSCommit()',0);
@ -949,9 +953,11 @@ function addListeners(){
addEvent(window,'unload',dokeos_save_asset,false);
logit_lms('Added event listener on content_id for unload',2);
}
/* See notes in switch_item() for why this has been disabled
if (lms_lp_type==2) {
addEvent(window,'unload',savedata_onunload,false);
}
*/
logit_lms('Quitting addListeners()',2);
}
@ -1219,9 +1225,8 @@ function update_message_frame(msg_msg)
* item (like 'next', 'previous', 'first' or 'last') or the id to the next item
*/
function switch_item(current_item, next_item){
//(1) save the current item
function switch_item(current_item, next_item) {
//(1) save the current item
logit_lms('Called switch_item with params '+lms_item_id+' and '+next_item+'',0);
if (lms_lp_type==1 || lms_item_type=='asset' || session_time == '0' || session_time == '0:00:00'){
xajax_save_item(lms_lp_id, lms_user_id, lms_view_id, lms_item_id, score, max, min, lesson_status, asset_timer, suspend_data, lesson_location,interactions, lms_item_core_exit);
@ -1239,15 +1244,21 @@ function switch_item(current_item, next_item){
* particular time, but here we are in the case of switching to another
* item, so this is particularly important to complete the element in
* time.
* However, this cannot be initiated from the JavaScript, mainly
* because another onunload event can be triggered by the SCO itself,
* which can set, for example, the status to incomplete while the
* status has already been set to "completed" by the hand-made
* savedata(unload) (and then the status cannot be "incompleted"
* anymore)
*/
if (lms_item_type=='sco' & & lesson_status != 'completed' & & lesson_status != 'passed' & & lesson_status != 'browsed' & & lesson_status != 'incomplete' & & lesson_status != 'failed') {
// if (lms_item_type=='sco' & & lesson_status != 'completed' & & lesson_status != 'passed' & & lesson_status != 'browsed' & & lesson_status != 'incomplete' & & lesson_status != 'failed') {
/**
* savedata('finish') treats the special condition and saves the
* new status to the database, so switch_item_details() enjoys the
* new status
*/
savedata('finish');
}
// savedata('finish');
// }
// xajax_save_item(lms_lp_id, lms_user_id, lms_view_id, lms_item_id, score, max, min, lesson_status, session_time, suspend_data, lesson_location,interactions, lms_item_core_exit);
}
execute_stats=false;