2

I have a Sharepoint site that currently inherits everything from the v4.master page.

This site in an internal wiki page for company documentation. Each page within the wiki can have 1 or more pages linked inside of it. For instance:

Wiki Main  
  └Finance  
      └AP Reports  
      └AR Reports   
   └Human Resources  
      └Payroll  
      └Benefits  

We have been embedding new pages using this code [[FinancePage|Finance Documentation Page]] on each 'parent' page.

The issue I'm having is that the breadcrumbs do not seem to follow the leveling when users click links.

The breadcrumbs will show the following: Wiki Main > Finance

Then when the click AP Reports it will show this: Wiki Main > AP Reports

What I'd like it to show is this: Wiki main > Finance > AP Reports

I'll be the first to admit I have zero experience with Sharepoint and when googling there are quite a few hits that seem to go into making my own DLL or replacing .sitemap*.xml file but Im not sure if that is the correct solution to what Im trying to do.

Is there a way to get the breadcrumb leveling to work correctly via a Site Setting?

1 Answer 1

2

The breadcrumb generated by SharePoint is based on its own sitemap or navigation settings.You can check the Navigation Settings of the your wiki site from Site Settings>Look & Feel>Navigation.

When you create sites and pages, the sitemap is updated with the hierarchical information. Since your pages are physically in same site or location,they falls under same level (hierarchy) in sitemap and hence shown at same level in the breadcrumb.

To show the breadcrumbs in the way you want, you have to create two subsites,HR and Finance and then create pages under them.

If you don't want to change the physical location of pages,You can create your own sitemap (like below) for your pages and use it in breabcrumb or menu.

<?xml version="1.0" encoding="ISO-8859-1" ?>
<siteMap>
  <siteMapNode title="Wiki Main" url="/home.aspx">
    <siteMapNode title="Finance" url="/Finance.aspx">
      <siteMapNode title="AP Reports" url="/apreports.aspx"/>      
    </siteMapNode>
   <siteMapNode title="Human Resources" url="/hr.aspx">
      <siteMapNode title="Payroll" url="/payroll.aspx"/>      
    </siteMapNode>
  </siteMapNode>
</siteMap>

You have to configure a SPXmlContentMapProvider in your web.config to use the sitemap.

3
  • Amit: Thank you. All our files are indeed in the same directory, I think we can script something to properly create a sitemap (we have thousands of files in there). Is modifying the SPXmlContentMapProvider easy, or is there do you know if there is good documentation out there?
    – user5227
    Commented Oct 16, 2011 at 0:00
  • Create a myxml.sitemap file at root web application directory. Under providers section, add the tag : <add name="MySPXmlContentMapProvider" siteMapFile="myxml.sitemap" type="Microsoft.SharePoint.Navigation.SPXmlContentMapProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" /> Commented Oct 16, 2011 at 8:06
  • Also, you can use it for menu controls by creating a new datasource and use it for ASpMenu control: <asp:SiteMapDataSource ShowStartingNode="False" SiteMapProvider="MySPXmlContentMapProvider" id="xmlSiteMap" runat="server"/> <Sharepoint:AspMenu ID="TopNavigationMenuV4" Runat="server" DataSourceID="topSiteMap" UseSimpleRendering="true" UseSeparateCss="false" Orientation="Horizontal" StaticDisplayLevels="1" MaximumDynamicDisplayLevels="3" SkipLinkText="" CssClass="s4-tn" /> /> Commented Oct 16, 2011 at 8:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.