function scorm_seq_end_attempt($sco, $userid, $seq) { global $DB; if (scorm_is_leaf($sco)) { if (!isset($sco->tracked) || $sco->tracked == 1) { if (!scorm_seq_is('suspended', $sco->id, $userid)) { if (!isset($sco->completionsetbycontent) || $sco->completionsetbycontent == 0) { if (!scorm_seq_is('attemptprogressstatus', $sco->id, $userid, $seq->attempt)) { $incomplete = $DB->get_field('scorm_scoes_track', 'value', array('scoid' => $sco->id, 'userid' => $userid, 'element' => 'cmi.completion_status')); if ($incomplete != 'incomplete') { scorm_seq_set('attemptprogressstatus', $sco->id, $userid, $seq->attempt); scorm_seq_set('attemptcompletionstatus', $sco->id, $userid, $seq->attempt); } } } if (!isset($sco->objectivesetbycontent) || $sco->objectivesetbycontent == 0) { if ($objectives = $DB->get_records('scorm_seq_objective', array('scoid' => $sco->id))) { foreach ($objectives as $objective) { if ($objective->primaryobj) { if (!scorm_seq_is('objectiveprogressstatus', $sco->id, $userid, $seq->attempt)) { scorm_seq_set('objectiveprogressstatus', $sco->id, $userid, $seq->attempt); scorm_seq_set('objectivesatisfiedstatus', $sco->id, $userid, $seq->attempt); } } } } } } } } else { if ($children = scorm_get_children($sco)) { $suspended = false; foreach ($children as $child) { if (scorm_seq_is('suspended', $child, $userid, $seq->attempt)) { $suspended = true; break; } } if ($suspended) { scorm_seq_set('suspended', $sco, $userid, $seq->attempt); } else { scorm_seq_set('suspended', $sco, $userid, $seq->attempt, false); } } } scorm_seq_set('active', $sco->id, $userid, $seq->attempt, false); scorm_seq_overall_rollup($sco, $userid, $seq); }
function scorm_seq_end_attempt($sco, $userid, $seq) { if (scorm_is_leaf($sco)) { if (!isset($sco->tracked) || $sco->tracked == 1) { if (!scorm_seq_is('suspended', $sco->id, $userid)) { if (!isset($sco->completionsetbycontent) || $sco->completionsetbycontent == 0) { if (!scorm_seq_is('attemptprogressstatus', $sco->id, $userid, $seq->attempt)) { // if (!scorm_seq_is('attemptprogressstatus',$sco->id,$userid)) { scorm_seq_set('attemptprogressstatus', $sco->id, $userid); scorm_seq_set('attemptcompletionstatus', $sco->id, $userid); } } if (!isset($sco->objectivesetbycontent) || $sco->objectivesetbycontent == 0) { if ($objectives = get_records('scorm_seq_objective', 'scoid', $sco->id)) { foreach ($objectives as $objective) { if ($objective->primaryobj) { //if (!scorm_seq_objective_progress_status($sco,$userid,$objective)) { if (!scorm_seq_is('objectiveprogressstatus', $sco->id, $userid)) { scorm_seq_set('objectiveprogressstatus', $sco->id, $userid); scorm_seq_set('objectivesatisfiedstatus', $sco->id, $userid); } } } } } } } } else { if ($children = scorm_get_children($sco)) { $suspended = false; foreach ($children as $child) { if (scorm_seq_is('suspended', $child, $userid)) { $suspended = true; break; } } if ($suspended) { scorm_seq_set('suspended', $sco, $userid); } else { scorm_seq_set('suspended', $sco, $userid, false); } } } scorm_seq_set('active', $sco, $userid, 0, false); scorm_seq_overall_rollup($sco, $userid); }