You are here

function opigno_scorm_quiz_opigno_scorm_ui_commit in Opigno 7

Implements hook_opigno_scorm_ui_commit().

File

modules/scorm/quiz/opigno_scorm_quiz.module, line 160
Module hook definitions.

Code

function opigno_scorm_quiz_opigno_scorm_ui_commit($scorm, $sco_id, $data) {
  global $user;

  // Store objectives and results.
  if (!empty($data->cmi->objectives)) {
    for ($i = 0, $len = count($data->cmi->objectives); $i < $len; $i++) {
      opigno_scorm_scorm_cmi_set($user->uid, $scorm->id, "cmi.objectives.{$i}", $data->cmi->objectives[$i]);
    }
  }
  if (!empty($data->scorm_version)) {
    switch ($data->scorm_version) {
      case '2004':

        // Store the score.
        if (!empty($data->cmi->score)) {
          foreach (array(
            'raw',
            'min',
            'max',
            'scaled',
          ) as $key) {
            if (isset($data->cmi->score->{$key})) {
              opigno_scorm_scorm_cmi_set($user->uid, $scorm->id, "cmi.score.{$key}", $data->cmi->score->{$key});
            }
          }
        }

        // Store the success status.
        if (!empty($data->cmi->success_status)) {
          opigno_scorm_scorm_cmi_set($user->uid, $scorm->id, 'cmi.success_status', $data->cmi->success_status);
        }
        break;
      case '1.2':

        // Store the score.
        if (!empty($data->cmi->core->score)) {
          foreach (array(
            'raw',
            'min',
            'max',
          ) as $key) {
            if (isset($data->cmi->core->score->{$key})) {
              opigno_scorm_scorm_cmi_set($user->uid, $scorm->id, "cmi.core.score.{$key}", $data->cmi->core->score->{$key});
            }
          }
        }
        break;
    }
  }
}