routeMatch = $route_match; } /** * {@inheritdoc} */ public static function getLabel() { return t('Layout Builder'); } /** * {@inheritdoc} */ public function getContext($entity_type_id = NULL) { if (!$entity_type_id) { throw new \LogicException('Missing entity type ID'); } $display = $this->getDisplay($entity_type_id); return ($display && $display->isOverridable()) ? '1' : '0'; } /** * {@inheritdoc} */ public function getCacheableMetadata($entity_type_id = NULL) { if (!$entity_type_id) { throw new \LogicException('Missing entity type ID'); } $cacheable_metadata = new CacheableMetadata(); if ($display = $this->getDisplay($entity_type_id)) { $cacheable_metadata->addCacheableDependency($display); } return $cacheable_metadata; } /** * Returns the entity view display for a given entity type and view mode. * * @param string $entity_type_id * The entity type ID. * * @return \Drupal\layout_builder\Entity\LayoutEntityDisplayInterface|null * The entity view display, if it exists. */ protected function getDisplay($entity_type_id) { if ($entity = $this->routeMatch->getParameter($entity_type_id)) { if ($entity instanceof OverridesSectionStorageInterface) { return $entity->getDefaultSectionStorage(); } } } }