12

We are using SharePoint for our Intranet. We will have a site collection for the Intranet. Then a site collection for each department in the business. I.E. HR, IT, Finance.

We are creating a custom materpage to be roled out throughout the site collections and will apply them to each site in each site collection.

We would like the navigation (top level) to remain the same on each site in each site collection, across the differnt site collections. Is this possible?

3 Answers 3

6

You can define another navigation provider that pulls the data from a different source. Typically I use a SharePoint list, but you could use an XML file, database, or whatever makes the most sense for your requirements.

The menu control placed on the MasterPage can either have the data source repointed, or you could decide to put a second control on the page with a different data source. In many cases I'll use two controls, one with some local site collection navigation and one with truly global navigation that is maintained across all site collections.

Here is a reference to the code on MSDN: http://msdn.microsoft.com/en-us/library/cc789625.aspx

4

Assuming your site collections are in same web application, you can easily use xml sitemap. Below are the steps:

1) Create a xml sitemap(myxml.sitemap for example) at root web application directory.

2)In web.config, under providers section, add :

<add name="MySPXmlContentMapProvider" siteMapFile="myxml.sitemap" type="Microsoft.SharePoint.Navigation.SPXmlContentMapProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />

3) In master page, you can bind the provider to SiteMapDataSource control and use this datasource for menu:

<asp:SiteMapDataSource ShowStartingNode="False" SiteMapProvider="MySPXmlContentMapProvider" id="xmlSiteMap" runat="server"/> 

<Sharepoint:AspMenu ID="TopNavigationMenuV4" Runat="server" DataSourceID="xmlSiteMap" UseSimpleRendering="true" UseSeparateCss="false" Orientation="Horizontal" StaticDisplayLevels="1" MaximumDynamicDisplayLevels="3" SkipLinkText="" CssClass="s4-tn" />

If your site collections are in different web applications, you can store the sitemap information to a central DB or XML file and create a WCF service to read it. The WCF service can be used as datasource via SharePoint designer.

9
  • What would the sitemap look like? I have found this sitemaps.org/protocol.php but I don't see how you can set what the link name is.
    – John
    Oct 18, 2011 at 10:50
  • 1
    It is a xml file. See the example in my answer here sharepoint.stackexchange.com/questions/21365/… Oct 18, 2011 at 12:11
  • Where would you store myxml.sitemap? Is it possible to store it in a sub folder in the Style Library?
    – John
    Oct 19, 2011 at 10:07
  • To use it with provider, sitemap has to be on file system.You can store it in the root folder of virtual directory(in inetpub). If you want to store it in any document library, better to consume it using data view webpart.If you are ok with the dataview webpart, better use a list instead of xml file. It will easier to edit and manage. By the way, You already got an acceptable answer..right? Oct 19, 2011 at 10:32
  • 1
    let us continue this discussion in chat Oct 19, 2011 at 14:08
0

Check out ECS. It provides security-trimmed cross-site collection navigation, permission and master page inheritance and transparent site collection creation.

http://www.infowisesolutions.com/product.aspx?id=ECS

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.