function course_scorm_exit in Course 6
Implements hook_exit().
Track the SCORM object completion. We can get away from this if [#1392824] is addressed.
File
- modules/
course_scorm/ course_scorm.module, line 35
Code
function course_scorm_exit() {
if (arg(1) == 'datamodel') {
global $user;
$nid = db_result(db_query('SELECT nodereference FROM {scorm} WHERE id = %d', $_POST['id']));
$node = node_load($nid);
if (course_determine_context('course_scorm', 'scorm', $node)) {
$courseObject = new CourseObjectScorm($node->nid, $user);
$sql = "SELECT * FROM {scorm_scoes_track} sst\n where userid = %d AND scormid = %d AND scoid = %d AND attempt = %d";
$result = db_query($sql, $user->uid, $_POST['id'], $_POST['scoid'], $_POST['attempt']);
while ($row = db_fetch_object($result)) {
$completion_property = $row->element == 'cmi.core.lesson_status' || $row->element == 'cmi.completion_status';
$completion_value = $row->value == 'completed' || $row->value == 'passed';
$passed = $courseObject
->isGraded() && $row->element == 'cmi.core.score.raw' && $row->value > $courseObject
->getPassingGrade();
if ($completion_property && $completion_value || $passed) {
}
}
}
}
}