Scheduled Transitions
Permite a los usuarios programar revisiones de contenido para cambiar su estado de moderación en una fecha y hora específicas.
scheduled_transitions
Install
composer require 'drupal/scheduled_transitions:^2.8'
composer require 'drupal/scheduled_transitions:^2.7'
Overview
Scheduled Transitions es un potente módulo de automatización de flujos de trabajo que se integra con el sistema de Content Moderation de Drupal. Permite a los editores de contenido y administradores programar cambios de estado para las revisiones de entidades en momentos predeterminados, automatizando el proceso del flujo de trabajo de publicación.
El módulo crea un tipo de entidad personalizado para almacenar las transiciones programadas y proporciona una interfaz completa para gestionarlas. Cada transición programada registra la entidad objetivo, la revisión, el nuevo estado de moderación, la fecha de ejecución y el usuario que la programó. Las transiciones pueden apuntar a una revisión específica o utilizar automáticamente la última revisión en el momento de la ejecución.
El procesamiento se realiza a través del sistema de colas de Drupal en un proceso de dos pasos: primero, las transiciones listas se añaden a la cola, luego los trabajadores de cola ejecutan los cambios de estado reales. Esto puede automatizarse mediante cron o gestionarse manualmente usando comandos de Drush.
El módulo soporta sitios multilingües rastreando el idioma de la revisión que se está transicionando, y maneja escenarios complejos como recrear borradores pendientes después de publicar una revisión anterior.
Features
- Programar cualquier revisión de entidad para transicionar a un estado de moderación diferente en una fecha y hora específicas
- Soporte para programar la última revisión dinámicamente - se utilizará la última revisión real en el momento de la ejecución
- Opción para recrear borradores pendientes después de publicar revisiones históricas para preservar el trabajo no publicado
- Configuración por tipo de entidad y bundle para habilitar transiciones programadas
- Sistema de permisos dinámico que genera permisos de visualización, adición y reprogramación por tipo de entidad/bundle
- Plantillas de mensaje de registro de revisión personalizables con soporte de tokens para detalles de transición
- Mensajes de registro de revisión que el usuario puede sobrescribir por transición programada cuando está habilitado
- Integración de pestaña de entidad que muestra todas las transiciones programadas para cualquier entidad habilitada
- Interfaz de administración que lista todas las transiciones programadas en el sitio con integración de Views
- Funcionalidad de reprogramación para cambiar el tiempo de ejecución de transiciones pendientes mediante diálogo modal
- Procesamiento de cola en dos pasos: la creación y ejecución de trabajos pueden separarse para un control detallado
- Retención configurable de transiciones procesadas con enlaces opcionales a las revisiones creadas
- Limpieza automática de transiciones programadas cuando se eliminan las entidades o revisiones anfitrionas
- Función de operaciones espejo para diferir las verificaciones de acceso a operaciones estándar de entidad como actualizar
- Sistema de tokens que proporciona información del estado de transición para registros de revisión y otras integraciones
- Sistema de eventos que permite lógica personalizada para determinar qué revisión debe transicionarse
- Comando de Drush para activar manualmente la creación de trabajos en cola
- Integración completa con Views con manejadores de campos personalizados para etiquetas de estado y enlaces de revisión
Use Cases
Publicación programada
Programar contenido para ser publicado en una fecha y hora específicas. Crear un nodo en estado Borrador, luego añadir una transición programada para moverlo a Publicado en el momento deseado. El módulo creará automáticamente la revisión publicada cuando llegue el momento programado.
Contenido con tiempo limitado
Publicar contenido que debe despublicarse automáticamente más tarde. Después de publicar contenido, añadir una transición programada para moverlo a un estado Archivado o No publicado en una fecha futura. Útil para anuncios de eventos, promociones o contenido estacional.
Flujos de trabajo de embargo/levantamiento
Gestionar contenido bajo embargo que debe liberarse en un momento específico. Almacenar contenido embargado en un estado personalizado 'Embargado', luego programar una transición a Publicado cuando el embargo se levante. Se pueden encadenar múltiples transiciones.
Ciclos de revisión de contenido
Mover automáticamente el contenido a través de estados de revisión. Programar una transición de Publicado a estado 'Necesita revisión' a intervalos regulares para asegurar que el contenido se revise y actualice periódicamente.
Programación de reversión
Usar la función de revisión histórica para programar la reversión a una revisión anterior. Seleccionar una revisión específica para transicionar en lugar de la última, útil para reversiones programadas de cambios problemáticos.
Publicación multilingüe
Programar transiciones específicas de idioma de forma independiente. Cada traducción puede tener sus propias transiciones programadas, permitiendo que diferentes idiomas se publiquen en diferentes momentos según los requisitos regionales.
Preservación de borradores durante la publicación
Al publicar una revisión anterior mientras existe un borrador más nuevo, habilitar 'Recrear revisión pendiente' para restaurar automáticamente el borrador sobre la nueva versión publicada, preservando el trabajo en progreso.
Tips
- Ejecute 'drush scheduled-transitions:queue-jobs' y 'drush queue:run scheduled_transition_job' cada 1-5 minutos para una precisión de programación exacta
- Use la opción 'Última revisión' cuando quiera que la transición se aplique a cualquiera que sea el estado actual en el momento de la ejecución, en lugar de una revisión específica
- Habilite 'Recrear revisión pendiente' para preservar el trabajo de borrador al publicar revisiones anteriores
- Refleje operaciones a 'update' para una gestión de permisos más simple - los usuarios con acceso de edición obtienen automáticamente acceso a transiciones programadas
- Use el listado opcional basado en Views en /admin/content/scheduled-transitions para vistas de administración más personalizables
- Las transiciones procesadas pueden retenerse para propósitos de auditoría - configure la duración de retención en los ajustes
- El soporte de tokens en los registros de revisión ayuda a crear rastros de auditoría claros - personalice las plantillas para que coincidan con su flujo de trabajo
- El sistema de eventos permite lógica de selección de revisión personalizada para casos de uso avanzados como pruebas A/B o publicación condicional
Technical Details
Admin Pages 5
/admin/config/workflow/scheduled-transitions
Configurar qué tipos de entidad y bundles pueden usar transiciones programadas, establecer opciones de automatización, personalizar plantillas de mensajes de registro de revisión y configurar el comportamiento de procesamiento.
/admin/content/scheduled-transitions
Listado administrativo de todas las transiciones programadas en el sitio. Muestra la entidad objetivo, la fecha programada y proporciona operaciones para reprogramar o eliminar transiciones. Requiere el permiso 'ver todas las transiciones programadas'.
{entity_canonical}/scheduled-transitions
Pestaña específica de entidad que muestra todas las transiciones programadas para la entidad actual. Muestra información de revisión, cambios de estado, fechas programadas y estado de procesamiento. Disponible en cualquier entidad con transiciones programadas habilitadas.
{entity_canonical}/scheduled-transitions/add
Formulario para crear una nueva transición programada para una entidad. Permite seleccionar una revisión de origen (o la última), elegir una transición/estado objetivo y establecer la fecha de ejecución. Se abre como un diálogo modal.
/admin/scheduled-transition/{scheduled_transition}/reschedule
Formulario modal para cambiar la fecha/hora de ejecución de una transición programada existente.
Permissions 5
Hooks 1
hook_scheduled_transitions_new_revision
No es un hook tradicional - usa el patrón de suscriptor de eventos de Symfony en su lugar. Suscríbase a ScheduledTransitionsEvents::NEW_REVISION para personalizar la selección de revisión.
Drush Commands 2
drush scheduled-transitions:queue-jobs
Crea elementos de cola para todas las transiciones programadas que están listas para ser procesadas (la fecha transition_on ha pasado). Las transiciones se bloquean para evitar procesamiento duplicado.
drush queue:run scheduled_transition_job
Procesa la cola de transiciones programadas. Este es un comando de Drush del core que ejecuta elementos creados por queue-jobs.
Troubleshooting 6
Asegúrese de que cron se ejecute frecuentemente. Verifique si 'Crear trabajos de programación en cron' está habilitado en los ajustes, o ejecute 'drush scheduled-transitions:queue-jobs' manualmente seguido de 'drush queue:run scheduled_transition_job'. Verifique que el tiempo transition_on haya pasado.
Verifique que el tipo de entidad/bundle esté habilitado en los ajustes. Compruebe que los usuarios tengan el permiso apropiado 'view scheduled transitions {type} {bundle}'. Si usa operaciones espejo, asegúrese de que los usuarios tengan el permiso de la operación reflejada (típicamente 'update').
Asegúrese de que la transición de flujo de trabajo seleccionada sea válida para el estado actual de la revisión de origen. Verifique si el flujo de trabajo o los estados han sido modificados desde que se creó la transición.
Otorgue a al menos un rol los permisos 'view scheduled transitions' y 'add scheduled transitions' para los tipos de entidad/bundles habilitados en /admin/people/permissions.
Las transiciones se bloquean por 30 minutos cuando se añaden a la cola. Si el procesamiento falló, espere a que el bloqueo expire o actualice manualmente el campo locked_on en la base de datos. Revise los logs en busca de errores de procesamiento.
Los nombres de estado en los registros de revisión se determinan en el momento de la ejecución. Si los estados del flujo de trabajo fueron renombrados después de programar, se usarán los nuevos nombres. Si los estados fueron eliminados, aparece un mensaje de respaldo.
Security Notes 4
- El permiso 'administer scheduled transitions' tiene acceso restringido y solo debe otorgarse a administradores de confianza
- La ejecución de transiciones respeta los permisos de transición de flujo de trabajo - los usuarios solo pueden programar transiciones que están autorizados a realizar
- Las operaciones espejo difieren a las verificaciones de acceso de entidad, manteniendo los patrones de control de acceso existentes
- Las transiciones programadas se eliminan automáticamente cuando se elimina su entidad o revisión anfitriona, previniendo datos huérfanos