Changing MasterPage programmatically for site collection and sub-sites
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SharePoint;
namespace CustomMaster
{
public class ChangeMaster : Microsoft.SharePoint.SPFeatureReceiver
{
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
SPWeb CurrentWeb = properties.Feature.Parent as SPWeb;
CurrentWeb.MasterUrl = CurrentWeb.Site.RootWeb.ServerRelativeUrl + "/_catalogs/masterpage/MyDefault.master";
CurrentWeb.CustomMasterUrl = CurrentWeb.Site.RootWeb.ServerRelativeUrl + "/_catalogs/masterpage/custom.master";
CurrentWeb.Update();
foreach (SPWeb subweb in Web.GetSubwebsForCurrentUser())
{
ChangeMasterPage(subweb, pstrMasterURL, pstrCustomURL);
}
CurrentWeb.Dispose();
}
void ChangeMasterPage(SPWeb Web, string pstrMasterURL, string pstrCustomURL)
{
Web.MasterUrl = pstrMasterURL;
Web.CustomMasterUrl = pstrCustomURL;
Web.Update();
Web.Dispose();
}
public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
{
SPWeb CurrentWeb = properties.Feature.Parent as SPWeb;
CurrentWeb.MasterUrl = CurrentWeb.Site.RootWeb.ServerRelativeUrl + "/_catalogs/masterpage/default.master";
CurrentWeb.CustomMasterUrl = CurrentWeb.Site.RootWeb.ServerRelativeUrl + "/_catalogs/masterpage/default.master";
CurrentWeb.Update();
}
}
}
Comments
- Anonymous
May 04, 2008
PingBack from http://stevepietrek.com/2008/05/04/links-542008/