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.
Editaremos el fichero Elements.xml que acabamos de añadir, con un contenido como el que se muestra en la siguiente pantalla capturada.
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.
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).
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.
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.
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.