Browse Source

Handle a looping scenario (a > b > c > a).

pull/865/head
Jordan Dukart 3 years ago
parent
commit
cb0ed54147
  1. 6
      modules/islandora_breadcrumbs/src/IslandoraBreadcrumbBuilder.php

6
modules/islandora_breadcrumbs/src/IslandoraBreadcrumbBuilder.php

@ -79,6 +79,12 @@ class IslandoraBreadcrumbBuilder implements BreadcrumbBuilderInterface {
$breadcrumb->addLink(Link::createFromRoute($this->t('Home'), '<front>'));
$chain = array_reverse($this->utils->findAncestors($node, [$this->config->get('referenceField')], $this->config->get('maxDepth')));
// XXX: Handle a looping breadcrumb scenario by filtering the present
// node out and then optionally re-adding it after if set to do so.
$chain = array_filter($chain, function ($link) use ($nid) {
return $link !== $nid;
});
if ($this->config->get('includeSelf')) {
array_push($chain, $node);
}

Loading…
Cancel
Save