SharePoint 2010: Personalización de la navegación (I)!

Uno de los elementos de un sitio de SharePoint que se puede personalizar de acuerdo a distintas técnicas es el menú de navegación vertical. En este primer artículo vamos a ver como se puede personalizar la navegación de un sitio mediante el modelo de objetos, vamos a utilizar un Feature Event Reciver:

  • En Visual Studio 2010 creamos un proyecto de tipo “Empty SharePoint Project” y elegimos como tipo de despliegue “Deploy as farm solution”.
  • Añadimos al proyecto una Feature que configuramos de forma que el ámbito de la misma sea “Web”.
  • Añadimos un Feature Event Receiver y añadimos una directiva using a Microsoft.SharePoint.Navigation.
  • Codificamos el método FeatureActivated() de la siguiente forma:
   1: public override void FeatureActivated(SPFeatureReceiverProperties properties)

   2: {

   3:     SPWeb spwWeb = (SPWeb)properties.Feature.Parent;

   4:     if (spwWeb != null)

   5:     {

   6:         SPNavigationNode spnNodo = null;

   7:         foreach (SPNavigationNode n in spwWeb.Navigation.QuickLaunch)

   8:         {

   9:             if (n.Title == "Aplicaciones")

  10:             {

  11:                 spnNodo = n; 

  12:                 break;

  13:             }

  14:         }

  15:         //Si no existe la sección...

  16:         if (spnNodo == null)

  17:         {

  18:             spnNodo = new SPNavigationNode("Aplicaciones","", false);

  19:             spwWeb.Navigation.QuickLaunch.AddAsFirst(spnNodo);

  20:         }

  21:         spnNodo.Children.AddAsFirst(

  22:             new SPNavigationNode(

  23:                 "Nóminas", 

  24:                 "Documentos%20compartidos/Aplicaciones.aspx", 

  25:                 false));

  26:     }

  27: }

  • Codificamos el método FeatureDeactivating() de la siguiente forma:
   1: public override void FeatureDeactivating(SPFeatureReceiverProperties properties)

   2: {

   3:     SPWeb spwWeb = (SPWeb)properties.Feature.Parent;

   4:     if (spwWeb != null)

   5:     {

   6:         SPNavigationNode spnNodo = null;

   7:         foreach (SPNavigationNode n in spwWeb.Navigation.QuickLaunch)

   8:         {

   9:             if (n.Title == "Aplicaciones")

  10:             {

  11:                 spnNodo = n; 

  12:                 break;

  13:             }

  14:         }

  15:         if (spnNodo != null)

  16:         {

  17:             SPNavigationNode spnNodoHijo = null;

  18:             foreach (SPNavigationNode n in spnNodo.Children)

  19:             {

  20:                 if (n.Title == "Nóminas")

  21:                 {

  22:                     spnNodoHijo = n; 

  23:                     break;

  24:                 }

  25:             }

  26:             if (spnNodoHijo != null)

  27:             {

  28:                 spnNodoHijo .Delete();

  29:  

  30:                 if (spnNodo.Children.Count == 1)

  31:                 {

  32:                     spnNodo.Delete();

  33:                 }

  34:             }

  35:         }

  36:     }

  37: }

  • Comprobamos que el menú de navegación se ha personalizad de acuerdo al código anterior:
image image

 

Y hasta aquí llega este primer artículo sobre como personalizar la navegación de un sitio de SharePoint.

Publicado por

Juan Carlos González

Juan Carlos es Ingeniero de Telecomunicaciones por la Universidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC). Cuenta con más de 12 años de experiencia en tecnologías y plataformas de Microsoft diversas (SQL Server, Visual Studio, .NET Framework, etc.), aunque su trabajo diario gira en torno a SharePoint & Office 365. Juan Carlos es MVP de Office Servers & Services desde 2015 (anteriormente fue reconocido por Microsoft como MVP de Office 365 y MVP de SharePoint Server desde 2008 hasta 2015), coordinador del grupo de usuarios .NET de Cantabria (Nuberos.Net, www.nuberos.es), co-fundador y coordinador del Grupo de Usuarios de SharePoint de España (SUGES, www.suges.es), así como co-director de la revista gratuita en castellano sobre SharePoint CompartiMOSS (www.compartimoss.com). Hasta la fecha, ha publicado 8 libros sobre SharePoint & Office 365 y varios artículos en castellano y en inglés sobre ambas plataformas.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *