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"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<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