You are here

function quiz_view in Quiz 7.5

Same name and namespace in other branches
  1. 5.2 quiz.module \quiz_view()
  2. 5 quiz.module \quiz_view()
  3. 6.6 quiz.module \quiz_view()
  4. 6.2 quiz.module \quiz_view()
  5. 6.3 quiz.module \quiz_view()
  6. 6.4 quiz.module \quiz_view()
  7. 6.5 quiz.module \quiz_view()
  8. 7.6 quiz.module \quiz_view()
  9. 7 quiz.module \quiz_view()
  10. 7.4 quiz.module \quiz_view()

Implements hook_view().

File

./quiz.module, line 1036
quiz.module Main file for the Quiz module.

Code

function quiz_view($node) {

  // Number of questions is needed on the statistics page.
  $node->number_of_questions = quiz_get_number_of_questions($node->vid, $node->nid);
  $node->content['stats'] = array(
    '#markup' => theme('quiz_view_stats', array(
      'node' => $node,
    )),
    '#weight' => -1,
  );
  $available = quiz_access('take', $node);

  // Check the permission before displaying start button.
  if ($available['success']) {
    if (!empty($available['message'])) {

      // There's a friendly message available.
      if (node_is_page($node)) {

        // Only display if we are viewing the quiz.
        drupal_set_message($available['message']);
      }
    }
    $button_text = quiz_take_quiz($node) ? 'Resume @quiz' : 'Start @quiz';

    // Add a link to the take tab.
    $node->content['take'] = array(
      '#markup' => l(t($button_text, array(
        '@quiz' => QUIZ_NAME,
      )), 'node/' . $node->nid . '/take', array(
        'attributes' => array(
          'class' => array(
            'quiz-start-link',
          ),
        ),
      )),
      '#weight' => 2,
    );
  }
  else {
    $node->content['take'] = array(
      '#markup' => '<div class="quiz-not-available">' . $available['message'] . '</div>',
      '#weight' => 2,
    );
  }
  return $node;
}