public override void FeatureActivated(SPFeatureReceiverProperties properties) { //Get The Quick Launch and add a new root node if it doesn't already exist SPNavigationNodeCollection quickLinkNodes = ((SPWeb)(properties.Feature.Parent)).Navigation.QuickLaunch; SPNavigationNode rootNode = quickLinkNodes[0]; if (rootNode.Title != rootNodeTitle) { rootNode = new SPNavigationNode(rootNodeTitle, ((SPWeb)(properties.Feature.Parent)).Url, false); quickLinkNodes.AddAsFirst(rootNode); } //Delete Items if they already exist foreach (SPNavigationNode quickLinkNode in rootNode.Children) { quickLinkNode.Delete(); } //Add the Custom Links based on the Dictionary foreach (KeyValuePair <string, string> kvp in GetNav()) { // add security trimmed nodes, set all to external=false var newNode = new SPNavigationNode(kvp.Key, kvp.Value, false); rootNode.Children.AddAsLast(newNode); } quickLinkNodes.Parent.Update(); }
public static void AddNavigationForPage(SPWeb web, SPFile page, string linkName) { SPNavigationNodeCollection navItems = web.Navigation.QuickLaunch; SPNavigationNode newNode = new SPNavigationNode(linkName, page.Url, false); navItems.AddAsFirst(newNode); web.Update(); }
public SPNavigationNodeInstance AddAsFirst(SPNavigationNodeInstance node) { if (node == null) { throw new JavaScriptException(Engine, "Error", "node must be specified."); } var result = m_navigationNodeCollection.AddAsFirst(node.SPNavigationNode); return(result == null ? null : new SPNavigationNodeInstance(Engine.Object.InstancePrototype, result)); }
private static void AddParentNode(SPWeb web, SPNavigationNodeCollection topnav) { SPWeb parentWeb = web.ParentWeb; string linkTitle = parentWeb.Title; SPNavigationNode node = new SPNavigationNode(linkTitle, parentWeb.ServerRelativeUrl); node = topnav.AddAsFirst(node); if (!parentWeb.IsRootWeb) { AddParentNode(parentWeb, topnav); } }
private void ConfigTopNavigationBar(SPWeb web) { SPNavigationNodeCollection topnav = web.Navigation.TopNavigationBar; if (topnav.Count == 1 && topnav[0].Title == "Home" && topnav[0].Url == web.ServerRelativeUrl) { topnav.Delete(topnav[0]); string linkTitle = web.Title; SPNavigationNode node = new SPNavigationNode(linkTitle, web.ServerRelativeUrl); node = topnav.AddAsFirst(node); } }
public static void ProvisionWebStructure(this SPWeb web, WebDefinitionCollection subsites) { foreach (var site in subsites) { var existed = web.Webs.Cast <SPWeb>().Where(p => p.Url.Contains(site.Url)).FirstOrDefault(); if (existed != null && !site.Overwrite) { continue; } if (existed != null && site.Overwrite) { DeleteSite(existed); } var newSite = web.AddSite(site.Url.Trim(), site.Name.Trim(), site.Template.Trim()); if (newSite == null) { continue; } //Provision Lists //Provision Features foreach (var feature in site.Features) { newSite.Features.Add(feature.Guid); //newSite.Update(); } //BreakRoleInheritance if (site.BreakRoleInheritance) { try { newSite.AllowUnsafeUpdates = true; if (!newSite.HasUniqueRoleAssignments) { newSite.BreakRoleInheritance(false); } //create group string groupOwners = site.Name.Trim() + " Owners"; newSite.CreateNewGroup(groupOwners, "Use this group to grant people full control permissions to the SharePoint site: " + site.Name.Trim(), SPRoleType.Administrator); string groupMembers = site.Name.Trim() + " Members"; newSite.CreateNewGroup(groupMembers, "Use this group to grant people contribute permissions to the SharePoint site: " + site.Name.Trim(), SPRoleType.Contributor); string groupVisitors = site.Name.Trim() + " Visitors"; newSite.CreateNewGroup(groupVisitors, "Use this group to grant people read permissions to the SharePoint site: " + site.Name.Trim(), SPRoleType.Reader); newSite.Update(); Utility.ChangeSPGroupOwnerBySPGroup(newSite, groupOwners, groupOwners); Utility.ChangeSPGroupOwnerBySPGroup(newSite, groupMembers, groupOwners); Utility.ChangeSPGroupOwnerBySPGroup(newSite, groupVisitors, groupOwners); SPUser authenUsers = newSite.EnsureUser("NT AUTHORITY\\authenticated users"); if (authenUsers != null) { SPGroup spGrp = newSite.Groups[groupVisitors]; if (spGrp != null) { spGrp.AddUser(authenUsers); } } } catch (Exception ex) { } finally { newSite.AllowUnsafeUpdates = false; } } //provision Top Navigation Bar try { newSite.AllowUnsafeUpdates = true; SPNavigationNodeCollection topnav = newSite.Navigation.TopNavigationBar; //clear all for (int i = topnav.Count - 1; i >= 0; i--) { topnav.Delete(topnav[i]); } string linkTitle = newSite.Title; SPNavigationNode node = new SPNavigationNode(linkTitle, newSite.ServerRelativeUrl); node = topnav.AddAsLast(node); SPWeb rootWeb = web.Site.RootWeb; string linkRootTitle = rootWeb.Title; SPNavigationNode nodeRoot = new SPNavigationNode(linkRootTitle, rootWeb.ServerRelativeUrl); nodeRoot = topnav.AddAsFirst(nodeRoot); //AddParentNode(newSite, topnav); } catch (Exception ex) { } finally { newSite.AllowUnsafeUpdates = false; } if (site.SubSites.Count > 0) { newSite.ProvisionWebStructure(site.SubSites); } } }