function BlockForm::submitForm
Same name in other branches
- 8.9.x core/modules/block/src/BlockForm.php \Drupal\block\BlockForm::submitForm()
- 10 core/modules/block/src/BlockForm.php \Drupal\block\BlockForm::submitForm()
- 11.x core/modules/block/src/BlockForm.php \Drupal\block\BlockForm::submitForm()
Overrides EntityForm::submitForm
File
-
core/
modules/ block/ src/ BlockForm.php, line 344
Class
- BlockForm
- Provides form for block instance forms.
Namespace
Drupal\blockCode
public function submitForm(array &$form, FormStateInterface $form_state) {
parent::submitForm($form, $form_state);
$entity = $this->entity;
// The Block Entity form puts all block plugin form elements in the
// settings form element, so just pass that to the block for submission.
$sub_form_state = SubformState::createForSubform($form['settings'], $form, $form_state);
// Call the plugin submit handler.
$block = $entity->getPlugin();
$this->getPluginForm($block)
->submitConfigurationForm($form, $sub_form_state);
// If this block is context-aware, set the context mapping.
if ($block instanceof ContextAwarePluginInterface && $block->getContextDefinitions()) {
$context_mapping = $sub_form_state->getValue('context_mapping', []);
$block->setContextMapping($context_mapping);
}
$this->submitVisibility($form, $form_state);
// Save the settings of the plugin.
$entity->save();
$this->messenger()
->addStatus($this->t('The block configuration has been saved.'));
$form_state->setRedirect('block.admin_display_theme', [
'theme' => $form_state->getValue('theme'),
], [
'query' => [
'block-placement' => Html::getClass($this->entity
->id()),
],
]);
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.