innoweb / silverstripe-breadcrumbs
Adds configurable and extendable breadcrumbs to the site
Installs: 9 529
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 2
Open Issues: 0
Type:silverstripe-vendormodule
pkg:composer/innoweb/silverstripe-breadcrumbs
Requires
- silverstripe/cms: ^6
README
Overview
Adds configurable and extendable breadcrumbs to the site. Compatible with Symbiote's Multisites and Fromholdio's Configured Multisites fork.
Requirements
SilverStripe CMS 6, see composer.json
Installation
Install the module using composer:
composer require innoweb/silverstripe-breadcrumbs dev-master
Then run dev/build.
Configuration
You can configure whether the home page and pages hidden from the sitetree should be inculded in the breadcrumbs:
Innoweb\Breadcrumbs\Extensions\SiteTreeExtension:
crumbs_include_home: false # default: true
crumbs_show_hidden: true # default: false
For a page type you can also disable the crumbs, e.g.:
Your\Project\LandingPage:
show_crumbs: false # default: true
Usage
By default, the module uses the site tree to generate breadcrumbs.
In your templates, loop over $CrumbList
to display the breadcrumbs. You can copy the following code into your template:
<% if $CrumbsList %>
<nav aria-label="Breadcrumb" class="breadcrumbs">
<ol itemscope itemtype="https://schema.org/BreadcrumbList">
<% loop $CrumbsList %>
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<% if not $IsFirst %>><% end_if %>
<a itemtype="https://schema.org/Thing" itemprop="item" href="$Link"<% if $IsLast %> aria-current="page"<% end_if %>>
<span itemprop="name">$Title</span>
</a>
<meta itemprop="position" content="$Pos" />
</li>
<% end_loop %>
</ol>
</nav>
<% end_if %>
A page can use the method updateCrumbsList()
to add or remove items from the list:
public function updateCrumbsList($list) {
$tag = $this->getActiveTag();
if ($tag) {
$crumb = Crumb::create($tag->Title, $tag->Link());
$list->push($crumb);
}
return $list;
}
License
BSD 3-Clause License, see License