BreadCrumb
Last updated Oct 27th, 2020 | Page history | Improve this page | Report an issue
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$311 per month—let's make that $500!
Learn moreWhat is BreadCrumb?¶
Breadcrumb is a snippet for MODX Revolution, inspired by the Breadcrumbs snippet.
As the original Breadcrumbs, this snippet will create a breadcrumb navigation (no kidding !!) but also add some new features like template properties or specific resource ID property.
Requirements¶
- MODX Revolution 2.0.x or later
- PHP5 or later
Public Releases¶
Version | Date | Author | Product |
---|---|---|---|
1.4.4-pl | October 1, 2019 | ------------------- | Revolution |
1.4.3-pl | March 7, 2015 | ben_omycode & Jako | Revolution |
1.4.2-pl | August 12, 2014 | ben_omycode | Revolution |
1.4.1-pl | August 7, 2014 | ben_omycode | Revolution |
1.4.0-pl | August 6, 2014 | ben_omycode | Revolution |
1.3.2-beta1 | December 11, 2012 | ben_omycode | Revolution |
1.3.1-pl | November 16, 2012 | ben_omycode | Revolution |
1.3.0-pl | August 28, 2012 | ben_omycode | Revolution |
1.2.0-pl | August 22, 2012 | ben_omycode | Revolution |
1.1.0-pl | April 24, 2012 | ben_omycode | Revolution |
1.0.0-pl | February 6, 2012 | ben_omycode | Revolution |
1.0.0-beta3 | November 19, 2011 | ben_omycode | Revolution |
1.0.0-beta2 | November 18, 2011 | ben_omycode | Revolution |
Download¶
It can be downloaded from within the MODX Revolution manager via Package Management, or from the MODX Extras Repository, here: https://modx.com/extras/package/breadcrumb
Support, Comments, Development and Bug Reporting¶
- Github: BreadCrumb
- Support: MODX Community
Usage¶
The BreadCrumb snippet can be called using the tag :
[[BreadCrumb]]
Breadcrumb properties¶
Name | Description | Default | Version |
---|---|---|---|
from | Resource ID from which breadcrumb is created | 0 | 1.1.0-pl |
to | Resource ID whose breadcrumb is created | current resource ID | 1.1.0-pl |
exclude | Comma separated list of resources to exclude from breadcumb | 1.4.0-pl | |
maxCrumbs | Max crumbs shown in breadcrumb. Max delimiter template can be customize with property maxCrumbTpl | 100 | |
showHidden | Show hidden resources in breadcrumb | 1 | |
showContainer | Show container resources in breadcrumb | 1 | |
showUnPub | Show unpublished resources in breadcrumb | 1 | |
showCurrentCrumb | Show current resource as a crumb | 1 | |
showBreadCrumbAtHome | Show BreadCrumb on the home page | 1 | |
showHomeCrumb | Show the home page as a crumb. Since 1.4.0-pl, the home crumb usage was simplified. The &showHomeCrumb=1 property adds the home crumb at the start of breadcrumb and &showHomeCrumb=0 hides it if present. | 1 | |
useWebLinkUrl | Use the weblink url instead of the url to the weblink | 1 | 1.0.0-beta3 |
direction | Direction or breadcrumb : Left To Right (ltr) or Right To Left (rtl) for Arabic language for example | ltr | |
scheme | Format for how URLs are generated. Possible values are based on modX.makeUrl): | modx link_tag_scheme setting |
Valid scheme values:
- -1 : (default value) URL is relative to site_url
- 0 : see http
- 1 : see https
- full : URL is absolute, prepended with site_url from config
- abs : URL is absolute, prepended with base_url from config
- http : URL is absolute, forced to http scheme
- https : URL is absolute, forced to https scheme
Templating properties¶
@CODE no longer supported since 1.4.0-pl. Use @INLINE instead.
Name | Description | Default | Version |
---|---|---|---|
containerTpl | Name of the chunk containing the template for the container of the breadcrumb. It also can be file path (@FILE ) or chunk code (@INLINE ). | cf BreadCrumb.containerTpl | |
homeCrumbTpl | Name of the chunk containing the template for the current crumb. It also can be file path (@FILE ) or chunk code (@INLINE ). | cf BreadCrumb.homeCrumbTpl | 1.4.0-pl |
currentCrumbTpl | Name of the chunk containing the template for the current crumb. It also can be file path (@FILE ) or chunk code (@INLINE ). | cf BreadCrumb.currentCrumbTpl | |
linkCrumbTpl | Name of the chunk containing the template for the default crumb. It also can be file path (@FILE ) or chunk code (@INLINE ). | cf BreadCrumb.linkCrumbTpl | |
categoryCrumbTpl | Name of the chunk containing the template for categories crumbs. Can be file (@FILE ) or code (@INLINE ). | cf BreadCrumb.categoryCrumbTpl | 1.3.2-beta1 |
maxCrumbTpl | Name of the chunk containing the template for the max delimiter crumb. It also can be file path (@FILE ) or chunk code (@INLINE ). | cf BreadCrumb.maxCrumbTpl |
Examples¶
Show the breadcrumb of the current resource
[[BreadCrumb]]
Show the breadcrumb of the resource whose ID is 72
[[BreadCrumb? &to=`72`]]
Show home crumb at the start of breadcrumb
[[BreadCrumb? &showHomeCrumb=`1`]]
Show the breadcrumb of the resource whose ID is 72 from it's level 2 parent
[[BreadCrumb? &from=`[[UltimateParent? &topLevel=`2`]]` &to=`72`]]
Change the direction of the breadcrumb : rtl (Right To Left) or ltr (Left To Right)
[[BreadCrumb? &direction=`rtl`]]
Exclude some resources
[[BreadCrumb? &exclude=`23,135`]]
Use custom templates
[[BreadCrumb? &linkCrumbTpl=`myLinkCrumbTpl`]]
[[BreadCrumb? &linkCrumbTpl=`@INLINE <li><a href="[[+link]]">[[+pagetitle]]</a></li>`]]
[[BreadCrumb? &linkCrumbTpl=`@FILE [[++assets_path]]my_link_crumb_tpl.html`]]
Migrate from Breadcrumbs snippet¶
Once again, BreadCrumb was inspired by the Breadcrumbs snippet. Some of Breadcrumbs properties have been removed but you still can do the same things with BreadCrumb ... just in a different way.
crumbSeparator¶
Before:
[[Breadcrumbs? &crumbSeparator=`>`]]
Use CSS instead:
#breadcrumb li + li:before{
content: '>';
margin: 0 2px;
}
currentAsLink¶
Before:
[[Breadcrumbs? ¤tAsLink=`1`]]
New:
[[BreadCrumb? ¤tCrumbTpl=`myCurrentCrumbTpl`]]
Chunk myCurrentCrumbTpl
:
<li><a href="[[+link]]">[[+pagetitle]]</a></li>
descField¶
Before:
[[Breadcrumbs? &descField=`longtitle`]]
New:
[[BreadCrumb? &linkCrumbTpl=`myLinkCrumbTpl` ¤tCrumbTpl=`myCurrentCrumbTpl`]]
Chunks myLinkCrumbTpl
and myCurrentCrumbTpl
:
<li><a href="[[+link]]" title="[[+longtitle]]">[[+pagetitle]]</a></li>
homeCrumbDescription¶
Before:
[[Breadcrumbs? &homeCrumbDescription=`Home`]]
After:
[[BreadCrumb? &containerTpl=`myContainerTpl`]]
Chunk myContainerTpl
:
<ul>
<li><a href="[[++site_url]]">Home</a></li>
[[+crumbs]]
</ul>
homeCrumbTitle¶
Before:
[[Breadcrumbs? &homeCrumbTitle=`Home`]]
After:
[[BreadCrumb? &containerTpl=`myContainerTpl`]]
Chunks myContainerTpl
:
<ul>
<li><a href="[[++site_url]]" title="Home">Home</a></li>
[[+crumbs]]
</ul>
maxDelimiter¶
Before:
[[Breadcrumbs? &maxDelimiter=`(...)`]]
After:
[[BreadCrumb? &maxCrumbTpl=`myMaxCrumbTpl`]]
Chunk myMaxCrumbTpl
:
<li>(...)</li>
titleField¶
Before:
[[Breadcrumbs? &titleField=`menutitle`]]
After:
[[BreadCrumb? &linkCrumbTpl=`myLinkCrumbTpl` ¤tCrumbTpl=`myCurrentCrumbTpl`]]
Chunk myLinkCrumbTpl
and myCurrentCrumbTpl
:
<li><a href="[[+link]]">[[+menutitle]]</a></li>