You are here

public function PageManagerLayoutBuilderStorage::save in Page Manager 8.4

File

src/Plugin/LayoutBuilderStorage/PageManagerLayoutBuilderStorage.php, line 72

Class

PageManagerLayoutBuilderStorage
A Page Manager storage service that stores Layout Builder displays.

Namespace

Drupal\page_manager\Plugin\LayoutBuilderStorage

Code

public function save(LayoutBuilderDisplayVariant $lb_display) {
  $id = $lb_display
    ->getStorageId();
  if ($id && ($page_variant = $this
    ->loadPageVariant($id))) {
    $variant_plugin = $page_variant
      ->getVariantPlugin();
    if (!$variant_plugin instanceof LayoutBuilderDisplayVariant) {
      throw new \Exception("Page variant doesn't use a Layout Builder display variant");
    }
    $variant_plugin
      ->setConfiguration($lb_display
      ->getConfiguration());
    $page_variant
      ->save();
  }
  else {
    throw new \Exception("Couldn't find page variant to store Layout Builder display");
  }
}