Dashboards con Layout Builder
Proporciona paneles de control personalizables utilizando Layout Builder, permitiendo a los administradores crear páginas de administración personalizadas con widgets y gráficos configurables.
dashboards
Install
composer require 'drupal/dashboards:^2.1'
Overview
El módulo Dashboards permite la creación de paneles de control totalmente personalizables utilizando Layout Builder de Drupal. Proporciona un sistema completo de paneles donde los administradores pueden construir páginas de administración usando bloques y widgets configurables.
Las capacidades principales incluyen: crear múltiples paneles como entidades de configuración que pueden exportarse e importarse entre entornos, personalización de paneles por usuario permitiendo a los usuarios personalizar sus propios diseños de panel, integración con la barra de herramientas de Drupal para un acceso fácil, soporte integrado de gráficos para visualización de datos, y un sistema de plugins para crear componentes de panel personalizados.
El módulo incluye varios plugins de panel integrados para casos de uso comunes como estadísticas de contenido, estado del sistema, fuentes RSS, informes de errores y vistas incrustadas. Los submódulos adicionales proporcionan integración con analíticas de Matomo, envíos de Webform y estadísticas del núcleo.
Features
- Crear paneles personalizables usando la interfaz de arrastrar y soltar de Layout Builder
- Personalización de paneles por usuario - cada usuario puede sobrescribir el diseño predeterminado del panel para su propia vista
- Todos los paneles son entidades de configuración que pueden exportarse y controlarse con versionado
- Sistema de plugins de panel personalizado para crear componentes de panel reutilizables
- Integración de gráficos incorporada que soporta gráficos de pastel, barras, líneas, radar, área polar, dona y burbujas con mapas de colores configurables
- Integración con la barra de herramientas proporcionando acceso rápido a todos los paneles
- Negociador de tema para cambio automático al tema de administración en páginas de panel
- Múltiples opciones de diseño incorporadas (2 columnas, 3 columnas, 2+1 columna)
- Soporte para visualizaciones de Views incrustadas en paneles
- Plugin lector de fuentes RSS para mostrar noticias externas
- Widgets de información del sistema (estado, errores, actualizaciones, informes 404)
- Plugin de estadísticas de nodos mostrando distribución por tipo de contenido
- Menú de accesos directos para creación de contenido
- Widget de visualización de perfil de usuario
- Soporte para el tema de administración Gin con plantillas dedicadas
- Integración con Layout Builder Restrictions para controlar los bloques disponibles
Use Cases
Panel para editores de contenido
Cree un panel para editores de contenido que muestre su contenido recientemente creado, contenido pendiente de revisión y enlaces rápidos para crear nuevo contenido. Use la vista embebida 'Dashboard: Mi último contenido' y el plugin de menú 'Añadir contenido'.
Panel para administradores del sitio
Construya un panel de administración completo que muestre el estado del sistema, actualizaciones de módulos disponibles, errores y advertencias recientes del registro, e informes de errores 404. Combine los plugins system_info, status_updates, error_report y report_not_found.
Panel de analíticas
Usando el submódulo de Matomo, cree un panel de analíticas que muestre estadísticas de visitantes, distribución geográfica, uso de navegadores y páginas con mejor rendimiento. Configure rangos de fechas y tipos de gráficos para cada widget.
Panel de resumen de contenido
Muestre estadísticas de contenido con gráficos de pastel o barras que muestren la distribución por tipo de contenido, junto con tablas de contenido recientemente publicado. Use el plugin node_statistics con el plugin de vista embebida.
Paneles personalizados por usuario
Permita que cada usuario personalice su propio diseño de panel. Los administradores configuran un panel predeterminado, luego otorgan el permiso 'puede sobrescribir' a roles específicos para que los usuarios puedan reorganizar o eliminar widgets según su flujo de trabajo.
Panel de agregación de noticias
Cree un panel que agregue contenido de fuentes RSS externas junto con contenido interno. Use múltiples plugins rss_news configurados para diferentes fuentes de noticias.
Tips
- Use el campo de peso para controlar el orden en que los paneles aparecen en el menú desplegable de la barra de herramientas
- Las configuraciones de paneles pueden exportarse usando Gestión de Configuración, facilitando el despliegue de paneles entre entornos
- El mapa de colores de gráficos puede cambiarse globalmente en /admin/system/dashboards-settings para coincidir con la imagen de marca de su sitio
- Para mejor rendimiento con fuentes de datos externas como fuentes RSS o Matomo, el módulo usa construcción perezosa y cache - considere los tiempos de expiración de cache al mostrar datos sensibles al tiempo
- Al crear plugins de panel personalizados, extienda DashboardBase e implemente buildRenderArray() - el plugin estará automáticamente disponible como bloque en Layout Builder
- Use DashboardLazyBuildBase para plugins que hacen llamadas a API externas para mejorar el rendimiento de carga de página
- Otorgue permisos granulares por panel - puede permitir que los usuarios vean ciertos paneles pero solo personalicen unos específicos
- El módulo maneja automáticamente la invalidación de cache cuando los paneles se modifican o personalizan
Technical Details
Admin Pages 8
/admin/structure/dashboards
Lista todos los paneles disponibles con soporte de reordenamiento mediante arrastrar y soltar. Desde aquí, los administradores pueden ver, editar, gestionar diseños, eliminar paneles y crear nuevos.
/admin/structure/dashboards/add
Formulario para crear una nueva entidad de panel. Define la etiqueta administrativa, nombre de máquina, categoría, configuración de visualización y peso.
/admin/structure/dashboards/manage/{dashboard}
Formulario de edición para modificar la configuración del panel incluyendo etiqueta, categoría, configuración del tema del frontend y peso.
/admin/system/dashboards-settings
Configuración global para la apariencia de los paneles, principalmente para colores y estilos de gráficos.
/dashboard/{dashboard}
Ver un panel específico con todos sus bloques y widgets configurados. Los usuarios con permiso pueden personalizar el diseño desde esta página.
/dashboards/{dashboard}/layout
Interfaz de Layout Builder para configurar el diseño predeterminado del panel. Añada, elimine y organice bloques usando arrastrar y soltar. Todos los plugins de panel aparecen como bloques que pueden colocarse en regiones del diseño.
/dashboard/{dashboard}/override
Interfaz de Layout Builder para que los usuarios personalicen su propia vista del panel. Los cambios se almacenan por usuario y no afectan al panel predeterminado.
/admin/structure/dashboards/manage/{dashboard}/permissions
Configure permisos basados en roles específicamente para este panel, incluyendo permisos de visualización y sobrescritura.
Permissions 3
Hooks 1
hook_dashboards_dashboard_info_alter
Permite a los módulos alterar las definiciones de plugins de panel
Troubleshooting 6
Actualice Layout Builder Restrictions a la versión 2.2 o posterior. Las versiones anteriores tienen un error que impide guardar con plugins de almacenamiento de sección personalizados.
Asegúrese de que la casilla 'Mostrar siempre en tema del frontend' esté desmarcada al editar el panel. También verifique que el usuario tenga el permiso 'ver el tema de administración'.
Habilite el módulo Database Logging (dblog) del núcleo. Estos plugins requieren datos de watchdog para funcionar.
Habilite el módulo Update Manager del núcleo y asegúrese de que cron esté ejecutándose para obtener información de actualizaciones.
Verifique que el usuario tenga el permiso 'puede sobrescribir el panel {dashboard_id}' para ese panel específico.
Cree una View con un tipo de visualización 'Embed'. Solo las Views configuradas con visualizaciones embebidas pueden usarse con el plugin view_embed.
Security Notes 4
- Los datos de personalización de paneles se almacenan por usuario usando la API de datos de usuario y se eliminan cuando los usuarios son removidos o el módulo es desinstalado
- El permiso 'administrar paneles' otorga control total sobre todos los paneles - asígnelo solo a roles de administrador de confianza
- Los permisos de visualización y sobrescritura se generan dinámicamente para cada panel, permitiendo control de acceso detallado
- El módulo maneja correctamente la serialización de datos de sobrescritura de usuario con clases permitidas restringidas para prevenir vulnerabilidades de inyección de objetos