¿Cómo configurar un filtro expuesto en una vista usando un selector de fecha?

11

¿Cómo puedo configurar un filtro expuesto para que los usuarios puedan filtrar el contenido de mi sitio por fecha de creación, preferiblemente usando un selector de fecha?

Intenté usar Content: Authored on como filtro, pero me da un campo de texto para ingresar la fecha para ingresar una fecha / hora en el formato aaaa-mm-dd hh: mm: ss , lo que hace que ingresar la fecha sea más difícil para los usuarios y más propenso a errores.

¿Cuál es la diferencia entre Drupal 8 y Drupal 7 con Views 7.x-3?

Sam
fuente
¿Acabas de intentar agregar uno de los filtros "Contenido: creado" (hay diferentes sabores) y exponerlo?
mpdonadio
No se puede encontrar el filtro "Contenido: creado". Tenga "Contenido: creado el", "revisión de contenido: creado el" y "Término de taxonomía: Fecha de publicación" solamente.
Sam
Fui de memoria. ¿Funciona "Contenido: creado en"?
mpdonadio
"Contenido: creado en" proporciona un cuadro de entrada para que los usuarios ingresen la fecha en formato aaaa-mm-dd hh: mm: ss, lo cual es demasiado complicado. ¿Cómo mostrar un menú desplegable de fecha, mes y año o un selector de fecha?
Sam
3
Eso aún no es compatible, drupal.org/node/2648950 Espero que esto se complete esta semana y llegue a 8.2.x.
mpdonadio

Respuestas:

1

El módulo de Mejores filtros expuestos se integra con los campos de tipo de fecha, incluida la ventana emergente de fecha. Puede usar este módulo para agregar fácilmente un filtro expuesto con la ventana emergente de fecha.

Está en Beta por ahora, pero puedes usarlo.

Lovejit S.
fuente
En caso de que esté usando la API de entidad para agregar campos (a través de BaseFieldDefinitions), en lugar de la API de campo: BEF no funciona para los campos de fecha y hora, solo funciona para las marcas de tiempo.
aaronbauman
1

Agregue el selector de fecha jquery para esa página como dependencia. your_theme.libraries.yml

date-picker:
  js:
    script/site-datepicker.js : {}
  dependencies:
    - core/jquery
    - core/jquery.ui.datepicker

site-datepicker.js

Drupal.behaviors.customDatepicker = {
  attach: function (context, settings) {
    jQuery(function () {
      jQuery("#datepicker").datepicker({
        dateFormat: "dd-mm-yy",
        altField: "input[data-drupal-selector=edit-created]",
        altFormat: "yy/mm/dd 23:59:59"
      });
    });
  }
};

vistas-expuestas-forma-- vistas-nombre-de-bloque .html.twig

{% if q is not empty %}
  {#
    This ensures that, if clean URLs are off, the 'q' is added first,
    as a hidden form element, so that it shows up first in the POST URL.
  #}
  {{ q }}
{% endif %}

<input id="datepicker" type="text">
<input data-drupal-selector="edit-created" data-msg-maxlength="This field field has a maximum length of 128." name="created" size="30" maxlength="128" aria-invalid="false" type="hidden">
{{ form|without('created') }}
Razeem Ahmad
fuente