Jak skonfigurować filtr narażony w widoku za pomocą selektora dat?

11

Jak skonfigurować odsłonięty filtr, aby użytkownicy mogli filtrować zawartość mojej witryny według daty utworzenia, najlepiej przy użyciu selektora dat?

Próbowałem użyć Content: Authored on jako filtru, ale otrzymuję pole tekstowe do wprowadzenia daty i daty / godziny w formacie rrrr-mm-dd gg: mm: ss , co utrudnia wprowadzanie daty użytkownikom i bardziej podatne na błędy.

Jaka jest różnica między 8 a Drupal Drupal 7 z Views 7.x-3?

Sam
źródło
Czy próbowałeś właśnie dodać jeden z filtrów „Treść: Utworzono” (istnieją różne smaki) i go ujawnić?
mpdonadio
Nie można znaleźć filtra „Treść: Utworzono”. Mają tylko „Treść: Autoryzowany na”, „Korekta treści: Autoryzowany na” i „Termin taksonomii: Data publikacji”.
Sam
Poszedł pamięć. Czy działa funkcja „Treść: Autoryzowane w”?
mpdonadio
„Treść: Autoryzowane włączone” daje użytkownikom pole do wprowadzenia daty w formacie rrrr-mm-dd gg: mm: ss, co jest zbyt skomplikowane. Jak wyświetlić listę rozwijaną daty, miesiąca i roku lub próbnik daty?
Sam
3
To nie jest jeszcze obsługiwane, drupal.org/node/2648950 Mam nadzieję, że zostanie to podsumowane w tym tygodniu i w wersji 8.2.x.
mpdonadio

Odpowiedzi:

1

Moduł Better Exposed Filters integruje się z polami typu daty, w tym wyskakującym okienkiem daty. Możesz użyć tego modułu do łatwego dodania odsłoniętego filtra z wyskakującym okienkiem daty.

Na razie jest w wersji beta, ale możesz go używać.

Lovejit S.
źródło
Jeśli do dodawania pól używasz interfejsu API encji (przez BaseFieldDefinitions), zamiast interfejsu API pola: BEF nie działa w przypadku pól daty i godziny, działa tylko w przypadku znaczników czasu.
aaronbauman
1

Dodaj selektor daty jquery dla tej strony jako zależność. 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"
      });
    });
  }
};

views -posed-form-- views-block-name .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
źródło