lunes, 11 de abril de 2016

Crear una Master Page en SharePoint 2010 utilizando Visual Studio y C#

Introducción

En este breve artículo veremos cómo trabajar con páginas maestras de SharePoint 2010 utilizando Visual Studio. En este caso no le daremos participación a SharePoint Designer, ya que se trata de un proyecto desarrollado completamente en Visual Studio y desplegado mediante paquetes WSP.

Nota: para una opción con SharePoint Designer, consultar este link http://surpoint.blogspot.com.ar/2013/08/diseno-grafico-en-sharepoint-foundation.html


Paso 1 - Página maestra base

El primer paso será tomar una página maestra base. Podemos trabajar por ejemplo con la minimal.master de catálogo de páginas maestras u optar por una opción de codeplex en: http://startermasterpages.codeplex.com/

En este caso usaremos la v4.aster. Vamos a la galería y la descargamos.




Paso 2 - Creación del módulo

Dentro de Visual Studio agregamos un nuevo ítem al proyecto, en este caso un módulo:



Luego eliminamos sample.txt



Y subimos nuestra página maestra (la del paso 1)



Elements.xml quedará así:



Modificamos Elements.xml como muestra la imagen para aseguramos que quedé en el cache.



Código final:

<?xml version="1.0" encoding="utf-8"?>
  <Module Name="ModuleMasterPageSitioProyecto" List="116" Url="_catalogs/masterpage">
  <File Path="ModuleMasterPageSitioProyecto\PaginaMaestraSitioProyecto.master" Url="PaginaMaestraSitioProyecto.master" Type="GhostableInLibrary"/>
</Module>
</Elements>


Paso 3 - Feature

En el tercer paso creamos una feature se Scope Web y le incorporamos el módulo creado en el paso anterior.



Veremos que se incorporará automáticamente a nuestro paquete de despliegue:




Paso 4 - Evento de la feature

Agregamos el evento para activar y desactivar la feature y de esta forma asignar la página maestra:



Así queda el código:

namespace EMP_Procesos.Features.EMP_Pagina_Maestra_Sitio_Proyecto
{

    [Guid("blabla")]

    public class EMP_Pagina_Maestra_Sitio_ProyectoEventReceiver : SPFeatureReceiver
    {

        public override void FeatureActivated(SPFeatureReceiverProperties properties)
        {
            SPWeb currentWeb = (SPWeb)properties.Feature.Parent;
            currentWeb.MasterUrl = "/_catalogs/masterpage/PaginaMaestraSitioProyecto.master";
            currentWeb.CustomMasterUrl = "/_catalogs/masterpage/PaginaMaestraSitioProyecto.master";
            currentWeb.Update();
        }

        public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
        {
            SPWeb currentWeb = (SPWeb)properties.Feature.Parent;
            currentWeb.MasterUrl = "/_catalogs/masterpage/v4.master";
            currentWeb.CustomMasterUrl = "/_catalogs/masterpage/v4.master";
            currentWeb.Update();
        }
    }
}


Paso 5 - Verificación de despliegue

En el catálogo de páginas maestras, debe aparecer:



También debe aparecer la característica:



Para este ejemplo, hicimos un cambio menor en la página maestra para verificar el funcionamiento:

<SharePoint:DeveloperDashboard runat="server" />
            <div id="sitio_footer">Pie de ejemplo</div>
</div>

El resultado es:



Bibliografía


0 comentarios:

Publicar un comentario