3 namespace Drupal\forum\Breadcrumb;
6 use Drupal\Core\Routing\RouteMatchInterface;
9 * Provides a breadcrumb builder base class for forum listing pages.
11 class ForumListingBreadcrumbBuilder extends ForumBreadcrumbBuilderBase {
16 public function applies(RouteMatchInterface $route_match) {
17 return $route_match->getRouteName() == 'forum.page' && $route_match->getParameter('taxonomy_term');
23 public function build(RouteMatchInterface $route_match) {
24 $breadcrumb = parent::build($route_match);
25 $breadcrumb->addCacheContexts(['route']);
27 // Add all parent forums to breadcrumbs.
28 /** @var \Drupal\Taxonomy\TermInterface $term */
29 $term = $route_match->getParameter('taxonomy_term');
30 $term_id = $term->id();
31 $breadcrumb->addCacheableDependency($term);
33 $parents = $this->termStorage->loadAllParents($term_id);
35 foreach (array_reverse($parents) as $parent) {
36 if ($parent->id() != $term_id) {
37 $breadcrumb->addCacheableDependency($parent);
38 $breadcrumb->addLink(Link::createFromRoute($parent->label(), 'forum.page', [
39 'taxonomy_term' => $parent->id(),