You are here

function quiz_question_answering_form in Quiz 8.4

Same name and namespace in other branches
  1. 6.4 question_types/quiz_question/quiz_question.module \quiz_question_answering_form()
  2. 7.6 question_types/quiz_question/quiz_question.module \quiz_question_answering_form()
  3. 7 question_types/quiz_question/quiz_question.module \quiz_question_answering_form()
  4. 7.4 question_types/quiz_question/quiz_question.module \quiz_question_answering_form()
  5. 7.5 question_types/quiz_question/quiz_question.module \quiz_question_answering_form()

Get the form to show to the quiz taker.

1 string reference to 'quiz_question_answering_form'
quiz_question_node_view in question_types/quiz_question/quiz_question.module
Implements hook_node_view().

File

question_types/quiz_question/quiz_question.module, line 195
Quiz Question module. This module provides the basic facilities for adding quiz question types to a quiz.

Code

function quiz_question_answering_form($form, $form_state, $node, $include_nid_in_id = FALSE) {
  $question = _quiz_question_get_instance($node);
  $form = $question
    ->getAnsweringForm($form_state, isset($node->rid) ? $node->rid : NULL);
  $quiz = quiz_type_access_load(arg(1));
  $form['#attributes']['class'] = array(
    'answering-form',
  );
  $is_last = _quiz_is_last_question();
  $form['navigation']['#theme'] = 'quiz_question_navigation_form';
  if ($quiz->mark_doubtful) {
    $form['is_doubtful'] = array(
      '#type' => 'checkbox',
      '#title' => t('doubtful'),
      '#weight' => 1,
      '#prefix' => '<div class="mark-doubtful checkbox enabled"><div class="toggle"><div></div></div>',
      '#suffix' => '</div>',
      '#default_value' => 0,
      '#attached' => array(
        'js' => array(
          drupal_get_path('module', 'quiz') . '/templates/quiz_take.js',
        ),
      ),
    );
    if (isset($node->rid)) {
      $form['is_doubtful']['#default_value'] = db_query('SELECT is_doubtful FROM {quiz_node_results_answers} WHERE result_id = :result_id AND question_nid = :question_nid AND question_vid = :question_vid', array(
        ':result_id' => $node->rid,
        ':question_nid' => $node
          ->id(),
        ':question_vid' => $node
          ->getRevisionId(),
      ))
        ->fetchField();
    }
  }
  if (!empty($quiz->backwards_navigation) && !empty($node->question_number)) {
    $form['navigation']['back'] = array(
      '#type' => 'submit',
      '#value' => t('Back'),
      '#attributes' => array(
        'class' => array(
          'q-back-button',
        ),
      ),
    );
    if ($is_last) {
      $form['navigation']['#last'] = TRUE;
    }
  }

  // Add navigation at the bottom:
  $form['navigation']['submit'] = array(
    '#type' => 'submit',
    '#value' => $is_last ? t('Finish') : t('Next'),
  );
  if ($quiz->allow_skipping) {
    $form['navigation']['op'] = array(
      '#type' => 'submit',
      '#value' => $is_last ? t('Leave blank and finish') : t('Leave blank'),
      '#attributes' => array(
        'class' => array(
          'q-skip-button',
        ),
      ),
    );
    if ($quiz->allow_jumping) {
      $form['jump_to_question'] = array(
        '#type' => 'hidden',
        '#default_value' => 0,
      );
    }
  }
  return $form;
}