You are here

function quiz_take_question_feedback_form in Quiz 7.5

Show feedback for a question response.

1 string reference to 'quiz_take_question_feedback_form'
quiz_menu in ./quiz.module
Implements hook_menu().

File

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

Code

function quiz_take_question_feedback_form($form, &$form_state, $quiz, $question_number) {
  $form = array();
  if (empty($_SESSION['quiz'][$quiz->nid]['result_id'])) {
    $result_id = $_SESSION['quiz']['temp']['result_id'];
  }
  else {
    $result_id = $_SESSION['quiz'][$quiz->nid]['result_id'];
  }
  $quiz_result = quiz_result_load($result_id);
  $form['actions']['#type'] = 'actions';
  if ($quiz_result->time_end) {

    // Quiz is done.
    $form['actions']['finish'] = array(
      '#type' => 'submit',
      '#submit' => array(
        'quiz_take_question_feedback_end_submit',
      ),
      '#value' => t('Finish'),
    );
  }
  else {
    $form['actions']['next'] = array(
      '#type' => 'submit',
      '#submit' => array(
        'quiz_take_question_feedback_submit',
      ),
      '#value' => t('Next question'),
    );
  }

  // Add feedback.
  $out = array();
  foreach ($quiz_result
    ->getLayout() as $question) {
    if ($question['number'] == $question_number && $question['qnr_pid']) {

      // Question is in a page.
      foreach ($quiz_result
        ->getLayout() as $question2) {
        if ($question2['qnr_pid'] == $question['qnr_pid']) {
          $qra = entity_load_single('quiz_result_answer', $question2['result_answer_id']);
          $out[] = array(
            '#title' => t('Question @num', array(
              '@num' => $question2['display_number'],
            )),
            '#type' => 'fieldset',
            'feedback' => $qra
              ->view(),
          );
        }
      }
    }
  }

  // Single question.
  if (empty($out)) {
    $layout = $quiz_result
      ->getLayout();
    $qra = entity_load_single('quiz_result_answer', $layout[$question_number]['result_answer_id']);
    $out[] = array(
      '#title' => t('Question @num', array(
        '@num' => $layout[$question_number]['display_number'],
      )),
      '#type' => 'fieldset',
      'feedback' => $qra
        ->view(),
    );
  }
  $form['feedback'] = $out;
  return $form;
}