Translate

miércoles, 16 de mayo de 2012

¿Cómo aprovisionar contenido en páginas?

Para aprovisionar de webparts una página que ya tenemos creada en Sharepoint, lo primero que tenemos que hacer, es identificar las zonas donde vamos a ubicar los webparts seleccionados para desarrollar el ejemplo.

En este caso en concreto vamos a utilizar las zonas (superiorDerecha, superiorIzquierda,footer y sidebar), que son las zonas que tenemos dadas de alta en nuestro Layout. Para identificar estos valores tenemos que buscar en el código fuente del Layout todos los webpartZones que tenemos, esto podremos hacerlo abriendo designer y visualizando la plantilla. Nota: Recuerda que lo que necesitamos son los identificadores de las zonas.

El código necesario para aprovisionar la página lo vamos a colocar en un EventReceiver dentro de nuestra feature.(Pulsando con el botón derecho del ratón sobre la feature).




public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
   using (SPSite site = new SPSite(((SPWeb)properties.Feature.Parent).Site.ID))
   {      using (SPWeb web = site.OpenWeb("URLDELSITE"))
          {
            ProvisioningHome(web, "index.aspx");

          }
   }
}

private void ProvisioningHome(SPWeb web, string PageUrl)

{
   SPLimitedWebPartManager webParts = web.GetLimitedWebPartManager(PageUrl,
System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared);


    //EDITOR DE CONTENIDO      
   ContentEditorWebPart ContentEditorSidebar = new ContentEditorWebPart();
   XmlDocument xmlDoc = new XmlDocument();
   XmlElement xmlContent = xmlDoc.CreateElement("MyElement");
   xmlContent.InnerText = @"TEXTO DE PRUEBA";
   ContentEditorSidebar.Content = xmlContent;
   ContentEditorSidebar.ChromeType = System.Web.UI.WebControls.WebParts.PartChromeType.None;

   ContentEditorSidebar.ChromeState = System.Web.UI.WebControls.WebParts.PartChromeState.Normal;
   webParts.AddWebPart(ContentEditorSidebar, "g_BEAA2A68F8D94E7DA072E8E5F2A4719B", 0);
   webParts.SaveChanges(ContentEditorSidebar);


  //Vista de una lista 
   SPList listaHelp =
   web.Site.OpenWeb("URLDELALISTA\Allitems.aspx").Lists["NOMBREDELALIASTA"];
   string viewId = listaHelp.Views["NOMBREDELAVISTA"].ID.ToString();
   XsltListViewWebPart viewWebPartHelpAsignadas = new XsltListViewWebPart();
   viewWebPartHelpAsignadas.AllowEdit = true;
   viewWebPartHelpAsignadas.WebId = listaHelp.ParentWeb.ID;
   viewWebPartHelpAsignadas.ListId = listaHelp.ID;
   viewWebPartHelpAsignadas.ViewGuid = viewId;
   viewWebPartHelpAsignadas.ChromeType =  System.Web.UI.WebControls.WebParts.PartChromeType.None;

   viewWebPartHelpShareAsignadas.ChromeState = System.Web.UI.WebControls.WebParts.PartChromeState.Normal;
   webParts.AddWebPart(viewWebPartHelpAsignadas,  "g_BEAA2A68F8D94E7DA072E8E5F2A4719B", 1);
   webParts.SaveChanges(viewWebPartHelpAsignadas);
                         

    //Consulta de contenido       
   SPList listaContactos = web.Lists["NOMBREDELALISTA"];
   ContentByQueryWebPart cqWebPart = new ContentByQueryWebPart();
   cqWebPart.Title = "Contactos";
   cqWebPart.WebUrl = web.ServerRelativeUrl;
   cqWebPart.ListName = listaContactos.Title;
   cqWebPart.ListId = listaContactos.ID;
   cqWebPart.ChromeType = System.Web.UI.WebControls.WebParts.PartChromeType.None;
   cqWebPart.ChromeState = System.Web.UI.WebControls.WebParts.PartChromeState.Normal;
   webParts.AddWebPart(cqWebPart, "g_BEAA2A68F8D94E7DA072E8E5F2A4719B", 3);   
   webParts.SaveChanges(cqWebPart);

}

No hay comentarios:

Publicar un comentario