Cómo gestionar la taxonomía en Drupal 8

1. Taxonomía, visión general

Mientras que muchos de nosotros pueden no ser capaces de definir la palabra “taxonomía”, la realidad es que usamos la taxonomía diariamente como un medio para categorizar las “cosas” en nuestras vidas. Si abres las puertas de tu despensa de la cocina, puede ser que encuentres un conjunto ordenado de los alimentos: todas las especias en la estantería superior, alimentos enlatados en el segundo estante, pastas y otros alimentos encajonados en el tercer estante, y cajas de cereales en el cuarto.

2. Categorizando

Los alimentos y guardar las cosas de forma ordenada para que puedas encontrar fácilmente los alimentos cuando los necesitas es en su forma simple el uso de la taxonomía. Sin este “sistema de taxonomía de cocina”, es posible que tengas todo lo que necesitas para hacer la cena pero estés atascado por dejar las cosas al azar en la despensa, y encontrarlas puede ser un reto, lo que lleva a la frustración y a una llamada al restaurante local de entrega de pizzas, por no poder encontrar los ingredientes para hacer la comida.

En Drupal, la taxonomía se divide en dos capacidades generales: el etiquetado y la taxonomía estructurada.

Ambas son poderosas y se pueden utilizar simultáneamente en tu sitio. El etiquetado es un uso simplificado pero potente del sistema de taxonomía, que permite a los autores de contenido introducir palabras clave que describen el contenido de un campo de texto en el formulario de edición de contenido. Como ejemplo de etiquetado, un autor que escribe un artículo sobre la energía alternativa podría utilizar palabras clave, o etiquetas, como “solar”, “viento” y “geotérmica” para categorizar el artículo. Las palabras clave creadas por el autor normalmente se muestran como hipervínculos al final del artículo y pueden ser utilizadas por los visitantes del sitio para localizar otro contenido etiquetado con las mismas palabras clave.

El etiquetado es de forma libre, es decir, corresponde al autor definir qué palabras quieren utilizar para clasificar su contenido. Un problema común con el uso de marcado como un enfoque para clasificar el contenido es que diferentes personas utilizan palabras diferentes para referirse al mismo concepto. Por ejemplo, un artículo sobre la lluvia puede ser etiquetado con la plabra “lluvia” por un autor, “precipitación” por otro, y “llovizna” por un tercero. Los visitantes del sitio tratando de encontrar artículos sobre el concepto general de la lluvia tendría dificultades para encontrar los etiquetados con palabras que no sean “lluvia”. Otro problema común son los errores ortográficos. Si un autor etiqueta un artículo sobre la lluvia con “llucia”, entonces los visitantes del sitio van a tener dificultades para encontrar ese artículo usando la palabra “lluvia”.

El segundo enfoque para el uso de la taxonomía para clasificar el contenido en Drupal es la taxonomía estructurada. En este enfoque, un administrador de sitio crea todas las palabras que se pueden utilizar para categorizar el contenido y los autores de contenido simplemente seleccionan de la lista de palabras para categorizar su contenido. Un beneficio de la taxonomía estructurada es que puede ser jerárquico, lo que significa que los términos pueden ser puestos en grupos para categorizar el contenido. Un ejemplo de una jerarquía podría ser la taxonomía para los deportes. El primer niver de términos podría ser “deportes de equipo” y “deportes individuales”. Bajo “deportes de equipo” se puede ver fútbol, baloncesto, béisbol, hockey, voleibol y otros deportes de equipo. Bajo “deportes individuales” podemos ver golf, natación, atletismo y deportes de motor.

Podrías continuar construyendo la jerarquía de deportes hasta que tengas una representación de cada deporte en el planeta. Como autor escribiendo un artículo sobre un evento deportivo, podrías elegir uno o más términos predefinidos para categorizar tu artículo.

Una gran ventaja de la taxonomía estructurada sobre el etiquetado simplificado es la capacidad de seleccionar artículos por términos individuales o por categorías de términos. En el ejemplo anterior, podrías buscar artículos específicamente sobre fútbol, o podrías tomar un enfoque más generalizado y buscar todos los artículos dentro de la categoría de deportes de equipo.

Determinar si se utiliza el etiquetado o la taxonomía estructurada es una cuestión de decidir cómo quieres que la categorización de contenido aparezca en tu sitio. Y la gran noticia es que puedes utilizar ambos enfoques simultáneamente para proporcionar a los autores un alto nivel de flexibilidad.

Echemos un vistazo a un ejemplo del mundo real. Digamos que estamos creando un sitio web que se centra en noticias deportivas. Nuestro público objetivo es la gente que le gusta seguir lo que está sucediendo con sus equipos favoritos. Si pensamos en cómo la gente podría querer buscar y navegar contenido en nuestro sitio, podríamos pensar en organizar el contenido por el tipo de deporte, por ejemplo:

  • Fútbol

  • Béisbol

  • Baloncesto

  • Hockey

  • Rugby

La gente también puede querer encontrar noticias deportivas por equipo:

  • Cuervos

  • Real Madrid

  • Lakers

  • París Saint Germain

  • F.C. Barcelona

  • Yankees

En este ejemplo seguiremos nuestro ejemplo anterior y crearemos una taxonomía estructurada. Primero crearíamos un vocabulario, que es el nivel más alto en una estructura jerárquica. Para este ejmplo crearíamos un vocabulario llamado “tipo de deporte”. Los términos que crearíamos dentro de ese vocabulario son el fútbol, el béisbol, el baloncesto, el hockey y el rugby. Entonces crearíamos un segundo nivel en nuestra jerarquía donde asignaríamos los términos para los nombres de equipo; por ejemplo, bajo el término fútbol, asignaríamos los términos Real Madrid, F.C. Barcelona, y París Saint Germain. Debajo del término baloncesto asignaríamos los términos Real Madrid, F.C. Barcelona y Lakers. Debajo del término béisbol asignaríamos el término Yankees. Podríamos seguir añadiendo nombres de equipo hasta que cada equipo en cada deporte se asigne a su lugar apropiado. Para los propósitos de nuestra demostración, seguiremos con la lista simplificada.

3. Creando vocabularios

El primer paso en el uso de la taxonomía es identificar y crear los vocabularios que utilizarás para categorizar el contenido de tu sitio web. Dependiendo del enfoque de tu sitio y la amplitud de temas que cubras, puede que sólo necesites un solo vocabulario o puedes necesitar varios vocabularios. No hay una respuesta “correcta”, ni hay una fórmula que puedas usar para determinar cuántos vocabularios necesitará tu sitio. El mejor enfoque es pensar en el contenido que incluirá y en los temas que cubrirá el contenido.

Si los temas están todos relacionados (ej. tipos de deportes), entonces es probable que solo un vocabulario sea todo lo que necesites. Si los temas no están relacionados (ej. un sitio relacionado con libros donde los libros pueden ser clasificados por autor, temática, editor y público objetivo), puede ser necesario el uso de varios vocabularios.

Depende de tí, el creador del sitio, definir la estructura que mejor se adapte al propósito de tu sitio, cómo deseas que el contenido esté estructurado y cómo deseas que los visitantes accedan a ese contenido.

Una vez que hayas identificado al menos un vocabulario, haz clic en el enlace “Administrar” en el menú de administración en la parte superior de cualquier página de tu sitio y, a continuación, haz clic en el enlace “Estructura”. Verás una lista de opciones que incluyen un enlace a “Taxonomía”. Haz clic ahí para mostrar una página que enumera todos los vocabularios que ya se han definido para tu sitio. De forma predeterminada, Drupal crea un vocabulario denominado “Etiquetas” como un contenedor genérico predeterminado para los términos (ver figura 4-1).

Figura 4-1.

Para añadir un nuevo vocabulario, haz clic en el enlace “Añadir vocabulario” en la parte superior de la lista, desplegando el formulario mostrado en la figura 4-2.

En el campo “Nombre” ingresa “Tipo de deporte” e introduce una breve descripción en el campo “Descripción”.

El campo “Descripción” es un campo opcional y por defecto no se muestra en la interfaz administrativa para taxonomía. Sin embargo, puedes utilizar este campo al representar listas de contenido como una descripción sobre el contenido que contiene la lista.

Figura 4-2.

Una vez que has introducido los valores en ambos campos, haz clic en “Guardar”. Drupal luego muestra la lista de términos asociados con tu vocabulario. Dado que se trata de un nuevo vocabulario, la lista está vacía (ver figura 4-3).

Figura 4-3.

El siguiente paso es crear una lista de términos asociados con el vocabulario “Tipo de deporte”. Para crear términos, haz clic en el botón “Añadir término” para el vocabulario que creaste. Al hacer clic en ese enlace se muestra lo que podemos ver en la figura 4-4. Introduce “Baloncesto” como el nombre del término, e ingresa una breve descripción que expande el significado detrás del término.

Figura 4-4.

Después de ingresar el término y una descripción, haz clic en “Guardar”. Drupal luego vuelve a mostrar el formulario para permitirte ingresar otro término. Para practicar, crea términos para otros deportes, como el béisbol, el fútbol y el rugby. Una vez que hayas completado el proceso de introducción de los términos asociados con tu vocabulario, haz clic en “Tipo de deporte” en la ruta para volver a la página “Editar vocabulario” y a continuación, haz clic en la pestaña “Lista” en la parte superior de la página para ver la lista completa de términos para el vocabulario, que se muestra en la figura 4-5.

Figura 4-5.

En este punto hemos creado un vocabulario y los términos que usaremos para categorizar el contenido. De forma predeterminada, los términos de taxonomía se ordenan alfabéticamente, pero en algunos casos es posible que necesites que se clasifiquen de forma diferente. Por ejemplo, puedes tener un vocabulario para regiones en los EEUU, con los términos Este, Central, Montaña y Oeste. Si los términos fueron ordenados alfabéticamente, aparecerían como Central, Este, Montaña y Oeste.

Es posible que quieras que los términos se clasifiquen de un modo de este a oeste, lo que significa que el orden debería ser Este, Central, Montaña y Oeste, en cuyo caso diferiría del orden predeterminado. Puedes reordenar los términos simplemente haciendo clic y manteniendo el icono de flechas a la izquierda de un término y arrastrando ese elemento a la posición en la lista donde deseas que aparezca. Recuerda hacer clic en el botón “Guardar” después de volver a ordenar, ya que el orden no es permanente hasta que guardes la lista.

Ahora tenemos que identificar qué tipos de contenido usarán este vocabulario como método para categorizar el contenido y configurar nuestro vocabulario para que aparezcca en las pantallas de creación de contenido para esos tipos de contenido.

4. Asignación de un vocabulario taxonómico a un tipo de contenido

Al habilitar a los autores de contenido para asignar uno de los términos a un nuevo contenido, se requiere que el administrador del sitio realice cambios en los tipos de contenido. El primer paso es identificar todos los tipos de contenido que deseas asociar con el nuevo vocabulario. Puedes decidir que todos los tipos de contenido utilicen el vocabulario para categorizar el contenido creado en tu sitio o que el vocabulario sólo sea apropiado para uno o varios tipos de contenido. Por ejemplo, si tienes un vocabulario que enumera los términos de los lugares de eventos (ej. cafetería, gimnasio, patio, campo de fútbol, etc), es posible que desees restringir qué tipos de contenido podrían utilizarse. Ese vocabulario sólo puede ser apropiado para un tipo de contenido de evento de calendario y no para el tipo de contenido de página básica.

Por ejemplo, actualizemos el tipo de contenido “Artículo” en el sitio de prueba para incorporar la capacidad de etiquetar contenido con el tipo de vocabulario deportivo.

El primer paso es hacer clic en el enlace “Administrar” en el menú de administración en la parte superior de cualquier página de tu sitio y, a continuación, haz clic en “Estructura”.

Haz clic en el enlace “Tipos de contenido” para acceder a la página que muestra los tipos de contenido disponibles (ver figura 4-6).

Figura 4-6.

A la derecha de cada tipo de contenido en la lista, verás un botón “Administrar campos” para administrar los campos asociados con ese tipo de contenido. En el capítulo 5 aprenderás cómo añadir varios tipos de campos a tu tipo de contenido (ej. puedes agregar un campo de carga de archivos, un cuadro de texto adicional para recopilar información específica, casillas de verificación, botones de radio o una lista de selección para expandir el contenido recopilado cuando alguien usa ese tipo de contenido).

Por ahora nos centraremos en agregar el vocabulario taxonómico a nuestro tipo de contenido para que un autor pueda seleccionar uno de los tipos de términos deportivos.

Haz clic en el botón “Administrar campos” a la derecha de la descripción del artículo para exponer el formulario utilizado para añadir tu vocabulario (ver figura 4-7). En este formulario encontrarás un botón llamado “Agregar campo”. Haz clic en este botón para comenzar el proceso de agregar un campo de taxonomía.

Figura 4-7.

En la pantalla “Agregar campo” selecciona “Término taxonómico” en la lista desplegable “Agregar un nuevo campo”.

En el campo titulado “Etiqueta” ingresa un título descriptivo que aparecerá en el formulario de edición de contenido, informando al autor de contenido cuál es el propósito de este campo. Para nuestro ejemplo, ingresa “Tipo de deporte”. Haz clic en el botón “Guardar y continuar”. En la pantalla siguiente tienes la opción de especificar cuántos valores de la lista el autor puede seleccionar al crear un artículo. El valor predeterminado es limitado a un término de la lista. Para el ejemplo, queremos que el autor tenga la capacidad de seleccionar varios de los términos en nuestro vocabulario “Tipo de deporte”, por lo que cambiamos el valor en la lista de selección de “limitado” a “ilimitado”. A continuación, haz clic en el campo “Guardar configuración del campo” para continuar a la página de configuración.

En la página de configuración tenemos opciones para cambiar la etiqueta que creamos anteriormente, ingresar texto de ayuda que se mostrará en el formulario de edición de contenido debajo de este campo, establece este campo como obligatorio (es decir, el autor debe seleccionar un valor de la lista antes de guardar el artículo) y establece un valor predeterminado para cuando el autor no seleccione un valor de la lista. Para fines de demostración, dejaremos la etiqueta como estaba fijada; introduce una breve frase instruyendo al autor para seleccionar un valor de la lista si es apropiado para este artículo; deja la casilla de verificación para el campo requerido desactivada para que sea opcional si un autor selecciona un tipo de deporte para cualquier artículo; y deja el valor predeterminado para “Tipo de deporte” establecido a “Ninguno”. En el tipo de referencia, deja el método “Reference” establecido en predeterminado. La otra opción utiliza vistas para personalizar la lista de valores disponibles. Veremos las vistas en el capítulo 10. En la lista de vocabularios selecciona “Tipo de deporte” haciendo clic en la casilla de verificación. Esto le indica a Drupal que sólo muestre elementos del vocabulario “Tipo de deporte” al presentar valores para seleccionarlos el autor. Para completar la adición del nuevo campo, haz clic en el botón “Guardar configuración” y volverás a la página de administración principal para el tipo de contenido “Artículo”. Por defecto, los términos de taxonomía son campos de autocompletado, lo que significa que un autor simplemente escribe una parte del término que deseas agregar y Drupal busca si existe un término que coincida con ese patrón. El autocompletado funciona bien cuando los términos de taxonomía son conocidos por el autor, pero en este caso queremos presentar una lista de términos para que el autor pueda seleccionar uno. Para cambiar el widget autocompletar del campo “tipo de deporte” a una lista de selección, haz clic en la ficha “Gestionar vista del formulario” de la lista de campos y cambia el valor a lista de selección. Después de cambiar el valor haz clic en el botón “Guardar”. Los autores pueden ahora seleccionar de la lista de términos en el vocabulario “Tipo de deporte” cuando se crea un artículo.

5. Seleccionando un término taxonómico al crear contenido

Basado en lo que hemos hecho en la sección anterior, la creación de un nuevo elemento de contenido utilizando el tipo de contenido “Artículo” ahora presentará al autor una lista de valores que puede seleccionar para categorizar el contenido que está creando. Para probar esta característica, haz clic en cualquiera de los vínculos “crear contenido” descritos anteriormente. En la lista de tipos de contenido enumerados, haz clic en el tipo de contenido “Artículo”. Cuando aparezca la página “Crear artículo” observa que hay un nuevo campo de lista de selección “Tipo de deporte” en el que el autor puede seleccionar el tipo de deporte que desea asignar a este elemento de contenido (ver figura 4-8). Crea un nuevo artículo introduciendo un título, un cuerpo de texto y seleccionando un tipo de deporte de la lista de selección.

Figura 4-8.

Al hacer clic en el botón “Guardar y publicar”, Drupal mostrará nuestra nueva página con un nuevo campo “Deporte asociado”, con el valor que seleccionaste en el campo “Tipo de deporte”.

Para demostrar el poder de la taxonomía, crea dos páginas adicionales utilizando el mismo término de taxonomía que seleccionaste en el primer ejemplo. En el elemento de contenido final que crees, una vez que lo hayas guardado, haz clic en el término que utilizaste. En la figura 4-9 harías clic en Fútbol.

Figura 4-9.

El resultado al clicar en el término es una página que lista todas las otras páginas que fueron creadas y a las que se les han asignado el término taxonómico “Fútbol” (ver figura 4-10).

Figura 4-10.

Drupal automáticamente procesa todos los artículos que están asociados con el término seleccionado. La lista se clasifica por defecto en el orden de fecha/hora, con el artículo añadido más recientemente que aparece en la parte superior de la lista. Puedes cambiar el orden en que aparecen los artículos modificando la vista predeterminada. Abordaremos las vistas en detalle en el capítulo 9. También verás un icono de feed RSS en la parte inferior de la página. Los feeds RSS son un enfoque estándar de la industris para entregar listas de contenido a fuentes externas, como aplicaciones de lectores de noticias.

Drupal también creó un feed RSS para todas las páginas que están asociadas con este término de taxonomía. Al hacer clic en el icono RSS, la lista se convertirá en un feed estándar.

6. Creando listas amigables a humanos y motores de búsqueda

De forma predeterminada, Drupal crea URL para listas de contenido relacionadas con los términos de taxonomía, como se muestra en la figura 4-11.

Figura 4-11.

La estructura de la URL es “taxonomy/term/X”, donde X es el “ID del término” del término de taxonomía que está haciendo referencia. Mientras que Drupal entiende a lo que se refiere, un ser humano y, más importante, un motor de búsqueda no tendría ni idea de lo que esta URL se refiere, aparte de mirar el título de la lista y el contenido de la lista. Un remedio simple es proporcionar un alias de URL. Puedes proporcionar un alias de URL editando el término de taxonomía e ingresando un valor en el campo que se muestra en el formulario para agregar un alias de URL. Para volver a tu lista de términos taxonómicos, haz clic en el enlace “Administrar” en la parte superior de la página y selecciona “Estructura”.

En la página “Estructura”, haz clic en el enlace “Taxonomía”. En la página “Taxonomía, haz clic en el botón “Listar términos” que está asociado con el vocabulario en el que reside el término que deseas proporcionar un alias de URL. Busca el término que deseas actualizar y haz clic en la pestaña “Editar”. En el campo “alias de URL” (mostrado en la figura 4-12) ingresa una URL descriptiva que sea fácilmente comprendida por los seres humanos y los motores de búsqueda. Por consistencia y simplicidad, utiliza todas las letras minúsculas con guiones entre palabras. Para nuestro ejemplo, estamos utilizando una sola palabra, “fútbol”.

Haz clic en el botón “Guardar” después de introducir su alias de URL. En la barra de direcciones de tu navegador, ingresa la URL de tu sitio seguido del alias de URL que acabas de crear para tu término taxonómico. En el ejemplo anterior la URL sería http://localhost/futbol.

Figura 4-12.

7. Términos jerárquicos

Supongamos que necesitas definir una estructura jerárquica de términos taxonómicos, por ejemplo de “baloncesto”. Necesitas la capacidad de categorizar más allá del contenido “baloncesto” como:

  • Baloncesto

    • Escuela secundaria

    • Universidad

      • División 1

      • División 2

      • División 3

    • NBA

      • Conferencia Este

      • Conferencia Oeste

Afortunadamente, Drupal proporciona un mecanismo simple para crear una estructura jerárquica de términos taxonómicos. Para actualizar nuestro ejemplo, haz clic en el enlace “Administrar” en la parte superior de la página, en el enlace “Estructura” en el submenú y, a continuación, en el enlace “Taxonomía”. Haz clic en el botón “Añadir término” y verás una pantalla de creación del término. Comienza agregando el término para la escuela secundaria. Introduce “High School” como el nombre del término y luego haz clic en el enlace de relaciones en la parte inferior del formulario. En la lista de “Término padre” selecciona “Baloncesto” y haz clic en “Guardar”. Continúa el proceso ingresando “Universidad” y “NBA”, selecciona también “Baloncesto” como término padre. Para crear el tercer nivel de la jerarquía, ingresa “División 1” como nombre del término y, para la relación seleccionada, “Universidad” como padre. Continúa el proceso hasta que hayas creado todos los términos de la lista anterior. La estructura resultante debería parecerse a la lista que se muestra en la figura 4-13.

Figura 4-13.

Si por casualidad te olvidas de seleccionar un término padre antes de guardar, siempre puedes posicionar un término haciendo clic en el icono de flechas, manteniendo pulsado el botón y arrastrándolo a la posición en la jerarquía donde debe residir. También puedes asignar el término al término apropiado de los padres haciendo clic en el botón “Editar” y modificando el valor en la sección “Relaciones”.

Ahora tenemos la capacidad de asignar términos de taxonomía a los elementos de contenido en el nivel de hijo, así como en el nivel de padre.

La página web resultante que se crea utilizando este método ahora muestra el deporte asociado como “Escuela secundaria”. Hacer clic en “High School” haría una lista de todas las páginas que están asociadas con el término “High School”.

El uso de vistas, que veremos en el capítulo 5, te proporciona la capacidad adicional de anumerar todo el contenido de la jerarquía, por ejemplo, todos los artículos clasificados como “Baloncesto”, independientemente de si pertenecen a la “Escuela secundaria”, a la “Universidad”, o a la “NBA”.

8. Asignando más de un vocabulario

Puede llegar un momento en que la categorización de contenido por un solo vocabulario representa una restricción que debas superar para abordar un requisito complego para la categorización de contenido.

Afortunadamente, Drupal no te limita cuántos vocabularios puedes asignar a un tipo de contenido.

Simplemente sigue los pasos anteriores para agregar un segundo campo al tipo de contenido. Luego selecciona un vocabulario diferente como fuente de valores que deseas presentar al autor.