You are here

public function AccordionMenusConfigForm::submitForm in Accordion Menus 8.4

Same name and namespace in other branches
  1. 8 src/Form/AccordionMenusConfigForm.php \Drupal\accordion_menus\Form\AccordionMenusConfigForm::submitForm()
  2. 8.2 src/Form/AccordionMenusConfigForm.php \Drupal\accordion_menus\Form\AccordionMenusConfigForm::submitForm()
  3. 8.3 src/Form/AccordionMenusConfigForm.php \Drupal\accordion_menus\Form\AccordionMenusConfigForm::submitForm()

Form submission handler.

Parameters

array $form: An associative array containing the structure of the form.

\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.

Overrides ConfigFormBase::submitForm

File

src/Form/AccordionMenusConfigForm.php, line 93

Class

AccordionMenusConfigForm
Configure accordion menus settings.

Namespace

Drupal\accordion_menus\Form

Code

public function submitForm(array &$form, FormStateInterface $form_state) {

  // Retrieve the configuration and Set the submitted configuration setting.
  $output = $this->configFactory
    ->getEditable(static::SETTINGS)
    ->set('accordion_menus', $form_state
    ->getValue('accordion_menus'))
    ->set('accordion_menus_no_submenus', $form_state
    ->getValue('accordion_menus_no_submenus'))
    ->set('accordion_menus_default_closed', $form_state
    ->getValue('accordion_menus_default_closed'));
  $menus = menu_ui_get_menus();
  $active = [];
  foreach ($menus as $menu_name => $menu) {
    $output
      ->set('accordion_menus_active_tab_' . $menu_name, $form_state
      ->getValue('accordion_menus_active_tab_' . $menu_name));
    $active[$menu_name] = $form_state
      ->getValue('accordion_menus_active_tab_' . $menu_name);
  }
  $output
    ->set('accordion_menus_active_tab', $active);
  $output
    ->save();
  parent::submitForm($form, $form_state);

  // Clear cache is needed to effect this value on block derivetive plugin
  // system. See @src/Plugin/Derivative/AccordionMenusBlock.
  drupal_flush_all_caches();
}