function quiz_result_form in Quiz 7.5
Same name and namespace in other branches
- 7.6 quiz.module \quiz_result_form()
Quiz result edit form.
1 string reference to 'quiz_result_form'
- quiz_forms in ./
quiz.module - Implements hook_forms().
File
- ./
quiz.module, line 3911 - quiz.module Main file for the Quiz module.
Code
function quiz_result_form($form, &$form_state, $quiz_result) {
field_attach_form('quiz_result', $quiz_result, $form, $form_state);
$quiz = node_load($quiz_result->nid, $quiz_result->vid);
if (!empty($quiz->build_on_last) && QuizResultController::findOldResult($quiz_result)) {
$form['build_on_last'] = array(
'#title' => t('Keep answers from last attempt?'),
'#type' => 'radios',
'#options' => array(
'' => t('No answers'),
'correct' => t('Only correct answers'),
'all' => t('All answers'),
),
'#default_value' => $quiz->build_on_last,
'#description' => t('You can choose to keep previous answers or start a new attempt.'),
'#access' => $quiz->build_on_last,
);
}
$form['actions'] = array(
'#type' => 'actions',
);
if (!empty($quiz_result->result_id)) {
$idx = 0;
$form['question']['#tree'] = TRUE;
foreach ($quiz_result
->getLayout() as $question) {
// Loop through all the questions and get their scoring form.
$question_node = node_load($question['nid'], $question['vid']);
$instance = _quiz_question_response_get_instance($quiz_result->result_id, $question_node);
$qras = entity_load('quiz_result_answer', FALSE, array(
'result_id' => $quiz_result->result_id,
'question_nid' => $question['nid'],
'question_vid' => $question['vid'],
));
$qra = reset($qras);
// Get the feedback elements.
if ($instance
->getQuizQuestion()
->hasFeedback()) {
// The display of the question.
$form['question'][$idx] = $instance
->getReportForm();
$form['question'][$idx]['response'] = $qra
->view();
$form['question'][$idx]['#tree'] = TRUE;
$form['question'][$idx]['#type'] = 'fieldset';
$form['question'][$idx]['#title'] = t('Question @num', array(
'@num' => $question['display_number'],
));
$form['question'][$idx]['response']['#weight'] = -1;
$idx++;
}
}
}
if (empty($quiz_result->result_id)) {
$form['actions']['submit'] = array(
'#type' => 'submit',
'#value' => t('Start @quiz', array(
'@quiz' => QUIZ_NAME,
)),
);
}
else {
$form['actions']['submit'] = array(
'#type' => 'submit',
'#value' => t('Save score'),
);
}
return $form;
}