public function QuizQuestionConfig::buildForm in Quiz 8.4
Form constructor.
Parameters
array $form: An associative array containing the structure of the form.
\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.
Return value
array The form structure.
Overrides ConfigFormBase::buildForm
File
- question_types/
quiz_question/ lib/ Drupal/ quiz_question/ Form/ QuizQuestionConfig.php, line 26 - Contains \Drupal\quiz\Form\QuizQuestionConfigForm.
Class
- QuizQuestionConfig
- Defines a form to configure maintenance settings for this site.
Namespace
Drupal\quiz_question\FormCode
public function buildForm(array $form, array &$form_state) {
$q_types = _quiz_question_get_implementations();
$form['#validate'] = array();
$form['#submit'] = array();
// Go through all question types and merge their config forms
foreach ($q_types as $type => $values) {
$function = $type . '_config';
if ($admin_form = $function()) {
$form[$type] = $admin_form;
$form[$type]['#type'] = 'fieldset';
$form[$type]['#title'] = $values['name'];
$form[$type]['#collapsible'] = TRUE;
$form[$type]['#collapsed'] = TRUE;
if (isset($admin_form['#validate'])) {
$form['#validate'] = array_merge($form['#validate'], $admin_form['#validate']);
unset($form[$type]['#validate']);
}
if (isset($admin_form['#submit'])) {
$form['#submit'] = array_merge($form['#submit'], $admin_form['#submit']);
unset($form[$type]['#submit']);
}
}
}
$form['#submit'][] = 'quiz_question_config_submit';
return parent::buildForm($form, $form_state);
}