You are here

public function RestrictionPluginConfigForm::submitForm in Layout Builder Restrictions 8.2

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

src/Form/RestrictionPluginConfigForm.php, line 134

Class

RestrictionPluginConfigForm
Class RestrictionPluginConfigForm.

Namespace

Drupal\layout_builder_restrictions\Form

Code

public function submitForm(array &$form, FormStateInterface $form_state) {
  $data_to_save = [];
  $restriction_definitions = $this->pluginManagerLayoutBuilderRestriction
    ->getDefinitions();
  foreach ($form_state
    ->getValue('plugin-table') as $plugin_id => $vals) {

    // Verify we have a registered plugin key.
    if (isset($restriction_definitions[$plugin_id])) {
      $data_to_save[$plugin_id] = [
        'weight' => (int) $vals['weight'],
        'enabled' => (bool) $vals['enabled'],
      ];
    }
  }

  // Save config.
  $plugin_weighting_config = $this
    ->configFactory()
    ->getEditable('layout_builder_restrictions.plugins');
  $plugin_weighting_config
    ->set('plugin_config', $data_to_save);
  $plugin_weighting_config
    ->save();
}