Take the 2-minute tour ×
SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. It's 100% free, no registration required.

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?

share|improve this question
add comment

3 Answers

up vote 6 down vote accepted

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

share|improve this answer
add comment

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.

share|improve this answer
    
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 '11 at 10:50
1  
It is a xml file. See the example in my answer here sharepoint.stackexchange.com/questions/21365/… –  Amit Kumawat Oct 18 '11 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 '11 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? –  Amit Kumawat Oct 19 '11 at 10:32
1  
let us continue this discussion in chat –  Amit Kumawat Oct 19 '11 at 14:08
show 4 more comments

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

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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