如何将母版页应用于所有页面,sharepoint 2010

时间:2012-06-25 08:34:18

标签: sharepoint-2010

我在SP 2010中有一个门户网站,其中包含许多网站和子网站。 对于特定网站及其所有'子网站,我想应用相同的母版页,我是从Share-Point设计师2010中做到的。 问题是子站点中的页面不占用主页面,我是否必须手动更改它们? TIA。

1 个答案:

答案 0 :(得分:1)

您可以通过创建Site Scoped功能然后添加事件接收器,通过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();
}