[development] breadcrumbs

Angela Byron drupal-devel at webchick.net
Sun Jan 28 15:53:38 UTC 2007

On 28-Jan-07, at 3:15 AM, Omar Abdel-Wahab wrote:

> I'd like to outline some point: DokuWiki is using two ways  
> breadcrumb, one is the current user's navigation history, which  
> might only list the last 5 pages and a second breadcrumb which  
> resembles Drupal's breadcrumb.
> I think I'd go for provding an additional argument(s) to hook_menu.

Ugh, I hate that. I find that so utterly confusing: sites with  
magical shifting breadcrumbs.

I also hate when the breadcrumb trail magically switches depending on  
how I find a page. (Home >> Tags >> Foo sometimes, Home >> Forums >>  
Foo) other times.

To me, the breadcrumb trail is the site author's indication of where  
a given page belongs in the structure of the site. This is really  
helpful when you end up at a random page via Google. They also help  
find more pages like the one I'm looking at. Tags, on the other hand,  
are a user's representation of where they think that page belongs.  
They are two totally different things.

I'll use an example from Amazon.com to illustrate:


Now if you scroll to the bottom of the page (no idea why this is at  
the bottom), you'll see a breadcrumb trail of:

# Styles > Alternative Rock > Indie & Lo-Fi > Indie Pop > General

This is how Amazon.com thinks this album fits in relation to other  
content on their site. If I click "Indie Pop" I'm taken to a listing  
of other albums like the one I'm looking at (in fact I own about half  
of those on the front page ;)). This is very useful.

Now let's say instead I click the tag "weird," which is how a user  
has categorized it. This brought up a bunch of completely unrelated  
crap, including a George Bush Kennebunkport art poster, which I am  
very unlikely to purchase. ;)

Really, my only major beef with Drupal's breadcrumbs is that the  
current page (non-linked) is not included. See http:// 

However, I guess that's why we want to make it all configurable. ;)

+1 for token module in core, +1 for core providing some kind of  
'breadrcumb api' that can be expanded with contrib modules with an  
"80% solution" implemented as the default.


More information about the development mailing list