SharePoint 2010: Obtener la lista de plantillas de sitio disponibles

Es posible que en algún momento necesitemos obtener un listado de las plantillas de sitio disponibles, como por ejemplo, a la hora de crear un sitio programáticamente. Para ello, SharePoint dispone dentro de la clase SPWeb del método GetAvailableWebTemplates que dispone de dos sobrecargas:

  • SPWeb.GetAvailableWebTemplates Method (UInt32): Nos permite obtener las plantillas de sitio de un lenguaje determinado por el parámetro “lcid” del tipo UInt32
  • SPWeb.GetAvailableWebTemplates Method (UInt32, Boolean): Además de las plantillas de sitio de un lenguaje determinado por el parámetro “lcid” del tipo UInt32, también nos permite obtener las plantillas en lenguaje neutral en caso de especificar un valor de true en su segundo parámetro “doIncludeCrossLanguage ”de tipo boolean, de lo contrario, sólo devolverá las plantillas del lenguaje especificado.

Su uso es el siguiente:

  • Para la primera sobrecarga:
uint LocaleId = 1033;
SPWebTemplateCollection templates = parentWeb.GetAvailableWebTemplates(LocaleId)

  • Para la segunda sobrecarga:
private uint LocaleId = 1033;
SPWebTemplateCollection templates = parentWeb.GetAvailableWebTemplates(LocaleId, true)

Como se puede apreciar, estoy estableciendo el lcid a 1033 que es el “id” correspondiente al inglés, de esta forma, obtendré la lista de plantillas en inglés

Si lo muestro en pantalla mediante un ComboBox, obtendré el siguiente resultado

NOTA: Es muy importante no olvidar que las plantillas están ligadas a los idiomas instalados en SharePoint 2010.