Get breadcrumb links
Note: To use this, you should eager load ancestors (->with('ancestors'))

@return array
494853
public function getBreadcrumbLinksAttribute(): array
    {
        $breadcrumbs = [];

        foreach ($this->ancestors as $ancestor) {
            $breadcrumbs[url($ancestor->full_slug)] = $ancestor->name;
        }

        $breadcrumbs[url($this->full_slug)] = $this->name;

        return $breadcrumbs;
    }
915807
public function getLinks($nb = 5)
    {
        $links = [];
        $fistPage = $this->getFirstPage();
        $lastPage = $this->getLastPage();
        $currentPage = $this->getPage();

        $firstLink = $currentPage - $nb;
        $lastLink = $currentPage + $nb;

        if ($fistPage > $firstLink) {
            $firstLink = $fistPage;
        }
        if ($lastPage < $lastLink) {
            $lastLink = $lastPage;
        }

        for ($i = $firstLink; $i <= $lastLink; ++$i) {
            $links[$i] = $i;
        }

        return $links;
    }
951096
public function getBreadCrumb()
    {
        $aPaths = [];
        $aPath = [];

        $oLang = \OxidEsales\Eshop\Core\Registry::getLang();
        $iBaseLanguage = $oLang->getBaseLanguage();
        $sTranslatedString = $oLang->translateString('LATEST_NEWS_AND_UPDATES_AT', $iBaseLanguage, false);

        $aPath['title'] = $sTranslatedString . ' ' . \OxidEsales\Eshop\Core\Registry::getConfig()->getActiveShop()->oxshops__oxname->value;
        $aPath['link'] = $this->getLink();

        $aPaths[] = $aPath;

        return $aPaths;
    }
577001
public static function getBreadcrumbs(AbstractNavigationNode $node) {

        $breadcrumbs = [];

        if (true === ($node instanceof NavigationNode || $node instanceof BreadcrumbNode) && true === $node->getActive()) {
            $breadcrumbs[] = $node;
        }

        foreach ($node->getNodes() as $current) {
            if (false === ($current instanceof AbstractNavigationNode)) {
                continue;
            }
            $breadcrumbs = array_merge($breadcrumbs, self::getBreadcrumbs($current));
        }

        return $breadcrumbs;
    }
126937
public function Breadcrumbs($unlinked = false)
    {
        $items = parent::Breadcrumbs($unlinked);

        $items[0]->Title = $this->menu_title();

        return $items;
    }
870600
public function getBreadcrumbItems()
    {
        $item = $this->getBaseItem();
        $items = array();

        while ($current = $item->getCurrentChild())
        {
            $items[] = $current;

            $item = $current;
        }

        return $items;
    }
484899
public function getBreadCrumb()
    {
        $aPaths = [];
        $aPath = [];


        $iBaseLanguage = \OxidEsales\Eshop\Core\Registry::getLang()->getBaseLanguage();
        $aPath['title'] = \OxidEsales\Eshop\Core\Registry::getLang()->translateString('PAY', $iBaseLanguage, false);
        $aPath['link'] = $this->getLink();

        $aPaths[] = $aPath;

        return $aPaths;
    }
1291869
public function Breadcrumbs($maxDepth = 20)
    {
        $items = array();
        
        $ancestors = $this->getAncestors(true);

        if($ancestors->exists()) {
            $items[] = $this;

            foreach($ancestors as $item) {
                $items[] = $item;
            }
        }

        $template = new SSViewer('BreadcrumbsTemplate');

        return $template->process($this->customise(ArrayData::create(array(
            'Pages' => ArrayList::create(array_reverse($items))
        ))));
    }
809947
def links
      @links ||= if @breadcrumb_key.present?
        # Reload breadcrumbs configuration if needed
        Gretel::Crumbs.reload_if_needed

        # Get breadcrumb set by the `breadcrumb` method
        crumb = Gretel::Crumb.new(context, breadcrumb_key, *breadcrumb_args)

        # Links of first crumb
        links = crumb.links.dup

        # Get parent links
        links.unshift *parent_links_for(crumb)

        links
      else
        []
      end
    end
689764
public function getBreadCrumb()
    {
        $paths = [];
        $pathData = [];
        $language = \OxidEsales\Eshop\Core\Registry::getLang();
        $baseLanguageId = $language->getBaseLanguage();
        if ($user = $this->getUser()) {
            $username = $user->oxuser__oxusername->value;
            $pathData['title'] = $language->translateString('MY_ACCOUNT', $baseLanguageId, false) . " - " . $username;
        } else {
            $pathData['title'] = $language->translateString('LOGIN', $baseLanguageId, false);
        }
        $pathData['link'] = $this->getLink();
        $paths[] = $pathData;

        return $paths;
    }
935038
protected function breadcrumbs() {

		// get category tree
		$parenttree = $this->getSkin()->getTitle()->getParentCategoryTree();
		$rendered = $this->getSkin()->drawCategoryBrowser( $parenttree );
		/*echo '<pre>';
		print_r($parenttree);
		print_r($rendered);
		echo '</pre>';*/
		//exit;
		// Skin object passed by reference cause it can not be
		// accessed under the method subfunction drawCategoryBrowser
		$temp = explode( "\n", $rendered );
		unset( $temp[0] );
		asort( $temp );

		if (empty($temp)) {
				return array();
		}
		$trees = array();
		foreach ($temp as $line) {
			preg_match_all('~<a[\S\s]+?</a>~', $line, $matches);
			$trees[] = $matches[0];
		}

		return $trees;
	}
1041250
public function getBreadcrumbs($url = null)
    {
        $url = $url ?: $this->getRequestedRoute();

        // Find child and it parents by url
        $itemModel = $this->getItem($url, $parents);

        if (!$itemModel || (empty($parents) && $this->isHomeUrl($itemModel->normalizedUrl))) {
            return [];
        }

        $parents = array_reverse((array)$parents);
        $parents[] = [
            'label' => $itemModel->modelLabel,
            'url' => $itemModel->normalizedUrl,
            'linkOptions' => is_array($itemModel->linkOptions) ? $itemModel->linkOptions : [],
        ];

        foreach ($parents as &$parent) {
            if (isset($parent['linkOptions'])) {
                $parent = array_merge($parent, $parent['linkOptions']);
                unset($parent['linkOptions']);
            }
        }

        return $parents;
    }
1185921
private function createBreadcrumbItems()
    {
        $itemClass = $this->getOption('itemClass', null);
        $itemActiveClass = $this->getOption('itemActiveClass', 'active');
        $linkClass = $this->getOption('linkClass', null);

        $items = array();

        foreach ($this->breadcrumbBag->getBreadcrumbs() as $breadcrumb) {
            if ($breadcrumb->isActive()) {
                $items[] = $this->createListItem($itemActiveClass, $breadcrumb->getName());
            } else {
                $items[] = $this->createListItem($itemClass, $this->renderLink($breadcrumb->getName(), $breadcrumb->getLink(), $linkClass));
            }
        }

        return $items;
    }
1032736
public function getLinks()
    {
        $links = array();
        foreach($this->links as $rel => $href) {
            $simple_rel = $rel;
            $base_uris = array("fx:", static::LINK_RELATIONSHIPS_BASE_URI);
            foreach($base_uris as $base_uri) {
                $pos = strpos($simple_rel, $base_uri);
                if ($pos !== FALSE && ($simple_rel.'/' != $base_uri)) {
                    $simple_rel = substr($simple_rel, strlen($base_uri));
                }
            }
            $links[$simple_rel] = $href;
        }
        return $links;
    }
955184
public function Breadcrumbs()
    {
        $parts = explode(self::$breadcrumbs_delimiter, $this->parentController->Breadcrumbs());
        // The last part is never a link, need to recreate
        array_pop($parts);
        array_push($parts,
            '<a href="' . $this->parentController->Link() . '">' . $this->parentController->Title . '</a>');

        //Merge
        array_pop($this->crumbs);
        array_push($this->crumbs, $this->Title);

        $parts = array_merge($parts, $this->crumbs);

        return implode(self::$breadcrumbs_delimiter, $parts);
    }
1298627
public function Breadcrumbs($unlinked = false)
    {
        $items = parent::Breadcrumbs($unlinked);

        // The root element should explicitly point to the root node.
        // Uses session state for current record otherwise.
        $items[0]->Link = singleton('SilverStripe\\Reports\\ReportAdmin')->Link();

        if ($report = $this->reportObject) {
            $breadcrumbs = $report->getBreadcrumbs();
            if (!empty($breadcrumbs)) {
                foreach ($breadcrumbs as $crumb) {
                    $items->push($crumb);
                }
            }

            //build breadcrumb trail to the current report
            $items->push(new ArrayData(array(
                'Title' => $report->title(),
                'Link' => Controller::join_links(
                    $this->Link(),
                    '?' . http_build_query(array('q' => $this->request->requestVar('q')))
                )
            )));
        }

        return $items;
    }
328238
public function getBreadcrumbs($separator=' &raquo; ') {
        $crumbs=array();
        $ancestors=array_reverse($this->owner->getAncestors()->toArray());
        foreach($ancestors as $ancestor) $crumbs[]=$ancestor->Title;
        $crumbs[]=$this->owner->Title;
        return implode($separator, $crumbs);
    }