Как обратиться к шаблону сайта SharePoint 2010 или найти его?
-
18-09-2019 - |
Вопрос
Я создал шаблон сайта на основе базового сайта, который сам был создан на основе базового шаблона сайта team.Теперь я хотел бы использовать этот шаблон сайта за пределами сети, где он был создан, чтобы он действовал как глобальный шаблон.
Например, я хотел бы, чтобы мой новый шаблон отображался в списке шаблонов, отображаемом get-spwebtemplate, или скопируйте stp-файл в систему тестирования и создайте там новый сайт, используя прилагаемый шаблон.
Возможно ли это?Если это невозможно, каков правильный для sharepoint способ?
(С использованием SharePoint 2010 Server RC)
Спасибо!
Решение
Я верю, что теперь я знаю, как это сделать.Я был бы благодарен любому, кто посоветует "правильный" способ сделать это, потому что этот процесс кажется немного странным.
Используя пользовательский интерфейс, вы можете создать веб-сайт, используя стандартный шаблон в семействе веб-сайтов, и настроить его, добавив к нему фрагменты и удалив ненужные элементы.Затем, выбрав веб-сайт, который вы хотите использовать в качестве шаблона, в качестве администратора выберите "Настройки сайта", а затем "Сохранить сайт как шаблон", где затем вы можете назначить имя файла, понятное название и описательный текст.При выполнении этого результирующий шаблон, очевидно, помещается в базу данных и создается ссылка, которая находится в списке "Решения" также на странице настроек сайта.(Если вы посетите список "Решения", вы можете щелкнуть по шаблону и сохранить его как локальный файл, который затем можно загрузить на другой сайт, что очень полезно).
Достаточно хорошо известно, что вы можете создать сайт в коде, добавив новый веб в веб-коллекцию сайта, которая выглядит следующим образом:
SPWeb newWeb = subSite.Webs.Add(
"pathtoweb",
"Title of New Web",
"Web Description",
1033,
template,
false, false);
где 'template' здесь - это экземпляр SPWebTemplate, который вы хотите использовать.Если это один из стандартных шаблонов, вы обычно можете ссылаться на них по имени, например, "STS # 0" и так Далее вместо ссылки на шаблон, показанной здесь.Вопрос в том,:как получить имя настроенного шаблона, чтобы использовать его в вызове API.
Чтобы найти "имя" созданного шаблона, я использовал PowerShell следующим образом
$x = get-spsite http://machine/managedpath/sitecollectionname
$x.GetWebTemplates(1033)
который сбросил все шаблоны на этом дочернем сайте и включил мои измененные шаблоны в конце с не очень удобными именами, которые я скопировал и вставил в свою программу на C #.
Я не рассматривал здесь все перестановки, например, вы, вероятно, можете просто использовать имя на основе GUID в .Вызов Add, но, если быть точным, это последовательность, которая сработала для меня.Я бы хотел услышать, что это безумие - пожалуйста, дайте мне знать что-нибудь более элегантное:
// or any of the other hundred ways to do this...
SPSite s = new SPSite("your url here");
SPWeb subSite = s.RootWeb;
// 1033 is the locale id for English
SPWebTemplateCollection wtc = s.GetWebTemplates(1033);
// use the name for the index
SPWebTemplate template =
wtc["{8925048C-DF71-guidguidguidguid}#MyTemplate"];
SPWeb newWeb = subSite.Webs.Add(
"pathtoweb",
"Title of New Web",
"Web Description",
1033,
template,
false, false);
SharePoint!