Views Date Filter

Mejora los filtros de fecha y datetime en Drupal Views con selectores de fecha y una experiencia de usuario mejorada para filtros expuestos.

date_filter
5,539 sites
27
drupal.org

Instalar

Drupal 11, 10, 9 v1.0.2
composer require 'drupal/date_filter:^1.0'

Overview

El módulo Views Date Filter es una solución lista para usar que mejora los filtros de fecha y datetime en Drupal Views. Reemplaza de forma transparente los filtros del core con versiones mejoradas, proporcionando una experiencia más amigable cuando se exponen a los usuarios finales.

Este módulo aborda problemas comunes con el filtrado de fechas del core en Views reemplazando los campos de entrada de texto predeterminados con selectores de fecha HTML5 adecuados. También mejora el etiquetado para operadores de rango (usando "desde" y "hasta" en lugar de "min" y "max") y mapea automáticamente los valores predeterminados de offset a fechas reales en los selectores de fecha de filtros expuestos.

El módulo funciona de forma transparente alterando los plugins de filtro de Views del core tanto para 'date' (campos basados en timestamp como "Fecha de creación") como para 'datetime' (tipos de campo Datetime), facilitando la actualización de Views existentes sin cambios de configuración.

Features

  • Reemplaza los filtros de Views de fecha y datetime del core con versiones mejoradas que usan selectores de fecha HTML5 para la selección de valores en filtros expuestos
  • Mejora las etiquetas de campo para operadores de rango usando etiquetas "desde" y "hasta" en lugar de las menos intuitivas "min" y "max"
  • Soporta tanto modo solo fecha como modo fecha-hora, permitiendo configurar el filtro para incluir o excluir la selección de hora
  • Mapea automáticamente los valores predeterminados de offset (como "-1 month" o "+1 day") a fechas reales en los selectores de fecha de filtros expuestos, haciendo los valores predeterminados más intuitivos para los usuarios
  • Manejo adecuado de zona horaria para campos datetime, respetando tanto la zona horaria de almacenamiento como la configuración de zona horaria del usuario
  • Elimina la selección obsoleta de tipo de entrada (offset vs fecha) que era confusa en los filtros del core
  • Soporta todos los operadores de comparación estándar: igual, no igual, menor que, mayor que, menor o igual que, mayor o igual que, entre y no entre
  • Para filtros de solo fecha con operador igual, maneja automáticamente la coincidencia de rango de día completo (00:00:00 a 23:59:59)

Use Cases

Contenido filtrado por fecha de publicación con selector de fecha

Crear una View que liste contenido con un filtro expuesto 'Fecha de creación'. Después de habilitar este módulo, el filtro expuesto mostrará un selector de fecha en lugar de un campo de texto, facilitando a los usuarios seleccionar fechas sin conocer el formato requerido. Configurar el operador como 'mayor que' y el valor predeterminado como '-1 month' para mostrar contenido reciente por defecto.

Listado de eventos con filtro de rango de fechas

Para un listado de eventos con un campo datetime, agregar un filtro con operador 'entre' y exponerlo. Los usuarios verán selectores de fecha 'desde' y 'hasta' permitiendo una selección intuitiva de rango de fechas. Ambos selectores de fecha funcionan perfectamente para encontrar eventos dentro de un período de tiempo específico.

Encontrar contenido de una fecha específica

Usar el operador igual (=) en un filtro de fecha cuando quieras que los usuarios encuentren todo el contenido de un día específico. El módulo expande automáticamente esto para cubrir el período completo de 24 horas (00:00:00 a 23:59:59), por lo que los usuarios no necesitan especificar horas.

Vista de archivo con preajustes de mes/año

Crear una vista de archivo usando valores de offset como '-1 month', '-3 months' o '-1 year' como valores predeterminados. El módulo convierte estos offsets a fechas reales en el selector de fecha, para que los usuarios vean una fecha de inicio significativa en lugar de texto de offset críptico.

Filtrado de datetime con reconocimiento de zona horaria

Para sitios internacionales donde los campos datetime almacenan datos en UTC pero se muestran en la zona horaria del usuario, el módulo maneja correctamente la conversión de zona horaria. Los filtros funcionan correctamente independientemente de la configuración de zona horaria del usuario, convirtiendo la entrada de la zona horaria del usuario a la zona horaria de almacenamiento para consultas precisas.

Tips

  • La configuración del tipo de filtro (Fecha vs Fecha y hora) en la configuración del filtro de View determina si se muestran selectores de hora junto con los selectores de fecha para filtros expuestos
  • Al usar operadores de rango, puedes dejar vacío el valor 'desde' o 'hasta' para crear rangos abiertos (por ejemplo, 'todo el contenido antes' o 'todo el contenido después' de una fecha específica)
  • Los valores de offset como '+1 day', '-2 weeks' o '-1 month' funcionan como valores predeterminados y se convierten automáticamente a fechas reales cuando se muestran a los usuarios
  • Para campos datetime configurados como 'Solo fecha' en la configuración del campo, el selector de hora se ocultará automáticamente aunque selecciones el tipo de filtro 'Fecha y hora'
  • El módulo usa entradas nativas de fecha y hora HTML5, que pueden renderizarse de forma diferente según el navegador pero proporcionan la mejor experiencia de usuario para cada plataforma

Technical Details

Hooks 2
hook_views_plugins_filter_alter

Altera las definiciones de plugins de filtro de Views para reemplazar las clases de filtro de fecha y datetime del core con las versiones mejoradas del módulo.

hook_help

Proporciona texto de ayuda para el módulo explicando sus características y mejoras sobre los filtros de fecha del core.

Troubleshooting 4
El selector de fecha no aparece en el filtro expuesto

Asegúrate de que el filtro esté correctamente expuesto en la configuración de la View. El selector de fecha solo aparece para filtros expuestos; los filtros no expuestos continúan usando entrada de texto para soportar valores de offset como '+1 day'.

Problemas de zona horaria causando resultados incorrectos

Para campos datetime, asegúrate de que la configuración de zona horaria de tu sitio Drupal sea correcta en /admin/config/regional/settings. El módulo respeta estas configuraciones al convertir entre la entrada del usuario y el almacenamiento en base de datos (UTC).

El filtro no funciona después de la instalación del módulo

Limpia todas las cachés usando 'drush cr' o la página de Rendimiento. Views puede cachear información de plugins de filtro que necesita actualizarse después de que el módulo reemplace los filtros del core.

La parte de hora se ignora en los filtros

Verifica la configuración del filtro en tu View. Si el tipo 'Fecha' está seleccionado en lugar de 'Fecha y hora', las horas no se considerarán. También verifica que el campo en sí soporte hora (campo datetime vs campo solo fecha).