Quick Launch Navigation in SharePoint 2010: Part1


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:

Share1.gif

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:

Share2.gif

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 Luanch Navigation looks like the following.

Share3.gif

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);
                        }                 
                    }                  
                }
            }

Share4.gif

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]);
                }
            }


Share5.gif