function theming_example_form_alter in Examples for Developers 3.x
Implements hook_form_alter().
In Drupal 8+, all forms share the same theme hook (form). Use hook_form_alter()/hook_form_FORM_ID_alter() to mofidy the form render array.
Related topics
File
- modules/
theming_example/ theming_example.module, line 158 - Explains how a module declares theme functions, preprocess functions, and templates.
Code
function theming_example_form_alter(&$form, FormStateInterface $form_state, $form_id) {
switch ($form_id) {
case 'theming_example_form_select':
// Add data-strong attribute to make title strong.
// @see theming_example_preprocess_form_element_label().
$form['choice']['#label_attributes']['data-strong'] = 1;
// Output choice title separately using h3 header.
$form['title'] = [
'#type' => 'html_tag',
'#tag' => 'h3',
'#value' => $form['choice']['#title'],
'#weight' => -100,
];
// Wrap choice and submit elements in inline container.
$form['choice']['#prefix'] = '<div class="container-inline choice-wrapper">';
$form['submit']['#suffix'] = '</div>';
break;
case 'theming_example_form_text':
// Add data-strong attribute to make title strong.
// @see theming_example_preprocess_form_element_label().
$form['text']['#label_attributes']['data-strong'] = 1;
break;
}
}