Як налаштувати відкритий фільтр у поданні за допомогою вибору дати?


11

Як я можу налаштувати відкритий фільтр, щоб користувачі могли фільтрувати вміст мого сайту за датою створення, бажано, використовуючи інструмент вибору дати?

Я спробував використовувати Content: Авторизований як фільтр, але мені вводиться текстове поле для введення дати для введення дати / часу у форматі yyyy-mm-dd hh: mm: ss , що ускладнює введення дати для користувачів і більше схильних до помилок.

Яка різниця між Drupal 8 та Drupal 7 із переглядами 7.x-3?


Ви щойно спробували додати один із фільтрів "Вміст: Створений" (є різні смаки) та викрити його?
mpdonadio

Не вдається знайти фільтр "Вміст: Створено". Майте лише "Вміст: Авторство", "Перегляд вмісту: Авторство" та "Термін таксономії: Дата публікації".
Сем

Пішли по пам’яті. Чи працює "Вміст: Автор"?
mpdonadio

"Вміст: Авторизовано увімкнено" дає поле для введення користувачам дати введення дати у форматі "рр-гм-дд hh: mm: ss", що є занадто складним. Як показати дату, місяць та рік випадаючого або вибору дати?
Сем

3
Це ще не підтримується, drupal.org/node/2648950 Я сподіваюся, що цей тиждень перетвориться на 8.2.x.
mpdonadio

Відповіді:



1

Є новий патч, випущений кілька днів тому, я тестую його в проекті, і він прекрасно працює. Ось питання:

Використовуйте елемент форми типу дати замість текстового поля при виборі дати у відкритому фільтрі

Проблема / мотивація

Додаючи фільтр, що піддається впливу дат, я не можу просто вибрати дату - мені потрібно вручну ввести дату, яка дуже погана.

А пластир - це число 65


1

Модуль Better Exposed Filters інтегрується з полями типу дати, включаючи спливаючу дату. За допомогою цього модуля можна легко додати відкритий фільтр із спливаючим датою.

Зараз у бета-версії, але ви можете ним користуватися.


Якщо ви використовуєте сутність api для додавання полів (через BaseFieldDefinitions), замість поля api: BEF не працює для полів дати, працює лише для міток часу.
aaronbauman

1

Додайте інструмент вибору дати jquery для цієї сторінки як залежність. 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"
      });
    });
  }
};

view-izpostav-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') }}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.