You are here

public function AccordionMenusConfigForm::buildForm in Accordion Menus 8.3

Same name and namespace in other branches
  1. 8.4 src/Form/AccordionMenusConfigForm.php \Drupal\accordion_menus\Form\AccordionMenusConfigForm::buildForm()
  2. 8 src/Form/AccordionMenusConfigForm.php \Drupal\accordion_menus\Form\AccordionMenusConfigForm::buildForm()
  3. 8.2 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\Form

Code

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') : [],
  ];
  return parent::buildForm($form, $form_state);
}