Comment configurer un filtre exposé dans une vue à l'aide d'un sélecteur de date?


11

Comment puis-je configurer un filtre exposé afin que les utilisateurs puissent filtrer le contenu de mon site par date de création, de préférence à l'aide d'un sélecteur de date?

J'ai essayé d'utiliser Content: Authored on comme filtre, mais un champ de texte me permet d'entrer la date pour entrer une date / heure au format aaaa-mm-jj hh: mm: ss , ce qui rend la saisie de la date plus difficile pour les utilisateurs et plus sujet aux erreurs.

Quelle est la différence entre Drupal 8 et Drupal 7 avec Views 7.x-3?


Vous venez d'essayer d'ajouter l'un des filtres "Contenu: Créé" (il existe différentes versions) et de l'exposer?
mpdonadio

Impossible de trouver le filtre "Contenu: créé". Avoir "Contenu: Créé le", "révision du contenu: Créé le" et "Terme de taxonomie: Date de publication" uniquement.
Sam

Je suis allé de mémoire. Est-ce que "Contenu: Créé sur" fonctionne?
mpdonadio

"Contenu: Créé le" donne une zone de saisie permettant aux utilisateurs de saisir la date au format aaaa-mm-jj hh: mm: ss, ce qui est trop compliqué. Comment afficher une liste déroulante de date, de mois et d'année ou un sélecteur de date?
Sam

3
Ce n'est pas encore pris en charge, drupal.org/node/2648950 J'espère que cela se terminera cette semaine et en 8.2.x.
mpdonadio

Réponses:



1

Il y a un nouveau patch sorti il ​​y a quelques jours, je le teste dans un projet et ça marche très bien. Voici le problème:

Utilisez l'élément de formulaire de type date à la place du champ de texte lors de la sélection d'une date dans un filtre exposé

Problème / motivation

Lors de l'ajout d'un filtre exposé datetime, je ne peux pas simplement sélectionner une date - je dois entrer manuellement une date qui est très mauvaise UX.

Et le patch est le numéro 65


1

Le module Filtres mieux exposés s'intègre aux champs de type de date, y compris la fenêtre contextuelle de date. Vous pouvez utiliser ce module pour ajouter facilement un filtre exposé avec le popup de date.

C'est en version bêta pour l'instant mais vous pouvez l'utiliser.


Dans le cas où vous utilisez l'api d'entité pour ajouter des champs (via BaseFieldDefinitions), au lieu de l'api de champ: BEF ne fonctionne pas pour les champs datetime, ne fonctionne que pour les horodatages.
aaronbauman

1

Ajoutez le sélecteur de date jquery pour cette page en tant que dépendance. 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"
      });
    });
  }
};

vues-formulaire-exposé - vues-nom-bloc .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') }}
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.