In this article we will be seeing how to manage the Quick Launch Navigation in SharePoint 2010 using PowerShell and SharePoint Object Model.
Get all the Headings and Links from the Quick Launch:
Using C#:
using (SPSite site = new SPSite("http://serverName:1111/sites/SPSiteDataQuery/"))
{
using (SPWeb web = site.RootWeb)
{
SPNavigationNodeCollection nodeColl = web.Navigation.QuickLaunch;
foreach (SPNavigationNode heading in nodeColl)
{
Console.WriteLine(heading.Title.ToString());
foreach (SPNavigationNode links in heading.Children)
{
Console.WriteLine("-" + links.Title.ToString());
}
}
Console.ReadLine();
}
}
Output:
Using PowerShell:
$siteURL="http://serverName:1111/sites/SPSiteDataQuery/"
$site=Get-SPSite $siteURL
$web=$site.RootWeb
$navigationNodeColl=$web.Navigation.QuickLaunch
foreach($heading in $navigationNodeColl)
{
write-host -f Green $heading.Title
foreach($links in $heading.Children)
{
write-host -f Yellow $links.Title
}
}
Output:
Move the Headings in the Quick Launch:
In this we will be seeing how to move the headings in the Quick Launch Navigation. Initially Quick Launch Navigation looks like the following.
MoveToLast and MoveToFirst Methods:
using (SPSite site = new SPSite("http://serverName:1111/sites/SPSiteDataQuery/"))
{
using (SPWeb web = site.RootWeb)
{
SPNavigationNodeCollection nodeColl = web.Navigation.QuickLaunch;
foreach (SPNavigationNode heading in nodeColl)
{
if (heading.Title.ToString() == "Libraries")
{
heading.MoveToLast(nodeColl);
}
if (heading.Title.ToString() == "Lists")|
{
heading.MoveToFirst(nodeColl);
}
}
}
}
Move Method:
using (SPSite site = new SPSite("http://serverName:1111/sites/SPSiteDataQuery/"))
{
using (SPWeb web = site.RootWeb)
{
SPNavigationNodeCollection nodeColl = web.Navigation.QuickLaunch;
SPNavigationNode heading = nodeColl[0];
heading.Move(nodeColl, nodeColl[1]);
}
}
Comments