Responsive Ads Here

Tuesday, July 17, 2012

Programmatically Configure Quick Launch in SharePoint


SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    using (SPSite spSite = new SPSite(siteUrl))
                    {
                        using (SPWeb spWeb = spSite.OpenWeb())
                        {
                            PublishingWeb publishingWeb =PublishingWeb.GetPublishingWeb(spWeb);
                            publishingWeb.Navigation.ShowSiblings = false;
                            publishingWeb.Update();
                            //First delete all the items in quick launch
                            for (int i = spWeb.Navigation.QuickLaunch.Count - 1; i > -1; i--)
                            {
                                spWeb.Navigation.QuickLaunch[i].Delete();
                            }
                            spWeb.Update();
                            //Add items to Quick Launch

                           
                            SPNavigationNodeCollection nodes = spWeb.Navigation.QuickLaunch;

                            //Meetings
                            SPNavigationNode navNode = newSPNavigationNode("Meetings", spWeb.Url + "/Pages/My-Meetings.aspx");
                            nodes.AddAsFirst(navNode);

                            lst = spWeb.Lists[Constants.DiscussionForumName];
                            navNode = new SPNavigationNode("Discussions", lst.DefaultViewUrl);
                            nodes.AddAsFirst(navNode);                          
                           


                            //Quick Launch item - Contacts
                            navNode.Title = "Contacts";
                            navNode.Url= spWeb.Url +"/Pages/ProjectContacts.aspx";                                                       
                            nodes.AddAsFirst(navNode);   


                            //Quick Launch Item - Issues
                            lst = spWeb.Lists[Constants.LstIssues];
                            navNode.Title = "Issues";
                            navNode.Url = lst.DefaultViewUrl;                           
                            nodes.AddAsFirst(navNode);
                           

                            //Quick Launch item - Gannt Chart
                            lst = spWeb.Lists[Constants.LstTasks];//"Project Milestones"
                            navNode.Title = "Gantt Chart";
                            navNode.Url = lst.Views.Cast<SPView>().FirstOrDefault(v => v.Title.ToString() == "gantt").Url;
                            //navNode.Url = lst.DefaultViewUrl;
                            nodes.AddAsFirst(navNode);


                            //Quick Launch item - Project Documents                         
                            navNode.Title ="Documents";                           
                            navNode.Url = spWeb.Url +"/Pages/Document.aspx";
                            nodes.AddAsFirst(navNode);

                            //Home
                            navNode = new SPNavigationNode("Home", spWeb.Url, true);
                            nodes.AddAsFirst(navNode);
                            publishingWeb.Update();

                           

                            spWeb.Update();
                        }
                    }
                });

No comments:

Post a Comment