SP2010 Сбросьте все субситы, чтобы наследовать мастер -страницу с помощью C#

sharepoint.stackexchange https://sharepoint.stackexchange.com/questions/8151

Вопрос

Я создаю приемную функцию сайта, которая устанавливает пользовательскую главную страницу в корневой сети. Я также хотел бы, чтобы главная страница, установленная на корне, была унаследована для всех дослуг. Как наиболее элегантный способ обеспечить это (используя .NET)?

(Очевидно, я мог бы повторить все дослуги и установить их вручную ..)

Это было полезно?

Решение

Есть более простой способ сделать это, используя API SharePoint:

SPWeb web = SPContext.Current.Web;
PublishingWeb publishingWeb = PublishingWeb.GetPublishingWeb(web);
publishingWeb.CustomMasterUrl = "/_catalogs/masterpage/mycustom.master";
publishingWeb.CustomMasterUrl.SetInherit(true, true);
publishingWeb.Update();

Другие советы

Я думаю, что лучшее, что мы можем сделать, это что -то вроде следующего в методе FeatureActivativated.

foreach (SPWeb site in siteCollection.AllWebs) 
{
  site.MasterUrl = "/_catalogs/masterpage/mycustom.master";
  site.CustomMasterUrl ="/_catalogs/masterpage/mycustom.master";
  site.Update();
  site.Dispose();
}
private void SetMaster(SPWeb web, string masterpagePath, string custommasterpagePath) 
{
    web.CustomMasterUrl = masterpagePath;
    web.MasterUrl = custommasterpagePath;
    web.Update();

    foreach(SPWeb child in web.Webs) 
    {
        try {
            SetMaster(child, masterpage, custommasterpage);
        } 
        finally
        {
            if(child != null) child.Dispose();
        }
    }
}

Назовите это, проходя через Spsite.rootweb и укажите путь к своим главным страницам. Это будет вспоминаться о всех сайтах ниже этой rootweb в коллекции сайтов (т.е. все они!)

Обратите внимание, что вам может потребоваться подумать, используют ли на приведенные ниже сайты сайты разные мастер -страницы в качестве Это может вызвать проблемы, особенно с рабочими рабочими местами, но, возможно, другими.

Вам также может понадобиться рассмотреть Хранение оригинальных деталей мастер -страниц в сумке недвижимости Для Интернета, чтобы вы могли восстановить их позже (например, деактивация функции)

И вы можете пожелать Убедитесь, что темы выключены И не мешайте вашему внешнему виду.

http://msdn.microsoft.com/en-us/library/gg447066(v=office.14).aspx

Это предоставит детские дочерние ресивер, взяв мастер -страницу сайта Toplevel ...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top