public function onPrepareLayout(PrepareLayoutEvent
$event) { $section_storage =
$event->
getSectionStorage();
// If the layout has pending changes, add a warning.
if ($this->layoutTempstoreRepository->
has($section_storage)) { $this->messenger->
addWarning($this->
t('You have unsaved changes.'
));
} else { // If the layout is an override that has not yet been overridden, copy the
// sections from the corresponding default.
if ($section_storage instanceof OverridesSectionStorageInterface && !
$section_storage->
isOverridden()) { $sections =
$section_storage->
getDefaultSectionStorage()->
getSections();
foreach ($sections as $section) { $section_storage->
appendSection($section);
} } // Add storage to tempstore regardless of what the storage is.
$this->layoutTempstoreRepository->
set($section_storage);
} }}