You are here

function opigno_scorm_ui_opigno_scorm_ui_commit in Opigno 7

Implements hook_opigno_scorm_ui_commit().

File

modules/scorm/ui/opigno_scorm_ui.module, line 281
Opigno SCORM UI.

Code

function opigno_scorm_ui_opigno_scorm_ui_commit($scorm, $sco_id, $data) {
  global $user;
  if (!empty($data->scorm_version)) {
    switch ($data->scorm_version) {
      case '2004':

        // Store the last visited SCO id.
        opigno_scorm_scorm_cmi_set($user->uid, $scorm->id, 'user.sco', $sco_id);

        // Store the last position.
        if (!empty($data->cmi->location)) {
          opigno_scorm_scorm_cmi_set($user->uid, $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($user->uid, $scorm->id, 'cmi.suspend_data.' . $sco_id, $data->cmi->suspend_data);
          }
          opigno_scorm_scorm_cmi_set($user->uid, $scorm->id, 'cmi.suspend_data', $data->cmi->suspend_data);
        }

        // Store the completion status.
        if (!empty($data->cmi->completion_status)) {
          opigno_scorm_scorm_cmi_set($user->uid, $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($user->uid, $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($user->uid, $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($user->uid, $scorm->id, 'cmi.core.lesson_status', $data->cmi->core->lesson_status);
        }
        break;
    }
  }
}