SiteActionsSubMenuCustomizer.cs
CodeKeep C# Feed Luglio 19th, 2008
Description: Site Actions SubMenu Customizer adds items imperatively.Link: http://www.codekeep.net/snippets/9091b2f1-7601-4749-a594-c5d596def669.aspx
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.Administration;
using System.Web.UI.WebControls;
namespace SiteActionsSubMenuDemo
{
public class SiteActionsSubMenuCustomizer : WebControl
{
string m_urlPrefix = "";
protected override void OnLoad(EventArgs e)
{
this.EnsureChildControls();
base.OnLoad(e);
}
protected override void CreateChildControls()
{
SPWeb web1 = SPContext.Current.Web;
if (web1.IsRootWeb)
m_urlPrefix = "/";
SubMenuTemplate quickSiteSettings = new SubMenuTemplate();
quickSiteSettings.Text = "Quick Site Settings";
quickSiteSettings.ID = "QuickSiteSettings";
quickSiteSettings.Description = "Quick access to site settings";
quickSiteSettings.Sequence = 400;
// Build submenus
quickSiteSettings.Controls.Add(BuildSubMenuUsersAndPermissions());
quickSiteSettings.Controls.Add(BuildSubMenuLookAndFeel());
quickSiteSettings.Controls.Add(BuildSubMenuGalleries());
quickSiteSettings.Controls.Add(BuildSubMenuAdmin());
// Link to WSS Central Admin
MenuItemTemplate wssCentralAdmin = new MenuItemTemplate();
wssCentralAdmin.Text = "WSS Central Administration";
wssCentralAdmin.ID = "SiteActionsSubMenuItem1";
wssCentralAdmin.Description = "View WSS Central Administration";
wssCentralAdmin.ImageUrl = "/_layouts/images/admintitlegraphic.gif";
wssCentralAdmin.Sequence = 400;
string url = SPAdministrationWebApplication.Local.GetResponseUri(SPUrlZone.Default).ToString();
wssCentralAdmin.ClientOnClickNavigateUrl = url;
quickSiteSettings.Controls.Add(wssCentralAdmin);
this.Controls.Add(quickSiteSettings);
}
private SubMenuTemplate BuildSubMenuAdmin()
{
// Site admin submenu
SubMenuTemplate siteAdmin = new SubMenuTemplate();
siteAdmin.Text = "Site Administration";
siteAdmin.ID = "SiteAdminstration";
siteAdmin.Description = "Administration functions for this site";
siteAdmin.Sequence = 400;
// Site libraries and lists menu item
MenuItemTemplate siteLists = new MenuItemTemplate();
siteLists.Text = "Site libraries and lists";
siteLists.ID = "siteLists";
siteLists.Description = "Manage site libraries and lists";
siteLists.Sequence = 400;
siteLists.ClientOnClickNavigateUrl = m_urlPrefix +
"_layouts/mcontent.aspx";
siteAdmin.Controls.Add(siteLists);
// Site usage menu item
MenuItemTemplate siteUsage = new MenuItemTemplate();
siteUsage.Text = "Site usage";
siteUsage.ID = "siteUsage";
siteUsage.Description = "View site usage statistics";
siteUsage.Sequence = 400;
siteUsage.ClientOnClickNavigateUrl = m_urlPrefix +
"_layouts/SpUsageWeb.aspx";
siteAdmin.Controls.Add(siteUsage);
// User alerts menu item
MenuItemTemplate userAlerts = new MenuItemTemplate();
userAlerts.Text = "User alerts";
userAlerts.ID = "userAlerts";
userAlerts.Description = "Manage user alerts";
userAlerts.Sequence = 400;
userAlerts.ClientOnClickNavigateUrl = m_urlPrefix +
"_layouts/sitesubs.aspx";
siteAdmin.Controls.Add(userAlerts);
// RSS feeds menu item
MenuItemTemplate rssFeeds = new MenuItemTemplate();
rssFeeds.Text = "RSS feeds";
rssFeeds.ID = "rssFeeds";
rssFeeds.Description = "Enable/disable RSS feeds";
rssFeeds.Sequence = 400;
rssFeeds.ClientOnClickNavigateUrl = m_urlPrefix +
"_layouts/siterss.aspx";
siteAdmin.Controls.Add(rssFeeds);
// Site features menu item
MenuItemTemplate siteFeatures = new MenuItemTemplate();
siteFeatures.Text = "Site features";
siteFeatures.ID = "siteFeatures";
siteFeatures.Description = "Manage site features";
siteFeatures.Sequence = 400;
siteFeatures.ClientOnClickNavigateUrl = m_urlPrefix +
"_layouts/ManageFeatures.aspx";
siteAdmin.Controls.Add(siteFeatures);
// Site structure menu item
MenuItemTemplate siteStructure = new MenuItemTemplate();
siteStructure.Text = "Site structure";
siteStructure.ID = "siteStructure";
siteStructure.Description = "Site content and structure";
siteStructure.Sequence = 400;
siteStructure.ClientOnClickNavigateUrl = m_urlPrefix +
"_Layouts/sitemanager.aspx?Source=/_layouts/settings.aspx";
siteAdmin.Controls.Add(siteStructure);
return siteAdmin;
}
private SubMenuTemplate BuildSubMenuGalleries()
{
// Galleries submenu
SubMenuTemplate galleries = new SubMenuTemplate();
galleries.Text = "Galleries";
galleries.ID = "galleries";
galleries.Description = "View this site's galleries";
galleries.Sequence = 400;
// Master pages gallery menu item
MenuItemTemplate masterPagesGallery = new MenuItemTemplate();
masterPagesGallery.Text = "Master pages";
masterPagesGallery.ID = "masterPagesGallery";
masterPagesGallery.Description = "View the master pages gallery";
masterPagesGallery.Sequence = 400;
masterPagesGallery.ClientOnClickNavigateUrl = m_urlPrefix +
"_catalogs/masterpage/Forms/AllItems.aspx";
galleries.Controls.Add(masterPagesGallery);
// Site content types gallery menu item
MenuItemTemplate siteContentTypesGallery = new MenuItemTemplate();
siteContentTypesGallery.Text = "Site content types";
siteContentTypesGallery.ID = "siteContentTypesGallery";
siteContentTypesGallery.Description = "View the site content types gallery";
siteContentTypesGallery.Sequence = 400;
siteContentTypesGallery.ClientOnClickNavigateUrl = m_urlPrefix +
"_layouts/mngctype.aspx";
galleries.Controls.Add(siteContentTypesGallery);
// Site columns gallery menu item
MenuItemTemplate siteColumnsGallery = new MenuItemTemplate();
siteColumnsGallery.Text = "Site columns";
siteColumnsGallery.ID = "siteColumnsGallery";
siteColumnsGallery.Description = "View the site columns gallery";
siteColumnsGallery.Sequence = 400;
siteColumnsGallery.ClientOnClickNavigateUrl = m_urlPrefix +
"_layouts/mngfield.aspx";
galleries.Controls.Add(siteColumnsGallery);
return galleries;
}
private SubMenuTemplate BuildSubMenuLookAndFeel()
{
// Look and feel submenu
SubMenuTemplate lookAndFeel = new SubMenuTemplate();
lookAndFeel.Text = "Look and Feel";
lookAndFeel.ID = "lookAndFeel";
lookAndFeel.Description = "Modify this site's look and feel";
lookAndFeel.Sequence = 400;
// Title, description and icon menu item
MenuItemTemplate titleDescIcon = new MenuItemTemplate();
titleDescIcon.Text = "Title, description and icon";
titleDescIcon.ID = "titleDescIcon";
titleDescIcon.Description = "Set this site's title, description, icon";
titleDescIcon.Sequence = 400;
titleDescIcon.ClientOnClickNavigateUrl = m_urlPrefix +
"_layouts/prjsetng.aspx";
lookAndFeel.Controls.Add(titleDescIcon);
// Change master page menu item
MenuItemTemplate masterPage = new MenuItemTemplate();
masterPage.Text = "Master page";
masterPage.ID = "masterPage";
masterPage.Description = "Change this site's master page";
masterPage.Sequence = 400;
masterPage.ClientOnClickNavigateUrl = m_urlPrefix +
"_layouts/changesitemasterpage.aspx";
lookAndFeel.Controls.Add(masterPage);
// Navigation settings menu item
MenuItemTemplate navSettings = new MenuItemTemplate();
navSettings.Text = "Navigation";
navSettings.ID = "navSettings";
navSettings.Description = "Navigation settings";
navSettings.Sequence = 400;
navSettings.ClientOnClickNavigateUrl = m_urlPrefix +
"_layouts/areanavigationsettings.aspx";
lookAndFeel.Controls.Add(navSettings);
// More navigation options menu item
MenuItemTemplate navOptions = new MenuItemTemplate();
navOptions.Text = "Navigation options";
navOptions.ID = "navOptions";
navOptions.Description = "More navigation options";
navOptions.Sequence = 400;
navOptions.ClientOnClickNavigateUrl = m_urlPrefix +
"_layouts/navoptions.aspx";
lookAndFeel.Controls.Add(navOptions);
// Site theme menu item
MenuItemTemplate siteTheme = new MenuItemTemplate();
siteTheme.Text = "Site theme";
siteTheme.ID = "siteTheme";
siteTheme.Description = "Change site theme";
siteTheme.Sequence = 400;
siteTheme.ClientOnClickNavigateUrl = m_urlPrefix +
"_layouts/themeweb.aspx";
lookAndFeel.Controls.Add(siteTheme);
// Save site as template menu item
MenuItemTemplate saveTemplate = new MenuItemTemplate();
saveTemplate.Text = "Save site template";
saveTemplate.ID = "saveTemplate";
saveTemplate.Description = "Save this site as template";
saveTemplate.Sequence = 400;
saveTemplate.ClientOnClickNavigateUrl = m_urlPrefix +
"_layouts/savetmpl.aspx";
lookAndFeel.Controls.Add(saveTemplate);
return lookAndFeel;
}
private SubMenuTemplate BuildSubMenuUsersAndPermissions()
{
// Users and permissions submenu
SubMenuTemplate usersAndPermissions = new SubMenuTemplate();
usersAndPermissions.Text = "User and Permissions";
usersAndPermissions.ID = "usersAndPermissions";
usersAndPermissions.Description = "Set this site's users and permissions";
usersAndPermissions.Sequence = 400;
// People and Groups menu item
MenuItemTemplate peopleAndGroups = new MenuItemTemplate();
peopleAndGroups.Text = "People and groups";
peopleAndGroups.ID = "PeopleAndGroups";
peopleAndGroups.Description = "Manage people and groups";
peopleAndGroups.Sequence = 400;
peopleAndGroups.ClientOnClickNavigateUrl = m_urlPrefix +
"_layouts/people.aspx";
usersAndPermissions.Controls.Add(peopleAndGroups);
// Advanced permissions menu item
MenuItemTemplate advancedPermissions = new MenuItemTemplate();
advancedPermissions.Text = "Advanced permissions";
advancedPermissions.ID = "advancedPermissions";
advancedPermissions.Description = "Manage advanced permissions";
advancedPermissions.Sequence = 400;
advancedPermissions.ClientOnClickNavigateUrl = m_urlPrefix +
"_layouts/user.aspx";
usersAndPermissions.Controls.Add(advancedPermissions);
return usersAndPermissions;
}
}
}