У меня есть портал в SP 2010, который содержит много сайтов и подсайтов. На конкретный сайт и все его «подсайты» я хочу применить одну и ту же главную страницу, я сделал это из конструктора Share-Point 2010. Проблема в том, что страницы на подсайтах не принимают mater page, мне нужно изменить их вручную? TIA.Как применить основную страницу ко всем страницам, sharepoint 2010
1
A
ответ
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();
}