1

我在 SP 2010 中有一个门户,其中包含很多站点和子站点。对于特定站点及其所有子站点,我想应用相同的母版页,我是从 SharePoint 设计器 2010 中完成的。问题是子站点中的页面不采用母版页,我必须手动更改它们吗?TIA。

4

1 回答 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 回答