You are here

protected function BreadcrumbBuilder::applyContentEntityBreadcrumb in Custom Breadcrumbs 1.x

Added breadcrumbs based content entity.

Parameters

\Drupal\Core\Breadcrumb\Breadcrumb $breadcrumb: Breadcrumb.

\Drupal\Core\Routing\RouteMatchInterface $route_match: Route match.

Throws

\Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException

\Drupal\Component\Plugin\Exception\PluginNotFoundException

1 call to BreadcrumbBuilder::applyContentEntityBreadcrumb()
BreadcrumbBuilder::build in src/BreadcrumbBuilder.php
Builds the breadcrumb.

File

src/BreadcrumbBuilder.php, line 232

Class

BreadcrumbBuilder
Class BreadcrumbBuilder.

Namespace

Drupal\custom_breadcrumbs

Code

protected function applyContentEntityBreadcrumb(Breadcrumb &$breadcrumb, RouteMatchInterface $route_match) {

  // Prepare all route parameters.
  $params = $route_match
    ->getParameters()
    ->all();
  $entityTypeIds = array_keys($params);
  $entityTypeId = reset($entityTypeIds);
  $entity = isset($params[$entityTypeId]) ? $params[$entityTypeId] : NULL;
  $breadcrumbSettings = $this->entityTypeManager
    ->getStorage('custom_breadcrumbs')
    ->loadByProperties([
    'entityType' => $entityTypeId,
    'status' => TRUE,
    'type' => 1,
  ]);
  $this
    ->filterPerBundle($breadcrumbSettings, $route_match);
  $this
    ->filterPerLanguage($breadcrumbSettings);
  $breadcrumbSetting = reset($breadcrumbSettings);
  if ($breadcrumbSetting) {
    $this
      ->applyBreadcrumb($breadcrumb, $breadcrumbSetting, $entity);
  }
}