public function SectionFormAlter::submitForm in Block Style Plugins 8.2
Submit the section form and save configuration.
Parameters
array $form: The form definition array for the block configuration form.
\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.
File
- src/
SectionFormAlter.php, line 156
Class
- SectionFormAlter
- Base class for Section style plugins.
Namespace
Drupal\block_style_pluginsCode
public function submitForm(array $form, FormStateInterface $form_state) {
// Retrieve a list of possible style plugin definitions.
$available_plugins = $this->blockStyleManager
->getSectionDefinitions();
$style_settings = $form_state
->getValue([
'third_party_settings',
'block_style_plugins',
], []);
$section = $this
->getSectionFromFormState($form_state);
foreach ($style_settings as $plugin_id => $styles) {
// Only instantiate plugins that are available.
if (array_key_exists($plugin_id, $available_plugins)) {
/** @var \Drupal\block_style_plugins\Plugin\BlockStyleInterface $style_plugin */
$style_plugin = $this->blockStyleManager
->createInstance($plugin_id);
$style_plugin
->setConfiguration($styles);
if ($style_plugin instanceof PluginFormInterface) {
$subform_state = SubformState::createForSubform($form['third_party_settings']['block_style_plugins'][$plugin_id], $form, $form_state);
$style_plugin
->submitConfigurationForm($form['third_party_settings']['block_style_plugins'][$plugin_id], $subform_state);
}
// Save the style to the Section.
$section
->setThirdPartySetting('block_style_plugins', $plugin_id, $style_plugin
->getConfiguration());
}
}
}