You are here

public function ConfigureSectionForm::submitForm in Drupal 10

Same name and namespace in other branches
  1. 8 core/modules/layout_builder/src/Form/ConfigureSectionForm.php \Drupal\layout_builder\Form\ConfigureSectionForm::submitForm()
  2. 9 core/modules/layout_builder/src/Form/ConfigureSectionForm.php \Drupal\layout_builder\Form\ConfigureSectionForm::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 FormInterface::submitForm

File

core/modules/layout_builder/src/Form/ConfigureSectionForm.php, line 172

Class

ConfigureSectionForm
Provides a form for configuring a layout section.

Namespace

Drupal\layout_builder\Form

Code

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

  // Call the plugin submit handler.
  $subform_state = SubformState::createForSubform($form['layout_settings'], $form, $form_state);
  $this
    ->getPluginForm($this->layout)
    ->submitConfigurationForm($form['layout_settings'], $subform_state);

  // If this layout is context-aware, set the context mapping.
  if ($this->layout instanceof ContextAwarePluginInterface) {
    $this->layout
      ->setContextMapping($subform_state
      ->getValue('context_mapping', []));
  }
  $plugin_id = $this->layout
    ->getPluginId();
  $configuration = $this->layout
    ->getConfiguration();
  if ($this->isUpdate) {
    $this->sectionStorage
      ->getSection($this->delta)
      ->setLayoutSettings($configuration);
  }
  else {
    $this->sectionStorage
      ->insertSection($this->delta, new Section($plugin_id, $configuration));
  }
  $this->layoutTempstoreRepository
    ->set($this->sectionStorage);
  $form_state
    ->setRedirectUrl($this->sectionStorage
    ->getLayoutBuilderUrl());
}