public function AccordionMenusConfigForm::buildForm in Accordion Menus 8.4
Same name and namespace in other branches
- 8 src/Form/AccordionMenusConfigForm.php \Drupal\accordion_menus\Form\AccordionMenusConfigForm::buildForm()
- 8.2 src/Form/AccordionMenusConfigForm.php \Drupal\accordion_menus\Form\AccordionMenusConfigForm::buildForm()
- 8.3 src/Form/AccordionMenusConfigForm.php \Drupal\accordion_menus\Form\AccordionMenusConfigForm::buildForm()
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
- src/
Form/ AccordionMenusConfigForm.php, line 37
Class
- AccordionMenusConfigForm
- Configure accordion menus settings.
Namespace
Drupal\accordion_menus\FormCode
public function buildForm(array $form, FormStateInterface $form_state) {
$config = $this
->config(static::SETTINGS);
// Get list of menus.
$menus = menu_ui_get_menus();
$form['accordion_menus'] = [
'#type' => 'checkboxes',
'#title' => $this
->t('Accordion Menus'),
'#options' => $menus,
'#description' => $this
->t('Select menu to make them accordion menu.'),
'#default_value' => !empty($config
->get('accordion_menus')) ? $config
->get('accordion_menus') : [],
];
$form['accordion_advanced'] = [
'#type' => 'details',
'#title' => $this
->t('Advanced settings'),
'#open' => FALSE,
];
$form['accordion_advanced']['accordion_menus_no_submenus'] = [
'#type' => 'checkboxes',
'#title' => $this
->t('Accordion without sub menu item'),
'#options' => $menus,
'#description' => $this
->t('Menus which have no sub menu item, will show also in accordion menu.'),
'#default_value' => !empty($config
->get('accordion_menus_no_submenus')) ? $config
->get('accordion_menus_no_submenus') : [],
];
$form['accordion_advanced']['accordion_menus_default_closed'] = [
'#type' => 'checkboxes',
'#title' => $this
->t('Accordion menu closed by default'),
'#options' => $menus,
'#description' => $this
->t('Allow all trees closed at beginning.'),
'#default_value' => !empty($config
->get('accordion_menus_default_closed')) ? $config
->get('accordion_menus_default_closed') : [],
];
$form['accordion_advanced']['default_tab'] = [
'#type' => 'details',
'#title' => $this
->t('Default tab'),
'#description' => $this
->t('Consider all first level menu item and value will start from 0. Example for first menu item, it will be 0, for second it will be 1 and so on.'),
'#open' => TRUE,
];
foreach ($menus as $menu_name => $menu) {
$form['accordion_advanced']['default_tab']['accordion_menus_active_tab_' . $menu_name] = [
'#type' => 'textfield',
'#title' => $this
->t($menu . ': Active menu tab'),
'#attributes' => [
'type' => 'number',
],
'#maxlength' => 3,
'#default_value' => !empty($config
->get('accordion_menus_active_tab_' . $menu_name)) ? $config
->get('accordion_menus_active_tab_' . $menu_name) : 0,
];
}
return parent::buildForm($form, $form_state);
}