public function PrepareLayout::onPrepareLayout in Drupal 10
Same name and namespace in other branches
- 9 core/modules/layout_builder/src/EventSubscriber/PrepareLayout.php \Drupal\layout_builder\EventSubscriber\PrepareLayout::onPrepareLayout()
Prepares a layout for use in the UI.
Parameters
\Drupal\layout_builder\Event\PrepareLayoutEvent $event: The prepare layout event.
File
- core/modules/ layout_builder/ src/ EventSubscriber/ PrepareLayout.php, line 65 
Class
- PrepareLayout
- An event subscriber to prepare section storage via the \Drupal\layout_builder\Event\PrepareLayoutEvent.
Namespace
Drupal\layout_builder\EventSubscriberCode
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);
  }
}