You are here

function opigno_scorm_opigno_scorm_register_cmi_data in Opigno SCORM 3.x

Same name and namespace in other branches
  1. 8 opigno_scorm.module \opigno_scorm_opigno_scorm_register_cmi_data()

Implements hook_opigno_scorm_register_cmi_data().

File

./opigno_scorm.module, line 121
Module functionality implementation.

Code

function opigno_scorm_opigno_scorm_register_cmi_data($scorm, $scos, $scorm_version) {
  $account = \Drupal::currentUser();
  if (!$account
    ->id()) {
    $learner_name = "anonymous";
  }
  else {
    $learner_name = $account
      ->getAccountName();
  }
  switch ($scorm_version) {
    case '2004':
      $data = [
        'cmi.location' => opigno_scorm_scorm_cmi_get($account
          ->id(), $scorm->id, 'cmi.location', ''),
        'cmi.completion_status' => opigno_scorm_scorm_cmi_get($account
          ->id(), $scorm->id, 'cmi.completion_status', 'unknown'),
        'cmi.exit' => opigno_scorm_scorm_cmi_get($account
          ->id(), $scorm->id, 'cmi.exit', ''),
        'cmi.entry' => opigno_scorm_scorm_cmi_get($account
          ->id(), $scorm->id, 'cmi.entry', ''),
        'cmi.learner_id' => $account
          ->id(),
        'cmi.learner_name' => $learner_name,
        'cmi.learner_preference._children' => "audio_level,language,delivery_speed,audio_captioning",
        'cmi.learner_preference.audio_level' => 1,
        'cmi.learner_preference.language' => '',
        'cmi.learner_preference.delivery_speed' => 1,
        'cmi.learner_preference.audio_captioning' => 0,
      ];
      break;
    case '1.2':
      $data = [
        'cmi.core.lesson_location' => opigno_scorm_scorm_cmi_get($account
          ->id(), $scorm->id, 'cmi.core.lesson_location', ''),
        'cmi.core.exit' => opigno_scorm_scorm_cmi_get($account
          ->id(), $scorm->id, 'cmi.core.exit', ''),
        'cmi.core.student_id' => $account
          ->id(),
        'cmi.core.entry' => opigno_scorm_scorm_cmi_get($account
          ->id(), $scorm->id, 'cmi.core.entry', ''),
        'cmi.core.student_name' => $learner_name,
        'cmi.student_preference._children' => "audio,language,speed,text",
        'cmi.student_preference.audio' => [],
        'cmi.student_preference.language' => '',
        'cmi.student_preference.speed' => [],
        'cmi.student_preference.text' => [],
        'cmi.core.score._children' => opigno_scorm_scorm_cmi_get($account
          ->id(), $scorm->id, 'cmi.core.score._children', 'raw,min,max'),
      ];
      break;
  }
  return $data;
}