views:

327

answers:

1

I have a sharepoint portal with a root site and 3 subsites, to implement the horizontal menu of the portal i use the GlobalNavSiteMapProvider. For the breadcrumb i chose to use the CurrentNavSiteMapProviderNoEncode. In the subsites navegation, i select the options "Show Pages" (if i dont check this options the breacrumb did not show the correct path for the subsites pages) and "Show the same navegation of main site". The breacrumb works weel for all pages but the menu in welcome pages of subsites instead of showing the global navigation of the root site shows the pages that were created in it (in subsite pages the menu works fine and show the global navegation). If i uncheck the "Show Pages" in subsite navegation, the menu works well in all pages but the bredcrumb only works well on the pages of the root site

A: 

What I have done in the past is to define a new navigation provider in the web.config that is dedicated especially for the breadcrumb.

<add name="BreadCrumbSiteMapProvider" 
     description="CMS provider for Breadcrumb navigation"
     type="Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider,
        Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral,
        PublicKeyToken=71e9bce111e9429c" 
     NavigationType="Combined" 
     EncodeOutput="false" 
     IncludePages="Always" 
     IncludeHeadings="true" 
     IncludeAuthoredLinks="true" />

Add this to the siteMap/providers section of your web.config, and point your breadcrumb control to the new provider

The attribute IncludePages="Always" will override the setting that you have for the checkbox "Show Pages".

Paul Lucas
Thanks Paul, with your sugestion the breadcrumb works always well. But i continue with a problem with menu and GlobalNavSiteMapProvider. With your solution i can uncheck the "show pages" option, and with that the menu works well in all pages (including welcome page). My problem now is that i have a diferent css for menu current item and for example in this case:current page = /news/news1.aspx (subsite news + page news1.aspx) theProvider.CurrentNode is "/news/" and the "news" menu item will be rendered with selected template what is wrong.
jdcorr
I'm not sure I understand the issue now. Are you able to link to a screenshot somewhere so that might explain a bit better?
Paul Lucas
The problem is if i don't check the "Show Pages" and if for example i am in a page of a subsite the CurrentNode property of the GlobalNavSiteMapProvider is the subsite's root instead of the page. To resolve that in my custom navegation menu to check if a node represents the current page I compare the page url (instead of the current node property) with the node url.
jdcorr