lunes, 11 de octubre de 2010

Content Query WebPart mejorado

Bienvenidos de nuevo a mi blog, donde hoy voy a comentaros las mejoras que aporta el Content Query WebPart (CQWP) en SharePoint 2010.

Sin duda este fue uno de los WebParts más utilizados en la versión 2007, debido a que su funcionalidad se basa en mostrar roll-ups de tipos de contenido ubicados en diversas zonas del site collection, haciendolo ideal para las "homepages" de todas nuestras intranets y muchas de sus páginas resumen. Por ejemplo podíamos mostrar "todas las tareas pendientes de todos los subsitios".

Sin embargo, uno de los quebraderos más grandes de cabeza que muchos habremos sufrido con MOSS 2007 era cómo conseguir representar la información del CQWP exactamente como deseábamos, con el formato, el contenido y la estructura que nuestros clientes solicitaban. Normalmente se solventaba o convenciendo al cliente de que el out of the box de SharePoint tan solo permitia "eso", o recurriendo a soluciones de terceros o formateando XSL y CSS para cada CQWP que se nos ponía a tiro.
Pues bien, SharePoint 2010 nos ofrece un CQWP mejorado en algunos aspectos, que realmente vienen a ampliar la potencia y facilidad de uso del WebPart, aunque tranquilos, que los conocimientos de XSL aprendidos en 2007 también nos van a servir en 2010 y no los vamos a olvidar (aunque sin duda nos dará algo más de descanso).

Centrándonos en las mejoras del Content Query Web Part, estas son las siguientes.

Capacidad para consultar información "Content to Content", que viene especificada por dos nuevos parámetros de filtrado en las consultas:

1.-PageQueryString token: Ofrece la posibilidad de filtrar los resultados de la consulta utilizando el valor de un parámetro contenido en la URL de la propia página. Para utilizarlo hay que escribir [PageQueryString:PARAMETRO] en los filtros de consulta del CQWP y el propio WebPart sustituirá la cadena con el valor del campo especificado.

2.-PageFieldValue token: Ofrece la posibilidad de filtrar los resultados de la consulta utilizando el valor de otro campo en la misma página. Para utilizarlo hay que escribir [PageFieldValue:NOMBREDELCAMPO] en los filtros de consulta del CQWP, y el propio WebPart sustiturá la cadaena con el valor del campo especificado.

3.-Slots: Un slot es una marca en la plantilla del Item Style que puede ser rellenada con el contenido en tiempo real. El Content Query Web Part permite establecer mapeos entre los slots y los campos que utiliza el panel de propiedades, permitiendo crear plantillas de consulta mucho más reutilizables. Expresado de otra forma, también se podría decir que un slot es un "espacio" o "hueco" definido en un fichero XSL que define un tipo de dato y reserva esa posición del mismo para cada una de las instancias que sean invocadas sobre la plantilla definida del propio XSL.

En la práctica, los slots se consiguen añadiendo nuevas secciones en el fichero "ItemStyle.xsl", tal y como hacíamos en la versión 2007, pero con la ventaja de que podremos reutilizar las definiciones que hacemos en dicho fichero tantas veces como queramos. ¿Cómo? Una vez añadamos nuestras secciones personalizadas en el "ItemStyle.xsl", el propio panel de configuración del Content Query WebPart, nos dejará seleccionar el parámetro "Item Style", que leerá todas las secciones definidas de ese fichero.

En cuanto seleccionemos un estilo deteminado, veremos que a continuación nos deja elegir la configuración de todos los "slots" o metadatos que tengamos definidos en el "ItemStyle.xsl" para ese estilo concreto.

De esta forma, el Content Query WebPart de SharePoint 2010 permite invocar esas plantillas definidas (una única vez), y parametrizar cada slot contenido en ellas, para asignar los valores concretos (metadatos o columnas de listas) a cada uno de ellos, consiguiendo así reutilizar la definión del XSL en múltiples instancias del CQWP (tantas veces como se quiera) y utilizando metadatos distintos para los slots segun la lista sobre la que realicemos la consulta.

El resto continuará dependiendo de lo hábiles que seamos manejando el fichero xsl y el css. Un ejemplo de resultado puede ser la siguiente imagen:


 Por útlimo comentar que el CQWP también se integra con las características sociales de tagging (Etiquetado), mostrándonos como opciones de filtrado etiquetas contenidas en el servicio de metadatos administrados. Y no olvidemos, que, tal y como pasaba en 2007, el CQWP es fácilmente extensible, para conseguir mediante código .NET realizar algunas carencias que todavía tiene el WebPart, como por ejemplo, la paginación de elementos (no se incluye tampoco por defecto en 2010).

Con esto ya me despido. Un saludo y ¡¡Hasta la próxima!!

1 comentario:

Anónimo dijo...

Hola Ignasi,

Estoy modificando un CQWP modifique el archivo itemstyle.xsl para manejar la apariencia pero no encuentro donde esta el archivo css para agregar el estilo que deseo aplicar. Debo modificar alguna hoja de css generica?? Por ultimo el encabezado del CQWP donde se puede modificar su estilo.

Me puedes dar una mano con esto,

Muchas gracias