Custom Breadcrumbs
Proporciona un sistema de entidades de configuración para crear y gestionar breadcrumbs personalizados en páginas de entidades de contenido, views, page manager y otras páginas de controladores.
custom_breadcrumbs
Instalar
composer require 'drupal/custom_breadcrumbs:^1.1'
Overview
Custom Breadcrumbs es un módulo potente que permite a los administradores del sitio definir y gestionar rutas de breadcrumbs personalizadas para cualquier tipo de entidad de contenido en Drupal. A diferencia de los sistemas de breadcrumbs predeterminados que dependen de la estructura de la URL, este módulo proporciona control completo sobre las rutas y títulos de los breadcrumbs a través de una interfaz de administración fácil de usar.
El módulo soporta dos tipos de definiciones de breadcrumbs: breadcrumbs basados en entidades de contenido que se aplican a tipos de entidad y bundles específicos, y breadcrumbs basados en rutas que coinciden con patrones de URL con comodines. Ambos tipos soportan integración completa con Token para la generación dinámica de breadcrumbs.
Las capacidades principales incluyen integración con la jerarquía de términos de taxonomía para árboles de breadcrumbs automáticos, configuraciones de breadcrumbs específicas por idioma para sitios multilingües, configuración personalizable del enlace de inicio, opciones de visualización del título de la página actual y gestión del contexto de caché para breadcrumbs basados en parámetros de consulta. El módulo también proporciona un pseudo-campo que puede mostrar breadcrumbs dentro de los modos de visualización de entidades, útil para mostrar breadcrumbs en teasers de nodos en resultados de búsqueda.
Features
- Crear configuraciones de breadcrumbs personalizados como entidades de configuración con estado habilitado/deshabilitado
- Definir breadcrumbs para cualquier tipo de entidad de contenido (nodes, términos de taxonomía, usuarios, etc.) con especificidad a nivel de bundle
- Crear breadcrumbs basados en rutas usando patrones de URL con soporte de comodín (*)
- Integración completa con el módulo Token para rutas y títulos de breadcrumbs dinámicos
- Integración con la jerarquía de términos de taxonomía usando la sintaxis <term_hierarchy:field_name> para árboles de breadcrumbs automáticos
- Configuraciones de breadcrumbs específicas por idioma para sitios multilingües
- Enlace de inicio configurable con texto personalizable
- Opción para añadir el título de la página actual como último elemento del breadcrumb con enlace opcional
- Recorte de longitud del título con límite de caracteres configurable
- Capacidad para deshabilitar breadcrumbs personalizados en páginas de administración
- Modo de breadcrumbs para todo el sitio para aplicar breadcrumbs básicos a todas las páginas
- Sintaxis <nolink> para crear elementos de breadcrumb sin enlaces
- Configuración de contextos de caché adicionales para el correcto almacenamiento en caché con parámetros de consulta
- Pseudo-campo para mostrar breadcrumbs dentro de los modos de visualización de entidades
- Soporte de traducción de configuración para traducir la configuración de breadcrumbs
Use Cases
Breadcrumbs personalizados para el tipo de contenido artículo
Crear una ruta de breadcrumbs para todos los nodos de artículos que muestre Inicio > Noticias > [Título del artículo]. Ir a Estructura > Custom breadcrumbs, añadir un nuevo breadcrumb con Tipo = Entidad de contenido, Tipo de entidad = node, Bundle de entidad = article. Establecer Rutas del breadcrumb a '/news' y Títulos del breadcrumb a 'Noticias'. Habilitar 'Añadir título de la página actual' en la configuración global para incluir el título del artículo.
Breadcrumbs de jerarquía de términos de taxonomía
Mostrar la jerarquía completa de taxonomía como breadcrumbs para nodos etiquetados con un término de categoría. Crear una configuración de breadcrumb para su tipo de contenido y usar '<term_hierarchy:field_categories>' en el campo Rutas del breadcrumb (donde field_categories es su campo de referencia de taxonomía). Esto crea automáticamente enlaces de breadcrumb para cada término padre.
Resultados de búsqueda con breadcrumbs basados en consulta
Crear breadcrumbs para una página de resultados de búsqueda que incluya la consulta de búsqueda. Crear un breadcrumb basado en ruta que coincida con '/search/*'. Usar el módulo Token para incluir valores de consulta. Añadir 'url.query_args:search' a Contextos de caché adicionales para asegurar el correcto almacenamiento en caché por consulta de búsqueda.
Breadcrumbs multilingües
Configurar diferentes rutas de breadcrumbs para cada idioma. Crear múltiples configuraciones de breadcrumb para el mismo tipo de entidad/bundle, cada una con un idioma diferente seleccionado. El módulo mostrará automáticamente el breadcrumb apropiado basado en el idioma de interfaz actual.
Breadcrumbs en teasers de nodos
Mostrar breadcrumbs dentro de teasers de nodos (útil para resultados de búsqueda). Ir a la configuración de Gestionar visualización del tipo de contenido, cambiar al modo de visualización Teaser y habilitar el campo 'Breadcrumbs'. Posicionarlo donde desee que aparezcan los breadcrumbs dentro del teaser.
Elementos de breadcrumb sin enlace
Crear una ruta de breadcrumbs donde algunos elementos no sean enlaces clicables. Usar '<nolink>' como ruta para elementos que deban mostrarse solo como texto. Por ejemplo: Rutas del breadcrumb = '/products' y '<nolink>', Títulos del breadcrumb = 'Productos' y 'Categoría actual'.
Breadcrumbs para páginas de Views
Añadir breadcrumbs personalizados a páginas de Views. Crear un breadcrumb basado en ruta con el Patrón de ruta coincidiendo con la URL de su página de Views (ej., '/blog' o '/products/*'). Definir las rutas y títulos de breadcrumb deseados para estas páginas.
Tips
- Usar breadcrumbs basados en ruta para páginas de Views, controladores personalizados y cualquier página que no tenga entidades de contenido
- El servicio de breadcrumb tiene prioridad 1003, que es mayor que la mayoría de otros constructores de breadcrumbs, asegurando que sus breadcrumbs personalizados tengan precedencia
- Combinar la integración de Token con la jerarquía de taxonomía para breadcrumbs complejos de categorías anidadas
- Habilitar 'Breadcrumbs para todo el sitio' para asegurar que todas las páginas obtengan al menos funcionalidad básica de breadcrumb con enlace de inicio y título de página actual
- Usar la función de pseudo-campo de Gestionar visualización para incluir breadcrumbs en teasers de nodos para mejorar la navegación en resultados de búsqueda
- Recordar que las configuraciones de breadcrumb pueden exportarse e importarse con el sistema de gestión de configuración de Drupal
Technical Details
Admin Pages 4
/admin/structure/custom-breadcrumbs
Página principal de listado que muestra todas las entidades de breadcrumbs personalizados configuradas. Muestra la etiqueta del breadcrumb, tipo de entidad, bundle de entidad, idioma y estado habilitado/deshabilitado. Proporciona operaciones para editar, eliminar o habilitar/deshabilitar cada configuración de breadcrumb.
/admin/structure/custom-breadcrumbs/add
Formulario para crear una nueva configuración de breadcrumb personalizado. Permite especificar el tipo de breadcrumb (entidad de contenido o basado en ruta), tipo de entidad y bundle objetivo, idioma, rutas y títulos de breadcrumbs con soporte de Token.
/admin/structure/custom-breadcrumbs/{custom_breadcrumbs}
Formulario para editar una configuración de breadcrumb personalizado existente. Los mismos campos que el formulario de añadir con los valores actuales rellenados.
/admin/config/user-interface/custom-breadcrumbs
Configuración global para el módulo Custom Breadcrumbs. Configurar comportamientos predeterminados para el enlace de inicio, visualización de la página actual y otras opciones para todo el sitio.
Permisos 1
Hooks 3
hook_entity_extra_field_info
Implementa hook_entity_extra_field_info() para proporcionar un pseudo-campo 'Breadcrumbs' para todos los bundles de entidades de contenido. Esto permite que los breadcrumbs se muestren dentro de los modos de visualización de entidades a través de la interfaz de Gestionar visualización.
hook_entity_view
Implementa hook_entity_view() para renderizar breadcrumbs cuando el componente 'breadcrumbs' está habilitado en la visualización de la entidad. Útil para mostrar breadcrumbs en teasers de nodos en resultados de búsqueda.
hook_help
Implementa hook_help() para proporcionar texto de ayuda desde README.md en la página de ayuda del módulo. Soporta renderizado Markdown si el módulo Markdown está disponible.
Troubleshooting 5
Verificar que la configuración del breadcrumb está habilitada (estado = marcado). Asegurar que el tipo de entidad y bundle coinciden exactamente. Comprobar si 'Deshabilitar en páginas de administración' está habilitado para páginas de administración. Limpiar cachés después de realizar cambios.
Añadir el contexto de caché apropiado al campo 'Contextos de caché adicionales'. Por ejemplo, usar 'url.query_args:search' para parámetros de consulta de búsqueda. Esto asegura que los breadcrumbs se almacenen en caché por separado para diferentes valores de consulta.
Asegurar que el módulo Token está instalado correctamente. Verificar que está usando la sintaxis correcta de token (ej., [node:title] para nodos). Usar el navegador de Token en el formulario de breadcrumb para encontrar tokens válidos para su tipo de entidad.
Usar la sintaxis '<term_hierarchy:field_name>' donde field_name es el nombre de máquina de su campo de referencia de términos de taxonomía. Asegurar que el campo existe en el tipo de contenido y contiene referencias a términos.
Crear configuraciones de breadcrumb separadas para cada idioma. Establecer el campo 'Idioma' al código de idioma específico. Para breadcrumbs de respaldo, crear uno con 'Idioma no especificado' que se usará cuando no exista una configuración específica para el idioma.
Security Notes 3
- El módulo usa filtrado XSS para el texto del enlace de inicio para prevenir inyección de scripts
- Todas las URLs de breadcrumbs son validadas para requerir barras iniciales o sintaxis válida de Token
- Se requiere el permiso de administración 'administer custom_breadcrumbs' para todos los cambios de configuración