Submitted by admin on Thu, 09/05/2019 - 17:11

Implementing breadcrumbs in Drupal can be difficult depending on your requirements. Drupal out of the box will generate a breadcrumb based off the menu structure, however, things start to get a little tricky when you want to modify breadcrumbs.

There are a lot of modules that allow you to control breadcrumbs in their own unique way. To name a few you have Crumbs, Custom Breadcrumbs and more.

The module that I’ve had the most success with is the Path Breadcrumbs. This module offers great flexibility with an easy to use interface. Path Breadcrumbs’ configuration can also be exported using Features which is another huge win.

How it Works

The module uses the Ctools access plugin, which allow users to define selection rules. You can setup rules which could be, “only show if the content type is an article”. You can add as many selection rules as required and can even reorder the list and change the execution order.

Image removed.

In this tutorial, you’ll learn how to customise breadcrumbs on the Article content type and how to change the breadcrumb when using the Book module. And before you say anything, yes the Book module still gets used.

Get Started

Before we can begin, go download Path Breadcrumbs and its dependencies: Entity API, Entity Token (part of Entity API) and Ctools

Once everything has been downloaded, enable Path Breadcrumbs and Path Breadcrumbs UI.

If you use Drush, run the following command:

drush dl path_breadcrumbs entity ctools
drush en path_breadcrumbs_ui path_breadcrumbs

On Content Type Pages

A common use case is to have an index page appear in the breadcrumb, for example, “Home > Blog > TITLE”. Often you’ll want an article to link back to an index page which could be /blog or /articles.

Let’s now configure the breadcrumb on an article page to always show “Home > Blog > TITLE”.

1. Go to Structure, “Path Breadcrumbs” and click on “Create new path breadcrumb”.

2. Enter in “Article content type” into “Breadcrumb definition” and “node/%node” into Path. Click on Continue to go to the next page.

Image removed.

3. On the Arguments page, click on Change next to “No context assigned” and select “Node: ID” from the modal pop-up and click on Continue, then Finish.

Image removed.

Can’t see “Node: ID”?

If you see “Content: ID” instead of “Node: ID”, then select “Content: ID”.

Once back on the Arguments page click on Continue.

4. On the “Selection rules” page, you define your selection criteria. Because we want to use this breadcrumb on the Article content type, we’ll set that as a selection criteria.

Select “Node: type” from the drop-down and click on Add.

Image removed.

Select Article from the modal pop-up and click on Save.

Image removed.

Once you’ve added the selection criteria click on Continue.

5. Now at this point we define our actual breadcrumb. As mentioned earlier, we want the breadcrumb to be “Home > Blog > TITLE”.

Add Blog into the first link title and blog into the link path. Click on “Add more” to add another row. Now in the second row enter %node:title in the link title and <none> in link path.

Once complete the page should look like the image below:

Image removed.

Now click on Finish.

Test Breadcrumb

Congratulations, you’ve created your own custom breadcrumb. Let’s test it out and make sure it’s working.

Go ahead and create an article and once it’s created you should see “Home > Blog > TITLE”.

Image removed.

On Book Pages

The Book module, which ships with Drupal, allows you to create book style pages with chapters.

Out of the box Drupal will show all parent pages in the breadcrumb, for example, “Home > Book name > Chapter > Page”. It starts to get a little difficult when you want to customise the breadcrumb. Let’s say you want to add a “Books” link just after “Home” so it’s “Home > Books > Book name > Chapter > Page”.

Now let’s customise the Book module’s breadcrumb.

To speed things up, I’ll assume you’ve already installed the Book module and created content. I’ll also assume that you’ve already created a “Book content type” breadcrumb and we’ll jump straight to the Breadcrumbs page.

Image removed.

Configure Book

We’ll be using functionality in Path Breadcrumbs to add the book menu trail. The module implements a custom magic token called “pb-join”. For this token to work you must install and enable the Token module.

1. In the row enter “Books” in link title and books in link path.

2. In the second row enter “%node:book:pb-join:name” in link title and “%node:book:pb-join:url” in link path.

Image removed.

3. Once done click on Finish.

Now head over to one of the book pages and you should see a link “Books” just after the “Home” link.

Image removed.

Solutions Img