Configuration Views
Permite a los constructores de sitios crear Views basadas en entidades de configuración, como roles, menús, estilos de imagen y tipos de contenido.
config_views
Install
composer require 'drupal/config_views:^2.1'
Overview
Configuration Views extiende el módulo Views de Drupal para soportar entidades de configuración como fuente de datos. Esto permite a los constructores de sitios crear listas personalizadas de elementos de configuración como tipos de contenido, menús, estilos de imagen, vocabularios de taxonomía, roles de usuario y prácticamente cualquier otra entidad de configuración en Drupal.
El módulo proporciona un plugin de consulta personalizado que aprovecha la API Entity Query de Drupal para obtener entidades de configuración, junto con manejadores de filtros especializados para campos de cadena y booleanos. También incluye un manejador de campo para mostrar operaciones de entidad (editar, eliminar, etc.) y un plugin de Entity Reference Selection que permite usar Views como fuente para campos de referencia de entidad que apuntan a entidades de configuración.
Tras la instalación, el módulo proporciona 14 Views preconfiguradas que reemplazan las páginas de listado de administración estándar de Drupal. Estas Views pueden personalizarse, extenderse con filtros expuestos, ordenarse, paginarse y exportarse a varios formatos, llevando todo el poder de Views a las interfaces de gestión de configuración.
Features
- Plugin de consulta Views personalizado (views_config_entity_query) que permite consultar entidades de configuración usando la API Entity Query de Drupal
- Plugin de filtro de cadenas (config_entity_string) con operadores: igual, no igual, contiene, comienza con, termina con, está vacío, no está vacío
- Plugin de filtro booleano (config_entity_boolean) para filtrar campos booleanos de entidades de configuración
- Plugin de campo de operaciones (config_entity_operations) que renderiza enlaces de operaciones de entidad (editar, eliminar, etc.)
- Plugin Entity Reference Selection (config_views) que permite a Views filtrar referencias de entidades de configuración
- 14 Views preconstruidas que reemplazan páginas de administración del core para: tipos de comentario, formularios de contacto, tipos de contenido, tipos de bloque personalizado, formatos de fecha, modos de formulario, estilos de imagen, menús, accesos directos, vocabularios de taxonomía, formatos de texto, roles de usuario, modos de vista y lista de views
- Categorización automática del asistente de Views que agrupa las Views de entidades de configuración bajo 'Configuration' en el formulario Añadir View
- Soporte para funcionalidad completa de Views incluyendo filtros expuestos, ordenamiento, paginación y varios formatos de visualización
- Implementación de hook para organizar los asistentes de view agrupando opciones de contenido y configuración alfabéticamente
Use Cases
Crear una lista filtrada de tipos de contenido
Los constructores de sitios pueden personalizar la view de Tipos de contenido para añadir filtros expuestos, permitiendo a los administradores buscar tipos de contenido específicos por nombre o filtrar por propiedades como si tienen descripción. La view puede ordenarse por cualquier campo disponible.
Construir un campo de referencia de entidad basado en roles
Usando el manejador Entity Reference Selection config_views, los desarrolladores pueden crear un campo de referencia de entidad que referencie roles de usuario, filtrado por una View. Por ejemplo, un campo podría referenciar solo roles que tengan un permiso específico o cumplan ciertos criterios definidos en los filtros de la View.
Personalizar páginas de administración con características de Views
Reemplazar las páginas de listado de administración estándar de Drupal con versiones potenciadas por Views que soporten paginación, filtros de búsqueda expuestos, columnas ordenables y la capacidad de exportar listas (con módulos de exportación apropiados como Views Data Export).
Crear un panel de todas las Views habilitadas
Habilitar la View views_list para obtener una lista personalizable de todas las Views en el sitio. La View muestra views habilitadas y deshabilitadas por separado y puede personalizarse para añadir filtros por etiqueta, mostrar solo views con visualizaciones específicas, etc.
Gestionar estilos de imagen con búsqueda
Personalizar la View image_styles para añadir un filtro expuesto en el nombre del estilo, facilitando encontrar estilos de imagen específicos en sitios con muchas definiciones de estilos.
Tips
- Algunas Views están deshabilitadas por defecto. Revísalas en /admin/structure/views y habilita las que quieras usar.
- El módulo automáticamente hace disponibles todos los tipos de entidades de configuración como tablas base de Views, no solo las 14 Views preconstruidas.
- Al crear una nueva View, busca bajo el grupo 'Configuration' en el desplegable 'Mostrar' para encontrar todos los tipos de entidades de configuración disponibles.
- El manejador Entity Reference Selection config_views es útil cuando necesitas referenciar entidades de configuración (como roles) desde campos de referencia de entidad y quieres capacidades de filtrado de Views.
- Todas las características estándar de Views funcionan con Views de entidades de configuración: filtros expuestos, ordenamientos, paginadores, diferentes tipos de visualización, relaciones y más.
Technical Details
Admin Pages 14
/admin/structure/comment
Lista todos los tipos de comentario definidos en el sitio. Muestra la etiqueta del tipo de comentario, descripción y proporciona enlaces de operaciones para editar y gestionar cada tipo de comentario. Reemplaza la página de administración de tipos de comentario del core.
/admin/structure/contact
Lista todos los formularios de contacto. Muestra la etiqueta del formulario, destinatarios (campo de respuesta) y enlaces de operaciones. Esta View está deshabilitada por defecto.
/admin/structure/types
Lista todos los tipos de contenido con sus nombres, descripciones y enlaces de operaciones. Proporciona un reemplazo basado en Views para la página de administración de tipos de contenido del core con soporte completo de paginación.
/admin/structure/block/block-content/types
Lista todos los tipos de bloque personalizado con etiquetas enlazadas a sus páginas de edición, descripciones y enlaces de operaciones.
/admin/config/regional/date-time
Lista todas las configuraciones de formato de fecha mostrando el nombre del formato, patrón y enlaces de operaciones.
/admin/structure/display-modes/form
Lista todos los modos de formulario de entidad agrupados por tipo de entidad objetivo. Muestra el nombre del modo de formulario y operaciones. Esta View está deshabilitada por defecto.
/admin/config/media/image-styles
Lista todos los estilos de imagen mostrando el nombre del estilo y enlaces de operaciones para editar, vaciar y eliminar estilos.
/admin/structure/menu
Lista todos los menús con sus nombres (mostrados en negrita), descripciones y enlaces de operaciones. Ordenados alfabéticamente por etiqueta.
/admin/config/user-interface/shortcut
Lista todos los conjuntos de accesos directos con sus nombres y enlaces de operaciones.
/admin/structure/taxonomy
Lista todos los vocabularios de taxonomía ordenados alfabéticamente por nombre, con enlaces de operaciones para gestionar términos y configuración del vocabulario.
/admin/config/content/formats
Lista todos los formatos de texto/formatos de filtro con sus nombres y enlaces de operaciones. Esta View está deshabilitada por defecto.
/admin/people/roles
Lista todos los roles de usuario ordenados por peso, mostrando etiquetas de rol y enlaces de operaciones. Esta View está deshabilitada por defecto.
/admin/structure/display-modes/view
Lista todos los modos de vista de entidad agrupados por tipo de entidad objetivo. Muestra el nombre del modo de vista y operaciones. Esta View está deshabilitada por defecto.
/admin/structure/views
Lista todas las Views separadas en secciones Habilitadas y Deshabilitadas. Muestra el nombre de la view (como encabezado h3), descripción, etiqueta y operaciones. Las views deshabilitadas aparecen en un bloque de pie de página. Esta View está deshabilitada por defecto.
Hooks 2
hook_views_data
Implementa hook_views_data() para registrar todos los tipos de entidades de configuración como tablas base de Views. Descubre dinámicamente todas las entidades de configuración y crea definiciones de datos de Views incluyendo campos, filtros, ordenamientos y argumentos basados en el esquema de configuración de la entidad.
hook_form_FORM_ID_alter
Implementa hook_form_view_add_form_alter() para reorganizar el desplegable de selección del asistente de Views, agrupando los tipos de entidades de configuración bajo un optgroup 'Configuration' y los tipos de contenido bajo 'Content', con ordenamiento alfabético dentro de cada grupo.
Troubleshooting 4
Varias Views están deshabilitadas por defecto porque pueden no replicar perfectamente el diseño de la página de administración del core. Habilítalas en /admin/structure/views solo después de revisar que cumplan tus necesidades. Luego puedes personalizarlas para que coincidan con tus requisitos.
El módulo actualmente proporciona campos limitados (nombre, descripción, id, etc.). Obtener campos específicos de entidad para todos los tipos de entidades de configuración es un trabajo en progreso. Usa los campos disponibles del esquema de configuración o crea manejadores de campos personalizados.
Las Views para gestionar campos (entidades field_config) aún no están implementadas. Esta es una limitación conocida.
Las consultas de entidades de configuración usan un mecanismo de paginación diferente a las consultas SQL. Asegúrate de usar un tipo de paginador compatible (paginador completo o mini paginador funcionan correctamente).
Security Notes 2
- Cada View preconfigurada respeta los requisitos de permisos del core (ej., 'administer content types', 'administer permissions'). El control de acceso está configurado en cada View.
- Al personalizar Views o crear nuevas basadas en entidades de configuración, asegúrate de que las restricciones de acceso apropiadas estén configuradas para prevenir acceso no autorizado a datos de configuración.