2010-02-05 7 views
0

Я создал шаблон сайта с базового сайта, который был создан из основного шаблона сайта команды. Теперь я хотел бы использовать этот шаблон сайта вне Интернета, где он был создан, поэтому он действует как глобальный шаблон.Как найти/найти шаблон сайта SharePoint 2010?

Например, я хочу, чтобы мой новый шаблон появлялся в списке шаблонов, показанном get-spwebtemplate, или копировал файл 'stp' в систему тестирования и создавал новый сайт там, используя связанный шаблон.

Возможно ли это? Если это невозможно, каков правильный подход?

(Использование SharePoint 2010 Server RC)

спасибо!

+1

Там есть RC для SharePoint 2010? – Flo

ответ

0

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

Используя пользовательский интерфейс, вы можете создать веб-сайт с использованием шаблона запаса в семействе сайтов и настроить его, добавив в него кусочки и удалив ненужные вещи. Затем, выбрав веб-сайт, который вы хотите использовать в качестве шаблона, в качестве администратора, выберите «Настройки сайта», а затем «Сохранить сайт как шаблон», где вы можете назначить имя файла, дружественное имя и описательный текст. Выполнение этого помещает полученный шаблон в базу данных, очевидно, и создает ссылку, которая находится в списке «Решения» также на странице «Настройки сайта». (Если вы посетите список «Решения», вы можете щелкнуть по шаблону и сохранить его в виде локального файла, который затем может быть загружен на другой сайт, что полезно).

Это достаточно хорошо известно, что вы можете создать сайт в коде путем добавления нового Интернет для сбора веб-сайта, который выглядит следующим образом:

SPWeb newWeb = subSite.Webs.Add(
       "pathtoweb", 
       "Title of New Web", 
       "Web Description", 
       1033, 
       template, 
       false, false); 

где «шаблон» здесь экземпляр из 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!

Смежные вопросы