You are here

function quiz_question_answering_form_submit_blank in Quiz 7.6

Same name and namespace in other branches
  1. 7.5 question_types/quiz_question/quiz_question.module \quiz_question_answering_form_submit_blank()

Submit action for "leave blank".

1 string reference to 'quiz_question_answering_form_submit_blank'
quiz_question_answering_form in question_types/quiz_question/quiz_question.module
Get the form to show to the quiz taker.

File

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

Code

function quiz_question_answering_form_submit_blank($form, &$form_state) {
  $quiz_result = quiz_result_load($_SESSION['quiz'][arg(1)]['result_id']);
  $quiz = node_load($quiz_result->nid, $quiz_result->vid);
  foreach (array_keys($form_state['input']['question']) as $nid) {

    // Loop over all question inputs provided, and record them as skipped.
    $question = node_load($nid);

    // Delete the user's answer.
    _quiz_question_response_get_instance($quiz_result->result_id, $question)
      ->delete();

    // Mark our question attempt as skipped, reset the correct and points flag.
    $qra = quiz_result_answer_load($quiz_result->result_id, $question->nid, $question->vid);
    $qra->is_skipped = 1;
    $qra->is_correct = 0;
    $qra->points_awarded = 0;
    $qra->answer_timestamp = REQUEST_TIME;
    entity_save('quiz_result_answer', $qra);
    quiz_question_goto($quiz, $_SESSION['quiz'][$quiz->nid]['current'] + 1);
  }

  // Advance to next question.
  $form_state['redirect'] = "node/{$quiz->nid}/take/" . $_SESSION['quiz'][$quiz->nid]['current'];
  if (!isset($quiz_result->layout[$_SESSION['quiz'][$quiz->nid]['current']])) {

    // If this is the last question, finalize the quiz.
    quiz_question_answering_form_finalize($form, $form_state);
  }
}