1

多くのサイトとサブサイトを含む SP 2010 のポータルがあります。特定のサイトとそのすべてのサブサイトに同じマスター ページを適用したいのですが、Share-Point Designer 2010 から実行しました。問題は、サブサイトのページがマスター ページを取得しないことです。 、手動で変更する必要がありますか? ティア。

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 に答える