Как настроить открытый фильтр в представлении, используя средство выбора даты?

11

Как настроить открытый фильтр, чтобы пользователи могли фильтровать содержимое моего сайта по дате создания, предпочтительно с помощью средства выбора даты?

Я пытался использовать Content: Authored on в качестве фильтра, но у меня появляется текстовое поле для ввода даты для ввода даты / времени в формате гггг-мм-дд чч: мм: сс , что затрудняет ввод даты для пользователей и более подвержен ошибкам.

В чем разница между Drupal 8 и Drupal 7 с Views 7.x-3?

Сэм
источник
Вы только что пытались добавить один из фильтров "Content: Created" (есть разные варианты) и выставить его?
mpdonadio
Не удалось найти фильтр «Содержимое: Создано». Иметь только «Содержание: Автор», «Редакция содержимого: Автор» и «Термин таксономии: Дата публикации».
Сэм
Пошло по памяти. Работает ли "Контент: Автор"?
mpdonadio
«Content: Authored on» предоставляет пользователям поле ввода для ввода даты в формате гггг-мм-дд чч: мм: сс, что слишком сложно. Как показать дату, месяц и год выпадающего списка или выбора даты?
Сэм
3
Это пока не поддерживается, drupal.org/node/2648950 Я надеюсь, что это будет завершено на этой неделе и в 8.2.x.
mpdonadio

Ответы:

5

Вы можете использовать модуль Date Popup .

Добавляет собственный всплывающий виджет даты HTML 5 ко всем полям даты в фильтрах представлений.

Поскольку элемент формы Использовать тип даты вместо текстового поля при выборе даты в открытом фильтре все еще выполняется.

Мильковский
источник
1

Есть новый патч, выпущенный несколько дней назад, я тестирую его в проекте, и он отлично работает. Вот проблема:

Используйте элемент формы типа date вместо текстового поля при выборе даты в открытом фильтре

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

При добавлении выставленного фильтра даты и времени я не могу просто выбрать дату - мне приходится вручную вводить дату, что очень плохо для UX.

И патч это номер 65

Адриан Сид Альмагуер
источник
1

Модуль Better Exposed Filters интегрируется с полями типа даты, включая всплывающее окно даты. Вы можете использовать этот модуль, чтобы легко добавить открытый фильтр с всплывающей датой.

Сейчас в бета-версии, но вы можете использовать его.

Лавжит С.
источник
В случае, если вы используете api-сущность для добавления полей (через BaseFieldDefinitions), вместо поля api: BEF не работает для полей даты и времени, а только для отметок времени.
Ааронбауман
1

Добавьте указатель даты jquery для этой страницы в качестве зависимости. your_theme.libraries.yml

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

сайт-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 -cted-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') }}
Разим Ахмад
источник