function ajax_quiz_form_alter in Quiz 6.x
Same name and namespace in other branches
- 8.6 modules/ajax_quiz/ajax_quiz.module \ajax_quiz_form_alter()
- 8.5 modules/ajax_quiz/ajax_quiz.module \ajax_quiz_form_alter()
- 7.5 modules/ajax_quiz/ajax_quiz.module \ajax_quiz_form_alter()
Implements hook_form_alter().
File
- modules/
ajax_quiz/ ajax_quiz.module, line 28 - module file for ajax_quiz quiz module
Code
function ajax_quiz_form_alter(&$form, &$form_state, $form_id) {
$quiz_forms = [
'quiz_question_answering_form',
'quiz_report_form',
];
if (in_array($form_id, $quiz_forms) && Drupal::currentUser()
->hasPermission('access ajax quiz')) {
// Wrap form.
$form['#prefix'] = '<div id="ajax-quiz-wrapper">';
$form['#suffix'] = '</div>';
// Build ajax array.
$ajax = [
'wrapper' => 'ajax-quiz-wrapper',
'method' => 'replace',
'callback' => 'ajax_quiz_navigate_quiz',
];
// Add ajax to each submit button.
$nav_children = Element::children($form['navigation']);
foreach ($nav_children as $nav_child) {
if (isset($form['navigation'][$nav_child]['#type']) && $form['navigation'][$nav_child]['#type'] == 'submit') {
$form['navigation'][$nav_child]['#ajax'] = $ajax;
}
}
}
}