Views Bulk Operations (VBO)
Views Bulk Operations mejora Drupal Views permitiendo ejecutar acciones en filas seleccionadas, proporcionando casillas de verificación para la selección de filas y un menú desplegable/botones para las operaciones disponibles.
views_bulk_operations
Install
composer require 'drupal/views_bulk_operations:^4.4'
Overview
Views Bulk Operations (VBO) extiende el módulo Views de Drupal añadiendo la capacidad de realizar operaciones masivas en entidades mostradas en los resultados de una vista. Proporciona una interfaz potente para seleccionar múltiples elementos y ejecutar acciones sobre ellos simultáneamente.
El módulo muestra casillas de verificación delante de cada fila mostrada, junto con un cuadro de selección (o botones) que contiene las operaciones disponibles. Los usuarios pueden seleccionar elementos individuales, seleccionar todos los elementos de la página actual o seleccionar todos los elementos de todas las páginas. Las acciones pueden procesarse inmediatamente o mediante operaciones por lotes para conjuntos de datos grandes.
VBO se integra perfectamente con el sistema de plugins Action del núcleo de Drupal mientras proporciona funcionalidades mejoradas que incluyen preconfiguración de acciones en el administrador de Views, pasos de confirmación, procesamiento por lotes configurable y seguimiento de selección multipágina con AJAX.
Features
- Añade un campo 'Views bulk operations' a cualquier vista de entidad que muestra casillas de verificación para la selección de elementos
- Proporciona un menú desplegable de acciones o botones de acción para ejecutar operaciones en las entidades seleccionadas
- Soporta la funcionalidad 'Seleccionar todo' en todas las páginas, no solo en la página actual
- Seguimiento de selección multipágina con AJAX con actualizaciones de contador en tiempo real
- Soporte de procesamiento por lotes para manejar grandes cantidades de entidades eficientemente
- Tamaño de lote configurable para un rendimiento óptimo
- Preconfiguración de acciones en la interfaz de administración de Views - establece valores predeterminados para la configuración de acciones
- Paso de confirmación opcional antes de la ejecución de la acción con texto de ayuda personalizable
- Soporte tanto para acciones del núcleo como para acciones VBO personalizadas con capacidades mejoradas
- Acción incorporada para eliminar entidades/traducciones
- Acción para cancelar cuentas de usuario con múltiples métodos de cancelación
- Comandos Drush para ejecutar acciones desde la línea de comandos
- Arquitectura basada en eventos que permite a otros módulos integrar vistas de entidades personalizadas
- Capacidades de sobrescritura de etiquetas y mensajes para acciones
- Opción para limpiar la selección cuando cambian los filtros expuestos
- Opciones de visualización flexibles para el cuadro de selección y la casilla de seleccionar todo
Use Cases
Moderación masiva de contenido
Crea una vista de contenido no publicado con un campo VBO. Selecciona múltiples nodos y usa la acción 'Publicar contenido' para publicarlos todos a la vez. Configura un paso de confirmación para revisar las selecciones antes de la ejecución.
Gestión masiva de cuentas de usuario
Construye una vista de cuentas de usuario filtrada por fecha de registro o rol. Usa la acción 'Cancelar cuentas de usuario' para deshabilitar masivamente cuentas de spam o usuarios inactivos, con opciones para preservar o eliminar su contenido.
Limpieza automatizada de contenido vía Drush
Configura una tarea cron usando 'drush vbo-execute' para eliminar automáticamente contenido anterior a cierta fecha. Usa argumentos de vista y filtros expuestos para apuntar a tipos de contenido o condiciones específicas.
Eliminación de traducción de contenido multilingüe
Muestra una vista de traducciones de contenido y usa VBO para eliminar selectivamente traducciones de idiomas específicos mientras se preserva el contenido del idioma predeterminado.
Operaciones masivas personalizadas para lógica de negocio
Crea un plugin de acción personalizado extendiendo ViewsBulkOperationsActionBase para implementar lógica de negocio específica del sitio, como enviar notificaciones, actualizar campos personalizados o integrarse con sistemas externos. Usa preconfiguración para valores predeterminados definidos por el administrador y configuración en tiempo de ejecución para entrada del usuario.
Restringir operaciones masivas por rol
Habilita el submódulo Actions Permissions para crear permisos granulares. Asigna permisos 'execute [action] [entity_type]' a roles específicos, permitiendo a los editores de contenido publicar pero no eliminar, mientras los administradores tienen acceso completo.
Tips
- Usa procesamiento por lotes para cualquier operación que afecte más de 50-100 entidades para prevenir tiempos de espera
- Habilita el submódulo Actions Permissions en producción para controlar quién puede ejecutar operaciones destructivas
- Usa la preconfiguración de acciones para establecer valores predeterminados sensatos y reducir errores del usuario
- Los comandos Drush son potentes para flujos de trabajo automatizados - combínalos con cron para operaciones masivas programadas
- Al crear acciones personalizadas, extiende ViewsBulkOperationsActionBase para soporte completo de características VBO incluyendo acceso al contexto y la vista
- Usa el módulo de ejemplo como plantilla al desarrollar acciones personalizadas - demuestra patrones de preconfiguración, configuración y ejecución
- Para vistas no estándar (como Search API), implementa el suscriptor ViewsBulkOperationsEvent para proporcionar información del tipo de entidad y getter
Technical Details
Admin Pages 3
/admin/structure/views/view/{view_id}
Configura los ajustes del campo Views Bulk Operations dentro de la configuración de una View. Aquí es donde los administradores seleccionan qué acciones están disponibles, configuran las opciones de procesamiento por lotes y establecen las preferencias de interfaz.
/views-bulk-operations/configure/{view_id}/{display_id}
Formulario de configuración mostrado cuando se selecciona una acción configurable. Permite a los usuarios establecer opciones específicas de la acción antes de la ejecución.
/views-bulk-operations/confirm/{view_id}/{display_id}
Página de confirmación mostrada antes de ejecutar una acción cuando se requiere confirmación.
Hooks 1
hook_views_data_alter
Registra el campo de formulario masivo VBO como un campo global de Views disponible en todas las vistas de tipos de entidad.
Drush Commands 2
drush views:bulk-operations:execute
Ejecuta una acción en todos los resultados de la vista especificada. Útil para procesamiento masivo automatizado, tareas cron o administración por línea de comandos.
drush views:bulk-operations:list
Lista todas las acciones VBO disponibles con sus IDs, etiquetas y tipos de entidad aplicables.
Troubleshooting 6
VBO está disponible bajo la categoría 'Global' en los campos de Views. Asegúrate de que el módulo esté habilitado y limpia las cachés. La vista debe estar basada en un tipo de entidad (contenido, usuarios, etc.) para que VBO funcione.
Asegúrate de haber seleccionado elementos usando las casillas de verificación. Si usas selección multipágina, verifica que las actualizaciones AJAX estén funcionando (revisa la consola del navegador para errores de JavaScript). Limpia la selección e intenta de nuevo.
Reduce el tamaño del lote en los ajustes del campo VBO. El predeterminado es 10, pero acciones complejas pueden requerir lotes más pequeños. También revisa los ajustes de PHP max_execution_time y memory_limit.
Las acciones se filtran por tipo de entidad. Si una acción especifica un tipo (ej. 'node'), no aparecerá en vistas de usuarios. También verifica si el submódulo Actions Permissions está habilitado y el usuario tiene los permisos requeridos.
Este es el comportamiento esperado cuando 'Limpiar selección cuando cambien los filtros expuestos' está habilitado (predeterminado). Deshabilita esta opción en los ajustes del campo VBO para mantener la selección a través de cambios de filtro.
Esto ocurre cuando la tabla base de la vista no proporciona información de tipo de entidad que VBO pueda detectar. Los módulos contrib necesitan implementar el evento views_bulk_operations.view_data para integrarse con VBO.
Security Notes 5
- Siempre habilita el submódulo Actions Permissions en entornos de producción para restringir el acceso a operaciones destructivas
- Las acciones de Eliminar y Cancelar Usuario realizan operaciones irreversibles - considera añadir pasos de confirmación
- Las operaciones VBO se ejecutan con los permisos del usuario actual - se realizan verificaciones de acceso a entidades antes de cada operación
- Los comandos Drush se ejecutan como el usuario especificado (predeterminado: usuario 1) - asegura tu acceso a Drush apropiadamente
- Se crean registros de auditoría para eliminaciones de entidades - revisa watchdog/dblog para rastrear operaciones masivas