You are here

function theme_opigno_quiz_app_user_course_results in Opigno Quiz App 7

Theme callback: display user results for a specific course.

1 theme call to theme_opigno_quiz_app_user_course_results()
theme_opigno_quiz_app_user_results in ./opigno_quiz_app.module
Theme callback: display user results.

File

./opigno_quiz_app.module, line 1213
Module file. Defines module hooks.

Code

function theme_opigno_quiz_app_user_course_results($vars) {
  switch ($vars['course_results']['passed']) {
    case OPIGNO_QUIZ_APP_PASSED:
      $img_name = 'passed.jpg';
      $status_text = t('Passed');
      break;
    case OPIGNO_QUIZ_APP_FAILED:
      $img_name = 'failed.jpg';
      $status_text = t('Failed');
      break;
    case OPIGNO_QUIZ_APP_PENDING:
    default:
      $img_name = 'pending.jpg';
      $status_text = t('Pending');
      break;
  }
  $download_certificate = opigno_quiz_app_get_certificate($vars['course_node']->nid, $vars['user']->uid);
  $header = array(
    0 => array(
      'class' => array(
        'opigno-quiz-app-course-status',
      ),
      'colspan' => 4,
    ),
  );
  if (path_is_admin(current_path())) {
    $detailspath = "/node/{$vars['course_node']->nid}/quiz-results/{$vars['user']->uid}";
    $header[0]['data'] = t("@title (!status - <a href='!url'>see details</a>)", array(
      '@title' => $vars['course_node']->title,
      '!status' => $status_text,
      '!url' => url($detailspath),
    ));
  }
  else {
    if (!empty($vars['course_node']->nid)) {
      $detailspath = "/node/{$vars['course_node']->nid}/my-quiz-results";
      $header[0]['data'] = t("@title (!status - <a href='!url'>see details</a>)", array(
        '@title' => $vars['course_node']->title,
        '!status' => $status_text,
        '!url' => url($detailspath),
      ));
    }
    else {
      $header[0]['data'] = t("No required lessons for this course");
    }
  }
  $result = '<div class="d-inline-block v-align-top mr-4"><img src="' . url(drupal_get_path('module', 'opigno_quiz_app') . '/img/' . $img_name) . '" alt="" /></div>';
  $result .= '<div class="d-inline-block v-align-top"><div><strong>' . $status_text . '</strong></div>';

  // $result .= '<div>' . t('Pass rate:') . ' ' . '%</div>';
  $result .= '<div>' . t('Score:') . ' ' . (isset($vars['course_results']['total_score']) ? $vars['course_results']['total_score'] : '-') . '%</div></div>';
  $rows = array();
  $rows[] = array(
    'data' => array(
      $result,
      array(
        'data' => '<div class="bar" style="width :' . (isset($vars['course_results']['total_score']) ? $vars['course_results']['total_score'] : 0) . '%"></div><div>' . (isset($vars['course_results']['total_score']) ? $vars['course_results']['total_score'] : '-') . '%</div>',
        'class' => 'percent-bar text-center',
      ),
      array(
        'data' => isset($vars['course_results']['total_time']) ? gmdate('H:i:s', $vars['course_results']['total_time']) : '-',
        'class' => 'global-time text-center',
      ),
      array(
        'data' => $download_certificate,
        'class' => 'text-center',
      ),
    ),
    'class' => array(
      'header-row',
    ),
  );
  if (!empty($vars['course_results']['quizzes'])) {
    foreach ($vars['course_results']['quizzes'] as $quiz_title => $score) {
      $rows[] = array(
        'data' => array(
          check_plain($quiz_title),
          array(
            'data' => isset($score['score']) ? $score['score'] . '%' : '-',
            'class' => 'text-right',
          ),
          array(
            'data' => isset($score['total_time']) ? gmdate('H:i:s', $score['total_time']) : '-',
            'class' => 'text-right',
          ),
          array(
            'data' => NULL,
            'class' => 'text-right',
          ),
        ),
      );
    }
  }

  //////////////////////////////////////////
  if (!empty($vars['course_results']['iht'])) {
    foreach ($vars['course_results']['iht'] as $quiz_title => $score) {
      $rows[] = array(
        'data' => array(
          check_plain($quiz_title),
          array(
            'data' => isset($score['score']) ? $score['score'] . '%' : '-',
            'class' => 'text-right',
          ),
          array(
            'data' => isset($score['total_time']) ? gmdate('H:i:s', $score['total_time']) : '-',
            'class' => 'text-right',
          ),
          array(
            'data' => NULL,
            'class' => 'text-right',
          ),
        ),
      );
    }
  }
  if (!empty($vars['course_results']['live_meeting'])) {
    foreach ($vars['course_results']['live_meeting'] as $quiz_title => $score) {
      $rows[] = array(
        'data' => array(
          check_plain($quiz_title),
          array(
            'data' => isset($score['score']) ? $score['score'] . '%' : '-',
            'class' => 'text-right',
          ),
          array(
            'data' => isset($score['total_time']) ? gmdate('H:i:s', $score['total_time']) : '-',
            'class' => 'text-right',
          ),
          array(
            'data' => NULL,
            'class' => 'text-right',
          ),
        ),
      );
    }
  }
  if (!empty($vars['course_results']['webx'])) {
    foreach ($vars['course_results']['webx'] as $quiz_title => $score) {
      $rows[] = array(
        'data' => array(
          check_plain($quiz_title),
          array(
            'data' => isset($score['score']) ? $score['score'] . '%' : '-',
            'class' => 'text-right',
          ),
          array(
            'data' => isset($score['total_time']) ? gmdate('H:i:s', $score['total_time']) : '-',
            'class' => 'text-right',
          ),
          array(
            'data' => NULL,
            'class' => 'text-right',
          ),
        ),
      );
    }
  }

  //////////////////////////////////////////*/
  return theme('table', array(
    'header' => $header,
    'rows' => $rows,
    'attributes' => array(
      'class' => array(
        'opigno-quiz-app-results-table',
        'opigno-quiz-app-results-collapsible-table',
        'opigno-quiz-app-user-course-results-table',
      ),
    ),
  ));
}