function quiz_question_answering_form in Quiz 7.4
Same name and namespace in other branches
- 8.4 question_types/quiz_question/quiz_question.module \quiz_question_answering_form()
- 6.4 question_types/quiz_question/quiz_question.module \quiz_question_answering_form()
- 7.6 question_types/quiz_question/quiz_question.module \quiz_question_answering_form()
- 7 question_types/quiz_question/quiz_question.module \quiz_question_answering_form()
- 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
File
- question_types/
quiz_question/ quiz_question.module, line 143 - 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_get_num_questions_left() < 2;
$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') . '/theme/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->nid,
':question_vid' => $node->vid,
))
->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 ($is_last && $quiz->backwards_navigation && !$quiz->repeat_until_correct) {
// Display a confirmation dialogue if this is the last question and a user
// is able to navigate backwards but not forced to answer correctly.
$form['#attributes']['class'][] = 'quiz-answer-confirm';
$form['#attributes']['data-confirm-message'] = t("By proceeding you won't be able to go back and edit your answers.");
$form['#attached'] = array(
'js' => array(
drupal_get_path('module', 'quiz') . '/theme/quiz_confirm.js',
),
);
}
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',
),
),
'#access' => $node->type == 'quiz_directions' ? FALSE : TRUE,
);
if ($quiz->allow_jumping) {
$form['jump_to_question'] = array(
'#type' => 'hidden',
'#default_value' => 0,
);
}
}
// Add hidden next button as the first button, so it is the default for the form
$form['navigation']['submit-hidden'] = $form['navigation']['submit'];
$form['navigation']['submit-hidden']['#weight'] = -20;
// Add a hidden form element with the default operation to take if the form is
// submitted with the enter key in IE 8 or other browser that don't submit a default
// button in this case.
$form['navigation']['default_submit'] = $form['navigation']['submit'];
$form['navigation']['default_submit']['#type'] = 'hidden';
return $form;
}