function quiz_questions_form_submit in Quiz 5.2
Same name and namespace in other branches
- 8.4 quiz.admin.inc \quiz_questions_form_submit()
- 5 quiz.module \quiz_questions_form_submit()
- 6.6 quiz.admin.inc \quiz_questions_form_submit()
- 6.2 quiz.admin.inc \quiz_questions_form_submit()
- 6.3 quiz.admin.inc \quiz_questions_form_submit()
- 6.4 quiz.admin.inc \quiz_questions_form_submit()
- 6.5 quiz.admin.inc \quiz_questions_form_submit()
- 7.6 quiz.admin.inc \quiz_questions_form_submit()
- 7 quiz.admin.inc \quiz_questions_form_submit()
- 7.4 quiz.admin.inc \quiz_questions_form_submit()
- 7.5 quiz.admin.inc \quiz_questions_form_submit()
Submit function for quiz_questions.
Updates from the "add questions" tab.
Parameters
$form_id: A string containing the form id.
$values: Array containing the form values.
File
- ./
quiz.module, line 1718
Code
function quiz_questions_form_submit($form_id, $values) {
// Load the node.
$quiz = node_load(arg(1));
// Update quiz with selected question options.
if (!quiz_update_questions($values['question_status'], $values['new_revision'])) {
form_set_error('', t('Either no questions were selected, or there was a problem updating your @quiz. Please try again.', array(
'@quiz' => QUIZ_NAME,
)));
return;
}
// Check if selecting random question from pool, and not via term.
if (empty($values['random_term_id'])) {
$assigned_random = 0;
if (is_array($values['question_status'])) {
foreach ($values['question_status'] as $id => $status) {
if (QUESTION_ALWAYS == $status) {
$assigned_random++;
}
}
}
if ($values['num_random_questions'] > $assigned_random) {
$values['num_random_questions'] = $assigned_random;
drupal_set_message(t('The number of random questions for this @quiz have been lowered to %anum to match the number of questions you assigned.', array(
'@quiz' => QUIZ_NAME,
'%anum' => $assigned_random,
), 'status'));
}
}
else {
// Warn user if not enough questions available with this term_id.
$available_random = count(_quiz_get_random_questions($values['num_random_questions'], $values['random_term_id']));
if ($values['num_random_questions'] > $available_random) {
drupal_set_message(t('There are currently not enough questions assigned to this term (@random). Please lower the number of random quetions or assign more questions to this taxonomy term before taking this @quiz.', array(
'@random' => $available_random,
'@quiz' => QUIZ_NAME,
)), 'error');
}
}
$result = db_query("UPDATE {quiz_node_properties} SET number_of_random_questions = %d, tid = %d WHERE vid = %d AND nid = %d", $values['num_random_questions'], $values['random_term_id'], $quiz->vid, $quiz->nid);
if (!$result) {
drupal_set_message(t('There was an error updating the @quiz.', array(
'@quiz' => QUIZ_NAME,
)), 'error');
}
else {
drupal_set_message(t('Questions updated successfully.'));
}
}