« - »

Fragmentos de código: Crear sitios a partir de plantillas

Miércoles, 25 de julio de 2007

Crear un sitio a partir de una plantilla programáticamente es bastante sencillo:

   1: public static void CrearSitio(string urlWebPadre,string NombrePlantilla,string urlRelativaNuevoSitio, string Titulo, string Descripcion, bool EliminarSiExiste)
   2: {
   3:     SPSite siteTop = new SPSite(urlWebPadre);
   4:     SPWeb siteRoot = siteTop.OpenWeb();
   5:     SPWebCollection myWebs = siteRoot.Webs;
   6:     //Obtenemos colección de plantillas
   7:     SPWebTemplateCollection webTemplateCollection = siteTop.GetCustomWebTemplates(3082);
   8:     //Obtenemos plantilla deseada
   9:     SPWebTemplate webTemplate = webTemplateCollection[NombrePlantilla];
  10:     //Eliminamos si existe
  11:     if (EliminarSiExiste && myWebs[urlRelativaNuevoSitio].Exists)
  12:     {
  13:         myWebs.Delete(urlRelativaNuevoSitio);
  14:     }
  15:     //Creamos sitio:            
  16:     myWebs.Add(urlRelativaNuevoSitio, Titulo, Descripcion, 3082, webTemplate, true, false);
  17: }

Lo único que debemos fijarnos un poco más será en el "número del idioma" de la plantilla. En el caso del español usaremos el 3082 en el método para obtener la colección de plantillas y en la llamada Webs.Add() (líneas 7 y 16). Si vamos a usar una plantilla en inglés, sustituiremos este número por 1033.

El nombre de la plantilla lo deberemos pasar sin la extensión .stp


Dejar una respuesta

Dark traducido por Reproduccion Asistida Inspirado en: Bloggerlounge & Arquitectura