Как обратиться к шаблону сайта SharePoint 2010 или найти его?

StackOverflow https://stackoverflow.com/questions/2211318

  •  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!

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