我在 SP 2010 中有一个门户,其中包含很多站点和子站点。对于特定站点及其所有子站点,我想应用相同的母版页,我是从 SharePoint 设计器 2010 中完成的。问题是子站点中的页面不采用母版页,我必须手动更改它们吗?TIA。
问问题
1331 次
1 回答
1
您可以通过 Visual Studio 执行此操作,方法是创建站点范围功能,然后添加事件接收器。在其中,覆盖 FeatureActivated 以将客户母版页应用于网站集中的每个网站。这是我使用的一个片段:
var siteCollection = properties.Feature.Parent as SPSite;
if (siteCollection == null)
return;
foreach (SPWeb site in siteCollection.AllWebs)
{
using (site)
{
site.CustomMasterUrl = webAppRelativePath +
"_catalogs/masterpage/custommasterpage.master";
site.SiteLogoUrl = webAppRelativePath +
"Style Library/Images/logo.gif";
site.Update();
}
}
或者,您可以按需修改此以使用 SharePoint PowerShell 界面:
$site = get-spsite "http://sps2010/sitecoll"
$site.AllWebs | foreach-object { `
$_.CustomMasterUrl = "_catalogs/masterpage/custommasterpage.master";
$_.SiteLogoUrl = "Style Library/Images/logo.gif";
$_.Update();
}
于 2012-06-26T05:25:50.687 回答