2012-06-25 3 views
1

У меня есть портал в SP 2010, который содержит много сайтов и подсайтов. На конкретный сайт и все его «подсайты» я хочу применить одну и ту же главную страницу, я сделал это из конструктора Share-Point 2010. Проблема в том, что страницы на подсайтах не принимают mater page, мне нужно изменить их вручную? TIA.Как применить основную страницу ко всем страницам, sharepoint 2010

ответ

1

Вы можете сделать это через Visual Studio, создав функцию Site Scoped, а затем добавив Event Receiver. В нем переопределите 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(); 
     } 
    } 

Alterantively вы могли бы изменить это по требованию, чтобы использовать интерфейс SharePoint PowerShell:

$site = get-spsite "http://sps2010/sitecoll" 
$site.AllWebs | foreach-object { ` 
      $_.CustomMasterUrl = "_catalogs/masterpage/custommasterpage.master"; 
      $_.SiteLogoUrl = "Style Library/Images/logo.gif"; 
      $_.Update(); 
}