apigee_api_catalog-8.x-2.4/src/ApigeeApiCatalogBreadcrumbBuilder.php
src/ApigeeApiCatalogBreadcrumbBuilder.php
<?php /** * @file * Copyright 2022 Google Inc. * * This program is free software; you can redistribute it and/or modify it under * the terms of the GNU General Public License version 2 as published by the * Free Software Foundation. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public * License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 51 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ namespace Drupal\apigee_api_catalog; use Drupal\Core\Breadcrumb\Breadcrumb; use Drupal\Core\Breadcrumb\BreadcrumbBuilderInterface; use Drupal\Core\Link; use Drupal\Core\Routing\RouteMatchInterface; use Drupal\Core\StringTranslation\StringTranslationTrait; use Drupal\node\NodeInterface; /** * Provides a breadcrumb builder for apidoc. */ class ApigeeApiCatalogBreadcrumbBuilder implements BreadcrumbBuilderInterface { use StringTranslationTrait; /** * {@inheritdoc} */ public function applies(RouteMatchInterface $route_match) { $node = $route_match->getParameter('node'); return $node instanceof NodeInterface && $node->getType() === 'apidoc'; } /** * {@inheritdoc} */ public function build(RouteMatchInterface $route_match) { $breadcrumb = new Breadcrumb(); $links[] = Link::createFromRoute($this->t('Home'), '<front>'); // API Catalog is a view. $links[] = Link::createFromRoute($this->t('API Catalog'), 'view.apigee_api_catalog.page_1'); $breadcrumb->setLinks($links); $breadcrumb->addCacheContexts(['route']); return $breadcrumb; } }