¿Qué es el nuevo Content Relation Engine (CRE) de OpenCms?

25/06/2009       Technology for Solutions       OpenCms

Con el lanzamiento de OpenCms 7.5 aparece una nueva funcionalidad en el corazón del producto: relaciones. Esta funcionalidad es la respuesta a una necesidad recurrente de muchos administradores de contenidos:

  1. publicar recursos y sus dependencias
  2. actualizar de forma automática las relaciones al mover recursos

Con versiones anteriores de OpenCms, estos dos temas no estaban totalmente resueltos. Por ejemplo, al asociar una imagen a una página, teníamos que publicar por un lado la página y por otro lado la imagen.
 

A partir de la incorporación del motor de relaciones, OpenCms se ocupa de forma automática de publicar los recursos con sus relaciones asociadas y mantener las referencias actualizadas en el caso de que un recurso relacionado se mueva o renombre dentro del sistema de archivos (VFS).

Al momento de borrar un recurso dentro del sistema, esto puede generar vínculos rotos. OpenCms reporta de forma automática de esta situación al editor de contenidos. A su vez, muestra en el dialogo de publicación un listado de los recursos con problemas para su solución. Opcionalmente, podemos pedirle a OpenCms que remueva los vínculos a recursos inexistentes.

OpenCms distingue entre dos tipos de relaciones:

  • vínculos débiles
  • vínculos fuertes

Los vínculos débiles serán solo reportados por OpenCms cuando queden invalidados por una operación de borrado o por un proceso de publicación. Por ejemplo, vínculos dentro del contenido (anchor links) son interpretados por OpenCms como vínculos débiles.

Por otro lado, el motor de relaciones se asegura de forma automática que los vínculos fuertes sean publicados junto con el contenido al cual están vinculados. No obstante, este comportamiento por defecto puede ser desactivado. Por ejemplo, OpenCms reconoce por defecto como vínculos fuertes a las imágenes y otros objetos embebidos dentro de una página dado que la visualización de ese contenido se ve directamente afectada por la ausencia de sus vínculos.

Desde el punto de vista del desarrollo, el motor de contenidos nos permite:

  • definir para los contenidos XML, el tipo de vínculos y que acciones tomar en caso de que el vínculos se vuelva inválido
  • utilizar vínculos fuertes como parte de las directivas de inclusión de una JSP (esto resuelve el problema de inclusiones fallidas)
  • obtener las relaciones de un recurso programáticamente desde la API de OpenCms. El CmsObject contiene nuevos métodos para agregar relaciones, obtener relaciones y borrar relaciones.

A nivel de interfaz, OpenCms ofrece una opción nueva en el menú contextual para visualizar y administrar las relaciones donde podemos definir “Vínculos a” (link to) y “Vínculos desde” (link from). La lista de relaciones puede imprimirse y contiene: tipo de recurso, información sobre el vínculo roto, tipo de relación, ruta del recurso, título y tamaño.

Finalmente, el nuevo motor de relaciones nos permite definir los TIPOS de relaciones posibles (CmsRelationType). Por defecto, contamos con HIPERVINCULO, IMAGEN EMBEBIDA, OBJETO EMBEBIDO, XML FUERTE, XML DÉBIL, JSP FUERTE, JSP DÉBIL, RECURSO OU.