function opigno_scorm_opigno_scorm_commit in Opigno SCORM 8
Same name and namespace in other branches
- 3.x opigno_scorm.module \opigno_scorm_opigno_scorm_commit()
Implements hook_opigno_scorm_commit().
File
- ./
opigno_scorm.module, line 271 - Module functionality implementation.
Code
function opigno_scorm_opigno_scorm_commit($scorm, $sco_id, $data) {
$account = Drupal::currentUser();
if (!empty($data->scorm_version)) {
switch ($data->scorm_version) {
case '2004':
// Store the last visited SCO id.
opigno_scorm_scorm_cmi_set($account
->id(), $scorm->id, 'user.sco', $sco_id);
// Store the last position.
if (!empty($data->cmi->location)) {
opigno_scorm_scorm_cmi_set($account
->id(), $scorm->id, 'cmi.location', $data->cmi->location);
}
// Store suspend data value.
if (!empty($data->cmi->suspend_data)) {
if (!is_null($sco_id)) {
opigno_scorm_scorm_cmi_set($account
->id(), $scorm->id, 'cmi.suspend_data.' . $sco_id, $data->cmi->suspend_data);
}
opigno_scorm_scorm_cmi_set($account
->id(), $scorm->id, 'cmi.suspend_data', $data->cmi->suspend_data);
}
// Store the completion status.
if (!empty($data->cmi->completion_status)) {
opigno_scorm_scorm_cmi_set($account
->id(), $scorm->id, 'cmi.completion_status', $data->cmi->completion_status);
}
break;
case '1.2':
// Store the last position.
if (!empty($data->cmi->core->lesson_location)) {
opigno_scorm_scorm_cmi_set($account
->id(), $scorm->id, 'cmi.core.lesson_location', $data->cmi->core->lesson_location);
}
// Store suspend data value.
if (!empty($data->cmi->suspend_data)) {
opigno_scorm_scorm_cmi_set($account
->id(), $scorm->id, 'cmi.suspend_data', $data->cmi->suspend_data);
}
// Store the completion status.
if (!empty($data->cmi->core->lesson_status)) {
opigno_scorm_scorm_cmi_set($account
->id(), $scorm->id, 'cmi.core.lesson_status', $data->cmi->core->lesson_status);
}
break;
}
}
}