You are here

public function FasttoggleSettingsForm::submitForm in Fasttoggle 8.2

Same name and namespace in other branches
  1. 8.3 src/Form/FasttoggleSettingsForm.php \Drupal\fasttoggle\Form\FasttoggleSettingsForm::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/FasttoggleSettingsForm.php, line 151
Contains \Drupal\fasttoggle\Form\FasttoggleSettingsForm.

Class

FasttoggleSettingsForm
Configure fasttoggle settings for this site.

Namespace

Drupal\fasttoggle\Form

Code

public function submitForm(array &$form, FormStateInterface $form_state) {
  $config = $this
    ->config('fasttoggle.settings');
  $configKeys = [];
  $settings_obj = $this
    ->configFactory()
    ->getEditable('fasttoggle.settings');
  $settings_obj
    ->set('label_style', $form_state
    ->getValue('label_style'));
  $objects = $this->objectManager
    ->getDefinitions();
  $group = $this->groupManager
    ->getDefinitions();
  $object_settings = $this->settingManager
    ->getDefinitions();
  foreach ($object_settings as $type => $groups) {
    $plugin = $this->objectManager
      ->createInstance($type);
    $configKeys += array_keys($plugin
      ->getSitewideSettingFormElements($config));
    foreach ($groups as $group => $settings) {
      $plugin = $this->groupManager
        ->createInstance($group);
      $configKeys += array_keys($plugin
        ->getSitewideSettingFormElements($config));
      foreach ($settings as $setting => $settingDef) {
        $plugin = $this->settingManager
          ->createInstance($setting);
        $configKeys += array_merge($configKeys, $plugin
          ->getSitewideSettingFormElements($config));
        $configKeys += array_merge($configKeys, $plugin
          ->configSettingKeys());
      }
    }
  }
  foreach ($configKeys as $key) {
    $new_value = $form_state
      ->getValue($key);
    $settings_obj
      ->set($key, $new_value)
      ->save();
  }
  parent::submitForm($form, $form_state);
}