public function InlineBlockEntityOperations::handlePreSave in Drupal 9
Same name and namespace in other branches
- 8 core/modules/layout_builder/src/InlineBlockEntityOperations.php \Drupal\layout_builder\InlineBlockEntityOperations::handlePreSave()
Handles saving a parent entity.
Parameters
\Drupal\Core\Entity\EntityInterface $entity: The parent entity.
File
- core/
modules/ layout_builder/ src/ InlineBlockEntityOperations.php, line 154
Class
- InlineBlockEntityOperations
- Defines a class for reacting to entity events related to Inline Blocks.
Namespace
Drupal\layout_builderCode
public function handlePreSave(EntityInterface $entity) {
if (!$this
->isLayoutCompatibleEntity($entity)) {
return;
}
$duplicate_blocks = FALSE;
if ($sections = $this
->getEntitySections($entity)) {
if ($this
->originalEntityUsesDefaultStorage($entity)) {
// This is a new override from a default and the blocks need to be
// duplicated.
$duplicate_blocks = TRUE;
}
// Since multiple parent entity revisions may reference common block
// revisions, when a block is modified, it must always result in the
// creation of a new block revision.
$new_revision = $entity instanceof RevisionableInterface;
foreach ($this
->getInlineBlockComponents($sections) as $component) {
$this
->saveInlineBlockComponent($entity, $component, $new_revision, $duplicate_blocks);
}
}
$this
->removeUnusedForEntityOnSave($entity);
}