GuilleSQL :: Microsoft SQL Server, SSIS, y más !!

Añadir un nuevo Botón al Ribbon de SharePoint 2010 con CustomActions


Muchas personalizaciones y extensiones de SharePoint 2010 las podremos llevar a cabo a través de las Acciones Personalizadas (Custom Actions), algo que podremos realizar desde Visual Studio 2010 y también desde SharePoint Designer 2010. En el presente artículo describimos la forma de añadir un botón al Ribbon de SharePoint 2010 a través de una Solución de Visual Studio 2010, para que aparezca sólo cuando estemos en una Librería de Documentos.

Las Acciones Personalizadas (Custom Actions) permiten personalizar y extender SharePoint 2010 de diferentes formas, como por ejemplo, para añadir botones al Ribbon, añadir opciones al menú contextual de un elemento de una Lista/Librería, y muchas cosas más. A continuación, vamos a ver un ejemplo, en este caso con Visual Studio, para añadir un botón en la sección Nuevo del Ribbon de cualquier Librería de Documentos que tengamos.

Algunos conceptos básicos para personalizar la botonera (Ribbon)

  • Los elementos de Ribbon debemos de definirlos siempre a través del lenguaje declarativo (XML), utilizando la etiqueta CustomAction.
  • Se sigue la jerarquía Ribbon > Tab > Group > Controls.
  • No pueden ocultarse y/o mostrarse controles individuales, para evitar la confusión al usuario.
  • No es posible añadir controles personalizados (ej: Controles ASCX personalizados).
  • La definición OOB del Ribbon se encuentra dispersa en varios ficheros de los servidores SharePoint, y muy especialmente en el fichero CMDUI.XML.

Crear una Acción Personalizada (Custom Action) desde Visual Studio 2010

Crearemos un nuevo Proyecto en Visual Studio 2010 de tipo Empty SharePoint Project, asegurándonos de seleccionar el Net Framework 3.5 y asignaremos el nombre que deseemos para el Proyecto (en nuestro caso, lo llamaremos CustomRibbon). En el Wizard para la creación del Proyecto, seleccionaremos la opción Deploy as a farm solution.

Seguidamente, añadiremos un nuevo elemento de tipo Empty Element a nuestro Proyecto de Visual Studio.

Añadiremos un nuevo elemento de tipo Empty Element a nuestro Proyecto de Visual Studio

Editaremos el fichero Elements.xml que acabamos de añadir, con un contenido como el que se muestra en la siguiente pantalla capturada.

Editaremos el fichero Elements.xml que acabamos de añadir

Es complicado poder explicar todas las opciones (etiquetas y atributos del XML), pero por hacer algún comentario:

  • El atributo Location del elemento CustomAction permite indicar cuál es la ubicación de la Acción Personalizada (Custom Action). Por ejemplo, el valor CommandUI.Ribbon referencia a la botonera (Ribbon).
  • El atributo Location del elemento CommandUIDefinition permite indicar el lugar exacto en el que deseamos ubicar la Acción Personalizada. Por ejemplo, si deseamos añadir un botón a la pestaña Documents, dentro de la sección New, deberemos especificar el valor Ribbon.Documents.New.Controls._children
  • El atributo RegistrationId permite indicar el identificador de la Lista/Librería sobre la que queremos realizar nuestra personlización. Por ejemplo, si ponemos el 101 se aplicará sobre cualquier Librería de Documentos, mientras que 100 sería para una Lista genérica (Generic List).
  • El atributo Template Alias permite indicar si se trata de un botón mediano (o2) o grande (o1).
  • El atributo CommandAction contiene el JavaScript que se ejecuta al presionar el botón.

Nos aseguraremos de que este nuevo elemento está incluida en la Característica (Feature) de nuestra Solución. Tras esto, compilar y desplegar, para finalmente observar el resultado: En las Librerías de Documetos, ya tenemos disponible un nuevo Botón.

Compilar y desplegar, para finalmente observar el resultado: En las Librerías de Documetos, ya tenemos disponible un nuevo Botón

Crear una Acción Personalizada (Custom Action) desde SharePoint Designer 2010

Con SharePoint Designer 2010 también podemos crear Acciones Personalizadas (Custom Actions), aunque en este caso, no tenemos tanta libertad como en Visual Studio, estando limitados a las posibilidades que nos brinda SharePoint Designer, sin poder editar a mano el XML con acceso a todos sus elementos y atributos.

Por ejemplo, si tenemos una Lista, podemos abrirla desde SharePoint Designer 2010, y crear una Acción Personalizada (Custom Action) en forma de un botón que aparezca en el formulario utilizado para añadir nuevos elementos a la Lista (este botón no aparecerá en ningún otro sitio).

Si tenemos una Lista, podemos abrirla desde SharePoint Designer 2010, y crear una Acción Personalizada (Custom Action) en forma de un botón

En el diálogo Create Custom Action de SharePoint Designer 2010, indicaremos los detalles de nuestra Acción Personalizada. En nuestro caso de ejemplo, deseamos mostrar un diálogo desde JavaScript.

En el diálogo Create Custom Action de SharePoint Designer 2010, indicaremos los detalles de nuestra Acción Personalizada

Seguidamente, podremos comprobar que al añadir un nuevo elemento a la Lista, aparece el nuevo botón que acabamos de crear (Hello World), y si hacemos click sobre él, se muestra un diálogo, tal y como esperábamos.

Seguidamente, podremos comprobar que al añadir un nuevo elemento a la Lista, aparece el nuevo botón que acabamos de crear

Despedida y Cierre

Hasta aquí llega el presente artículo, en el que hemos querido hacer una breve introducción a las Acciones Personalizadas (Custom Actions) de SharePoint 2010. A continuación se incluyen algunos enlaces de interés, para quien desee ampliar más información:

Poco más por hoy. Como siempre, confío que la lectura resulte de interés.

 


Miembros de
Miembros de GITCA (Global IT Community Association)

Menu de Usuario
  Iniciar Sesión
  Registrarse
  Restablecer Contraseña
  Ventajas de Registrarse

Acerca de
  Contigo desde Oct 2007
  771 usuarios registrados
  86146 pageloads/mes
  Ranking Alexa 498160

Social Networks
Sigue a Portal GuilleSQL en Linkedin !!
Sigue a Portal GuilleSQL en Twitter !!



Archivo

Marzo de 2019 (1)
Octubre de 2018 (1)
Julio de 2018 (1)
Junio de 2018 (4)
Mayo de 2018 (5)
Abril de 2018 (3)
Marzo de 2018 (2)
Febrero de 2018 (7)
Enero de 2018 (1)
Diciembre de 2017 (15)
Noviembre de 2017 (7)
Junio de 2017 (3)
Mayo de 2017 (1)
Marzo de 2017 (3)
Enero de 2017 (4)
Junio de 2016 (1)
Mayo de 2016 (2)
Abril de 2016 (2)
Septiembre de 2015 (2)
Agosto de 2015 (2)
Junio de 2015 (10)
Mayo de 2015 (4)
Abril de 2015 (8)
Marzo de 2015 (11)
Octubre de 2014 (3)
Septiembre de 2014 (7)
Agosto de 2014 (5)
Julio de 2014 (2)
Mayo de 2014 (4)
Abril de 2014 (4)
Marzo de 2014 (4)
Febrero de 2014 (1)
Enero de 2014 (5)
Diciembre de 2013 (8)
Noviembre de 2013 (2)
Octubre de 2013 (7)
Septiembre de 2013 (6)
Agosto de 2013 (1)
Julio de 2013 (6)
Junio de 2013 (11)
Mayo de 2013 (7)
Abril de 2013 (6)
Febrero de 2013 (5)
Enero de 2013 (7)
Diciembre de 2012 (12)
Noviembre de 2012 (13)
Octubre de 2012 (5)
Septiembre de 2012 (3)
Agosto de 2012 (6)
Julio de 2012 (4)
Junio de 2012 (1)
Mayo de 2012 (2)
Abril de 2012 (7)
Marzo de 2012 (16)
Febrero de 2012 (9)
Enero de 2012 (5)
Diciembre de 2011 (10)
Noviembre de 2011 (10)
Octubre de 2011 (4)
Septiembre de 2011 (5)
Agosto de 2011 (2)
Julio de 2011 (2)
Junio de 2011 (4)
Mayo de 2011 (2)
Abril de 2011 (6)
Marzo de 2011 (4)
Febrero de 2011 (10)
Enero de 2011 (5)
Diciembre de 2010 (6)
Noviembre de 2010 (4)
Octubre de 2010 (8)
Septiembre de 2010 (4)
Agosto de 2010 (1)
Julio de 2010 (3)
Mayo de 2010 (5)
Abril de 2010 (6)
Marzo de 2010 (8)
Febrero de 2010 (3)
Enero de 2010 (1)
Diciembre de 2009 (9)
Noviembre de 2009 (14)
Octubre de 2009 (2)
Septiembre de 2009 (8)
Agosto de 2009 (2)
Julio de 2009 (10)
Junio de 2009 (9)
Mayo de 2009 (10)
Abril de 2009 (9)
Marzo de 2009 (3)
Febrero de 2009 (2)
Enero de 2009 (3)
Noviembre de 2008 (2)
Octubre de 2008 (2)
Septiembre de 2008 (2)
Agosto de 2008 (5)
Julio de 2008 (5)
Junio de 2008 (1)
Mayo de 2008 (3)
Abril de 2008 (2)
Marzo de 2008 (2)
Febrero de 2008 (2)
Enero de 2008 (5)
Noviembre de 2007 (2)
Octubre de 2007 (2)






Copyright © 2007 GuilleSQL, todos los derechos reservados.