Ran into this issue and spent most part of the way trying to figure out what went wrong. Could it be a permissions issue ?

The problem was that I created a Help page and it started showing up as a tab on the Global (top) Navigation Bar. I went into Site Settings > Modify Navigation > Site Navigation Settings and hit the hidden button for the page. To my utter surprise, as soon as I left the page, it reverted back to showing the page on the global nav bar again.

So, I was Unable to modify navigation.

Went to the 12 hive (C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\LOGS), and looked at the log file to find the message:

Unable to retrieve TopNavigationBar SPNavigationNodeCollection from Web…
The SPNavigation store is likely corrupt.
 
Turns out that the problem is with the onet.xml file. Fixing the file by adding the Navbar nodes element fixes it for future sites.
 
<NavBars>
          <NavBar Name=”SharePoint Top Navbar” ID=”1002″>
          </NavBar>
</NavBars>
 

And to fix the existing sites, run the following SQL in the content db for the site:

 INSERT INTO [NavNodes]
([SiteId], [WebId], [Eid], [EidParent], [NumChildren], [RankChild],[ElementType], [Url],
[DocId], [Name], [DateLastModified], [NodeMetainfo], [NonNavPage], [NavSequence], [ChildOfSequence])
SELECT DISTINCT SiteId, WebId ,1002 ,0 ,0 ,1 ,1 ,”, NULL, ‘SharePoint Top Navbar’,getdate() ,NULL ,0 ,1 ,0
FROM NavNodes WHERE WebId NOT IN (SELECT WebId FROM NavNodes WHERE Eid = 1002)

Advertisements