Views Tree
Un plugin de estilo de Views para mostrar un árbol de elementos utilizando el modelo de adyacencia.
views_tree
Instalar
composer require 'drupal/views_tree:^3.0'
Overview
El módulo Views Tree proporciona plugins de estilo de Views que renderizan los resultados de consultas como árboles jerárquicos anidados. Utiliza el modelo de adyacencia, donde cada registro tiene una referencia a su registro padre, para construir la estructura de árbol. A pesar de la salida jerárquica, solo se ejecuta una única consulta a la base de datos, lo que hace que el módulo sea altamente eficiente incluso con conjuntos de datos grandes.
El módulo soporta dos formatos de visualización: una lista HTML anidada (ordenada o no ordenada) y un formato de tabla con sangría visual que indica los niveles de jerarquía. También incluye un plugin de selección de entity reference que muestra entidades en formato de árbol jerárquico dentro de los campos de entity reference. La funcionalidad opcional de colapsar basada en JavaScript permite a los usuarios expandir y contraer ramas del árbol de forma interactiva.
Esta es una continuación de la funcionalidad de plantilla de estilo basada en árbol de Views 1, adaptada para versiones modernas de Drupal. El módulo es ideal para mostrar estructuras de menú, jerarquías organizacionales, árboles de categorías, comentarios en hilos y cualquier contenido con relaciones padre-hijo.
Features
- Proporciona el plugin de estilo de Views 'Tree (list)' que renderiza resultados como listas HTML anidadas ordenadas o no ordenadas
- Proporciona el plugin de estilo de Views 'Tree (table)' que muestra datos jerárquicos en formato de tabla con sangría
- Plugin de selección de entity reference 'TreeHelper (Adjacency model)' para mostrar entidades en formato de árbol dentro de campos de autocompletado
- Funcionalidad de árbol colapsable con JavaScript - los árboles pueden comenzar expandidos o colapsados con comportamiento de clic para alternar
- Rendimiento de consulta única - construye toda la estructura de árbol desde una única consulta a la base de datos utilizando el modelo de adyacencia
- Servicio TreeHelper para construir programáticamente estructuras de árbol desde conjuntos de resultados de Views
- Indicación de nivel jerárquico basada en atributos de datos para estilos CSS en visualizaciones de tabla
- Soporte para cualquier tipo de campo de entity reference incluyendo referencias a nodos, referencias a usuarios y referencias a taxonomía
Use Cases
Mostrar una jerarquía de menú o navegación
Usa Views Tree para mostrar elementos de menú o enlaces de navegación en su estructura natural padre-hijo. Crea una View de entidades de contenido de enlace de menú, añade el campo ID como campo principal y la referencia del enlace de menú padre como campo padre. La lista anidada resultante refleja perfectamente la jerarquía del menú.
Organigrama o estructura de empresa
Muestra personal o departamentos en un organigrama jerárquico. Si tienes un campo de entity reference 'Reporta a' en usuarios o tipos de entidad personalizados, usa ese como campo padre para mostrar la jerarquía organizacional completa desde ejecutivos hasta colaboradores individuales.
Visualización de categorías anidadas o taxonomía
Muestra términos de taxonomía o entidades de categoría con sus relaciones padre-hijo completas. Particularmente útil para categorías de productos, clasificaciones de contenido o cualquier taxonomía multinivel que necesite mostrarse en un árbol único expandible.
Comentarios o discusiones en hilos
Renderiza comentarios en una vista de conversación en hilos donde las respuestas aparecen anidadas bajo sus comentarios padre. La estructura de árbol muestra claramente el flujo de la conversación y qué comentarios son respuestas a cuáles.
Explorador de archivos y carpetas
Crea una interfaz de gestión de archivos que muestre carpetas y archivos en una estructura de árbol jerárquica, similar a un explorador de sistema de archivos. Los usuarios pueden ver la estructura completa de directorios de un vistazo.
Selección jerárquica de entity reference
Al usar campos de entity reference para contenido jerárquico (como seleccionar una categoría padre o página padre), usa el plugin de selección de entity reference de Views Tree para mostrar opciones en formato de árbol, facilitando comprender y seleccionar la entidad padre correcta.
Tips
- Siempre incluye tanto el campo de identificador principal como el campo de referencia al padre en tu View, incluso si los excluyes de la visualización - son necesarios para construir la estructura del árbol
- Usa el estilo 'Table' cuando necesites mostrar múltiples columnas de datos junto con la jerarquía, y el estilo 'List' para presentaciones de listas anidadas más simples
- La función de árbol colapsable requiere JavaScript; considera proporcionar alternativas solo CSS para entornos sin JS si es necesario
- Para jerarquías grandes, considera añadir filtros expuestos o configuraciones de paginación para gestionar la cantidad de datos mostrados
- Al usar con selección de entity reference, asegúrate de que la View tenga controles de acceso apropiados ya que los usuarios verán todas las entidades devueltas por la View
- El estilo de tabla soporta hasta 8 niveles de anidamiento con CSS incorporado; para jerarquías más profundas, añade reglas CSS personalizadas para valores adicionales de data-hierarchy-level
- Los elementos padre que se referencian a sí mismos o tienen referencias circulares se manejan automáticamente - se convierten en elementos de nivel raíz
Technical Details
Hooks 1
hook_theme
Define los hooks de tema views_tree y views_tree_table con sus variables