Date All Day
Extiende los campos de rango de fecha y hora del núcleo de Drupal para proporcionar una opción 'Todo el día', permitiendo a los editores marcar eventos que abarcan el día completo sin especificar horas concretas.
date_all_day
Instalar
composer require 'drupal/date_all_day:^2.1'
Overview
El módulo Date All Day mejora los campos de rango de fecha y hora de Drupal añadiendo la funcionalidad 'Todo el día'. Esto es particularmente útil para eventos, horarios y tipos de contenido donde ciertas fechas representan ocurrencias de día completo en lugar de franjas horarias específicas.
Cuando se activa la casilla 'Todo el día', el módulo oculta automáticamente los campos de entrada de hora del editor y almacena la fecha con las horas establecidas a medianoche (00:00:00) para el inicio y fin del día (23:59:59) para el final. Los formateadores entonces detectan este patrón y muestran solo la parte de la fecha sin información de hora, proporcionando una presentación más limpia para eventos de día completo.
El módulo proporciona un widget para la entrada de datos y múltiples formateadores para mostrar las fechas, todos los cuales reconocen el estado de todo el día y formatean la salida en consecuencia.
Features
- Añade una casilla 'Todo el día' a los widgets de campo de rango de fecha y hora que alterna la visibilidad de las entradas de hora
- Establece automáticamente la hora de inicio a 00:00:00 y la hora de fin a 23:59:59 cuando se marca todo el día
- Proporciona tres formateadores de campo (Por defecto, Personalizado, Plano) que muestran formato de solo fecha para fechas de todo el día
- Comportamiento JavaScript que oculta/muestra dinámicamente los campos de hora según el estado de la casilla
- Configuración de formato de solo fecha para formateadores que controla cómo se muestran las fechas de todo el día
- Soporte para fechas de fin opcionales en rangos de fechas
- Clase de utilidad auxiliar para detectar programáticamente si un rango de fechas representa un evento de todo el día
Use Cases
Calendario de eventos con eventos de todo el día
Al construir un tipo de contenido de evento, puedes usar este módulo para permitir a los editores marcar eventos como eventos de 'todo el día' (como festivos, conferencias o fechas límite) sin requerir horas específicas de inicio y fin. El evento se mostrará simplemente como '25 de diciembre de 2024' en lugar de '25 de diciembre de 2024 00:00 - 25 de diciembre de 2024 23:59'.
Programación de conferencias o talleres
Para conferencias o talleres de varios días, los editores pueden crear eventos que abarquen varios días completos. Al marcar la opción 'Todo el día', la visualización mostrará '15 de enero de 2024 - 17 de enero de 2024' sin saturar la salida con información de hora.
Gestión de fechas límite y vencimientos
Al crear tipos de contenido para gestión de proyectos o sistemas académicos, las fechas límite a menudo aplican a un día entero en lugar de una hora específica. La función de todo el día proporciona una forma limpia de representar 'Vence a final del 31 de diciembre' sin especificar horas arbitrarias.
Anuncios de festivos o cierres
Las organizaciones pueden usar este módulo para anunciar cierres de oficinas o festivos. Un rango de fechas de 'todo el día' comunica claramente que el cierre aplica al día completo o rango de días.
Tips
- Usa la configuración 'date_only_format' en el formateador para personalizar cómo se muestran las fechas de todo el día. Puedes crear un formato de fecha personalizado como 'F j, Y' para una salida más legible como '25 de diciembre de 2024'.
- El método de utilidad DateRangeAllDayHelper::isAllDay() puede usarse en código personalizado para verificar programáticamente si un valor de campo de fecha representa un evento de todo el día.
- Al aplicar temas a la salida de fechas, recuerda que las fechas de todo el día usan el tema 'time' con atributos datetime ISO 8601, lo cual es bueno para SEO y accesibilidad.
- El módulo almacena eventos de todo el día con horas 00:00:00 a 23:59:59 en la base de datos, lo que significa que las consultas existentes y vistas que filtran por hora seguirán funcionando correctamente.
- Si usas fechas de fin opcionales, el campo de fecha de fin se marcará como opcional en el formulario, permitiendo eventos de todo el día de un solo día sin requerir una fecha de fin.
Technical Details
Troubleshooting 3
Asegúrate de que la biblioteca JavaScript se está cargando correctamente. Verifica que la biblioteca 'date_all_day/date_all_day' está adjunta al formulario y que no hay errores de JavaScript en la consola del navegador.
Asegúrate de estar usando uno de los formateadores 'Todo el día' (Por defecto Todo el día, Personalizado Todo el día) en la configuración de Administrar visualización. Los formateadores estándar del núcleo no reconocerán el patrón de todo el día y mostrarán las horas.
El formato de fecha se instala cuando se habilita el módulo. Intenta desinstalar y reinstalar el módulo, o crea manualmente el formato de fecha en Administración > Configuración > Regional e idioma > Formatos de fecha y hora.