Husky Ninja Blogs

Breadcrumbs with Crumbs

OK, back to the topic of configuring Drupal. As we last left our hero (me), I had installed Views to help build a logical URL structure and related block level navigation. Still, there remained the issue of the breadcrumbs, which were not very pleasing to the UX I was hoping to build. At the time, a technical related article, like this one, would have breadcrumbs that looked sort of like "Home / Article Name", which was not reflexive of either the URL structure in place, nor the taxonomy I was hoping to apply to the site.

Quick aside: for those that don't know, the breadcrumb trail is that little thing at the top of web pages that show you where you are in the site's structure, and usually provide you a method by which you can navigate to the parents of the current page within that structure. It was named after Henry Breadcrumb, a mechanic by trade, who took up web site design in the early 1970s. Just kidding. The breadcrumbs name comes from Hansel and Gretel, witch hunters who used breadcrumbs to lure the unsuspecting witches to their deaths. You may know Hansel from his membership in The Avengers as the sword wielding hero Green Arrow. Sadly, Gretel was lost on the mean streets of Hollywood and not heard from since - at least in a way that anyone cares about.

Go get them breadcrumbs, witches

Anyway, based on the UX situation I was facing I had two requirements to try to meet. First, I needed to add the relevant path name that matched the view and content type settings I had in place. I also had to find a way to change the name for the site root from "Home" to "Something other than home that was reflexive of the site's real name, like maybe Husky Ninja Blogs". After a bit of research, a.k.a. looking through Google, I came across Crumbs. As usual, this is not the only module that does this breadcrumb customization thing, but it was the only one that seemed to be able to do the two things I wanted to do (edit the trail and change the root name). If you want to know more about the alternatives, check out Mike Crittenden's post Lean Drupal Breadcrumbs. One thing he does cover, and it is surprising in its truthfulness, is that breadcrumbs are hard.

So now that I have my module it was time to install and configure it. Installing was easy. The usual copy/pasta to sites/all/modules. Then, enable the module from Administration >> Modules >> Other. Once that was all done, I was able to go to the Crumbs configuration screen at Administration >> Structure >> Crumbs. From the Crumbs administration screen I, uh... holy crap... now what?

Intuitive interface...

Yes, breadcrumbs are hard, and designing intuitive interfaces to control them are even harder. Crumbs is definitive proof of that. Documentation is there, but reads like stereo instructions and is far from comprehensive. Google was no help either. After poking it with a stick for a few minutes I found the location to change the root site name (Administration >> Structure >> Crumbs >> Display >> Home Link Settings), which took care of half the issue, but I was still stuck with "Husky Ninja Blogs / Title" while I needed "Husky Ninja Blogs / Structure / Title". Well, at least I was half way there.

After banging around Google some more, and reviewing recommendations that ranged from "just write a custom hook" to "use the String Over-rides module" (because there is nothing that can't be fixed with the String Over-rides module), I finally decided to start random configurations until I got something that looked like I wanted. So from the Plugin Weights screen (Administration >> Structure >> Crumbs >> Plugin Weights >> Tabledrag), I grabbed the "path" value, and moved it under Enabled. Somehow, this worked for what I needed.

Winner Winner Chicken Dinner

Of course, my structure is only three levels deep at this point (Root / Context / Post), so that worked, but if I was to go deeper, then not so much. There are plenty of other values (menu.hierarchy.* for example) that would meet my requirements if they ever changed, or at least give me something to poke with a stick.

I now had real names, social sharing, taxonomy, and breadcrumbs set up in my Drupal 7 instance. And I still had a couple of days left in my timeline (1 week) to deliver my new blogs site. All that was left is to change the default content editing interface to something a little more fun, and I also soon realized I needed to track visitors (like there are any) in Google Analytics. And I will cover some of that in the next post.