Breadcrumb Issues in SharePoint 2007

If you do much SharePoint 2007 Customization, then it’s quite likely that two of the following things are true: 
1.   You have visited Heather Solomon’s great SharePoint Customization Blog and used her Base Master Pages.
2.   You have run into a wall with the breadcrumbs. More specifically, after applying the base master page the breadcrumbs get a little wonky, the default page starts to show pages > default.aspx – this is not the default behavior and not something desirable so let’s work through the issue. 
There is a partial explanation which seems to be that there are two different sitemap providers used across page layouts one causes the pages > file.aspx and one that doesn’t.  


This breadcrumb with the following provider causes the pages > file.aspx 
SiteMapProvider=SPContentMapProvider  
Using this breadcrumb provider removes the pages > file.aspx 
SiteMapProvider=CurrentNavSiteMapProviderNoEncode
This said, technically an easy fix is to swap the breadcrumb on your page layout (which overrides the one in the master page) so that it uses the second version.  I found this fix on Andy Burns Blog.
 
Create a Site Collection Using the Collaboration Template. Notice that it doesn’t show pages > default.aspx. You might think the default layout for the home page is using the wrong site map provider, but unfortunately that is not the case.  The DefaultLayout has not been touched.
Next Create another Site Collection using the Collaboration Template and this time upload the base master page from Heather Site and apply it.  Note: I am not touching the DefaultLayout.aspx (main page page layout. You will notice now that it does show the Pages > File.aspx
I am assuming there is some code/logic that should exist in the page that has been stripped out?  I have not touched the Page Layout so the site map provider in the page layout of example 2 is the default.
So the site collection which is totally default/out of the box using collaboration does not show pages.  The site collection with the custom master applied does. 
If you have any thoughts, please email or leave a comment.  shane at graphicalwonder dot com.

***** Update and what I assume is the start of tracing the root cause *****

The out of the box master page has a couple of ID’s in the surrounding table which have been stripped out.  If I was a bettin’ man I would guess these are tied to some logic contained in core.js that does some fancy footwork with the breadcrumb.

The ID’s are: onetidPageTitleAreaFrame and onetidPageTitleAreaTable

The original code is in the following order: 

td id=onetidPageTitleAreaFrame

table id =onetidPageTitleAreaTable

breadcrumb placeholder

I copied the out of the box table containing the breadcrumb (and the ID’s above) and pasted it into the base master page and it seems to work.

Hope it helps,