Wie konfiguriere ich einen exponierten Filter in einer Ansicht mit einer Datumsauswahl?


11

Wie kann ich einen exponierten Filter konfigurieren, damit Benutzer den Inhalt meiner Website nach Erstellungsdatum filtern können, vorzugsweise mithilfe einer Datumsauswahl?

Ich habe versucht, Content: Authored on als Filter zu verwenden, aber ich erhalte ein Textfeld zur Eingabe des Datums für die Eingabe eines Datums / einer Uhrzeit im Format JJJJ-MM-TT HH: MM: SS , wodurch die Eingabe des Datums für Benutzer schwieriger wird und fehleranfälliger.

Was ist der Unterschied zwischen Drupal 8 und Drupal 7 mit Views 7.x-3?


Haben Sie gerade versucht, einen der Filter "Inhalt: Erstellt" (es gibt verschiedene Geschmacksrichtungen) hinzuzufügen und ihn verfügbar zu machen?
mpdonadio

Filter "Inhalt: Erstellt" nicht gefunden. Nur "Inhalt: Verfasst am", "Inhaltsrevision: Verfasst am" und "Taxonomiebegriff: Veröffentlichungsdatum".
Sam

Ging durch Erinnerung. Funktioniert "Content: Authored on"?
mpdonadio

"Inhalt: Verfasst am" bietet Benutzern ein Eingabefeld zur Eingabe des Datums im Format JJJJ-MM-TT HH: MM: SS, was zu kompliziert ist. Wie zeige ich ein Dropdown-Menü für Datum, Monat und Jahr oder eine Datumsauswahl?
Sam

3
Das wird noch nicht unterstützt, drupal.org/node/2648950 Ich hoffe, dass das diese Woche und in 8.2.x abgeschlossen wird.
mpdonadio

Antworten:



1

Vor ein paar Tagen wurde ein neuer Patch veröffentlicht. Ich teste ihn in einem Projekt und er funktioniert einwandfrei. Hier ist das Problem:

Verwenden Sie das Formularelement vom Typ Datum anstelle des Textfelds, wenn Sie ein Datum in einem exponierten Filter auswählen

Problem / Motivation

Beim Hinzufügen eines Datums- / Uhrzeitfilters kann ich nicht einfach ein Datum auswählen. Ich muss manuell ein Datum eingeben, das sehr schlecht ist.

Und der Patch ist die Nummer 65


1

Das Modul " Besser exponierte Filter" lässt sich in die Datumsfeldfelder einschließlich des Datums-Popups integrieren. Mit diesem Modul können Sie einfach einen exponierten Filter mit dem Datums-Popup hinzufügen.

Es ist in der Beta für jetzt, aber Sie können es verwenden.


Wenn Sie die Entitäts-API zum Hinzufügen von Feldern (über BaseFieldDefinitions) anstelle der Feld-API verwenden: BEF funktioniert nicht für Datums- / Uhrzeitfelder, sondern nur für Zeitstempel.
Aaronbauman

1

Fügen Sie die jquery-Datumsauswahl für diese Seite als Abhängigkeit hinzu. 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"
      });
    });
  }
};

Ansichten-ausgesetzt-Form-- Ansichten-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') }}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.