You are here

function quiz_user_results in Quiz 7.6

Same name and namespace in other branches
  1. 8.6 quiz.pages.inc \quiz_user_results()
  2. 8.4 quiz.pages.inc \quiz_user_results()
  3. 8.5 quiz.pages.inc \quiz_user_results()
  4. 5.2 quiz.module \quiz_user_results()
  5. 5 quiz.module \quiz_user_results()
  6. 6.6 quiz.pages.inc \quiz_user_results()
  7. 6.2 quiz.pages.inc \quiz_user_results()
  8. 6.3 quiz.pages.inc \quiz_user_results()
  9. 6.4 quiz.pages.inc \quiz_user_results()
  10. 6.5 quiz.pages.inc \quiz_user_results()
  11. 7 quiz.pages.inc \quiz_user_results()
  12. 7.4 quiz.pages.inc \quiz_user_results()
  13. 7.5 quiz.pages.inc \quiz_user_results()

Show result page for a given result id

Parameters

$result_id: Result id

1 call to quiz_user_results()
quiz_admin_results in ./quiz.admin.inc
Quiz result report page for the quiz admin section
2 string references to 'quiz_user_results'
quiz_menu in ./quiz.module
Implements hook_menu().
quiz_user_results.view.inc in includes/views/defaults/quiz_user_results.view.inc

File

./quiz.pages.inc, line 14
User pages.

Code

function quiz_user_results($result_id) {
  $result = quiz_result_load($result_id);
  if ($result->nid) {
    $quiz = node_load($result->nid, $result->vid);

    // Preserve "My results" tab.
    $item = menu_get_item("node/{$quiz->nid}/quiz-results");
    menu_set_item(NULL, $item);
    $current_quiz = node_load($result->nid);
    $questions = _quiz_get_answers($quiz, $result_id);
    $score = quiz_calculate_score($quiz, $result_id);
    $summary = _quiz_get_summary_text($quiz, $score);
    $data = array(
      'quiz' => $quiz,
      'questions' => $questions,
      'score' => $score,
      'summary' => $summary,
      'result_id' => $result_id,
      'account' => user_load($result->uid),
    );
    if (user_access('view own quiz results') && (!empty($current_quiz->review_options['end']) && array_filter($current_quiz->review_options['end']))) {
      return theme('quiz_result', $data);
    }
    else {

      // User cannot view own results or there is no feedback enabled. Show
      // generic text.
      return t('You have finished this @quiz.', array(
        '@quiz' => QUIZ_NAME,
      ));
    }
  }
}