1 Diciembre 2016

¿Cuándo usar tipos de contenidos, taxonomías y custom entities en Drupal?

Si no tienes mucha experiencia con Drupal es fácil liarse con la terminología y no saber bien cuál es la diferencia entre estos 3 conceptos. Drupal permite organizar y mostrar la información usando diferentes mecanismos: contenidos, taxonomías y entidades. Es sencillo el confundirse con ellos ya que se solapan en muchos aspectos. Los tres pueden tener metadatos y URLs asociadas, se les puede añadir campos y pueden ser mostrados de diferentes formas a los usuarios.

En este artículo vamos a intentar despejar algunas dudas con respecto a que son cada uno estos mecanismos y cuando debemos usarlos.

Tipos de contenidos

Dicho de una manera sencilla, un tipo de contenido es la manera de representar los diferentes tipos de contenidos que vamos a publicar en nuestra página web. Por ejemplo, si nuestra web es un blog un tipo de contenido serán los artículos. Los tipos de contenido tienen normalmente un autor, una fecha de publicación, puede tener un enlace de menú y tener algún workflow asociado. Pueden representar cualquier cosa, desde una página básica a un artículo de blog o un evento, cada uno de los cuales tendrá unos campos asociados.

A la hora de definir los tipos de contenido que vamos a definir lo ideal es trabajar con el cliente mediante algunos ejercicios de mapeo. Las primeras preguntas a contestar deben ser:

  • ¿Cuáles son los objetivos o necesidades del usuario?
  • ¿Cómo podemos satisfacer esos objetivos o necesidades?
  • ¿Qué serie de acciones o interacciones se tienen que dar en la web para que el cliente llegue a satisfacer esa necesidad o logre lo que necesita?

Una vez que hemos definido esas interacciones o transacciones es sencillo definir los tipos de contenido que necesitamos. Veámoslo más claro con un ejemplo. Si los usuarios necesitan registrarse a unos cursos y nosotros podemos satisfacer esto mediante un sistema de registro online, seguramente uno de los tipos de contenido que necesitemos sea un formulario de registro.

Además tenemos que plantearnos otras cuestiones para ayudarnos a determinar si los datos que tenemos disponibles deberían estar representados en Drupal usando un tipo de contenido:

  • ¿Van estar varias personas envueltas en el proceso de crear, revisar o administrar este contenido?
  • ¿Necesita el contenido algún tipo de flujo de trabajo a la hora de ser creado, revisado o administrado?
  • ¿Será necesario controlar quien accede al contenido o a parte de este?
  • ¿Va a necesitar tener metadatos asociados (para SEO por ejemplo)?

Taxonomías

Las taxonomías son unos objetos de Drupal que sea usan para categorizar contenidos usando un vocabulario compartido. El ejemplo más claro son las etiquetas de un blog. Casi todos los softwares de blogging nos permiten asociar algunos términos (etiquetas) a los artículos. De esta forma los usuarios pueden filtrar o agrupar los artículos por temáticas. Otro buen ejemplo son las categorias de una tienda. Estas van asociadas a los productos permitiendo a los compradores filtrar los productos por categorías.

Como en los tipos de contenido, en las taxonomías puedes añadir los campos que necesites. Por ejemplo, si quieres asociar un icono a con los términos de un vocabulario para mostrarlos de manera más visual, solo tienes que añadir un campo imagen.

Otro uso bastante corriente de las taxonomías es para crear una jerarquía de contenidos. Dado que la taxonomía tiene un soporte integrado para las relaciones entre padres e hijos, se puede extender fácilmente a los tipos de contenido añadiendo un vocabulario con alguna jerarquía.

Custom entities

Las entidades son un concepto abstracto y algo complejo para la gente que es nueva en Drupal. Una entidad es una forma de datos que deseamos representar en el sistema. Algunos de los objetos de datos dentro del core de Drupal, como son los tipos de contenido, usuario o taxonomías, son entidades. Estas entidades pueden satisfacer casi todas las necesidades de datos de la mayoría de los clientes, pero hay algunos casos en los que necesita una entidad personalizada para representar los datos que desea mostrar a los usuarios finales.

Probablemente necesitemos crear nuevas entidades si:

  • Tus datos representan algo que no es un contenido.
  • No necesitas ningún flujo de trabajo ni ninguna de las principales herramientas editoriales de Drupal para administrar los datos.
  • No quieres que tu información aparezca en los buscadores.
  • Estos datos no van a ser mostrados en ningún menú.
  • Los usuarios podrán interactuar con estos datos en una interfaz muy personalizada, como un juego.

Estos son algunos casos de uso en los que deberemos crear una entidad personalizada:

  • Necesitas crear y administrar anuncios que serán mostrados en tu web.
  • Necesitas administrar el inventario de productos en una tienda online.
  • Tu sitio web de Drupal está alimentando un sistema de gestión de proyectos.
  • Vas a necesitar administrar información de contacto de gente que no son usuarios de tu web.

Como veis los conceptos no son muy sencillos pero esperamos que con este artículo os haya quedado un poco más claro que son los tipos de contenido, las taxonomías y las entidades y cuando debemos usar cada uno de ellos.