如何使用日期选择器在视图中配置公开的筛选器?


11

如何配置公开的筛选器,以便用户可以按创建日期(最好使用日期选择器)筛选我的网站内容?

我尝试使用“ 内容:作为过滤器创作”,但它为我提供了一个文本字段,用于输入日期,以yyyy-mm-dd hh:mm:ss格式输入日期/时间,这使用户更难以输入日期并且更容易出错。

使用Views 7.x-3的Drupal 8和Drupal 7有什么区别?


您是否刚刚尝试添加“内容:创建的”过滤器之一(有不同的口味)并将其公开?
mpdonadio

找不到“内容:已创建”过滤器。仅具有“内容:作者于”,“内容修订:作者于”和“分类法术语:发布日期”。
山姆

经过记忆。“内容:创作于”是否起作用?
mpdonadio

“内容:创建于”提供了一个输入框,供用户以yyyy-mm-dd hh:mm:ss格式输入日期,这太复杂了。如何显示日期,月份和年份下拉列表或日期选择器?
山姆

3
尚不支持该功能,drupal.org/ node/2648950我希望它能在本周被打包成8.2.x。
mpdonadio

Answers:




1

更好的暴露过滤器模块的日期型字段,包括日期弹出集成。您可以使用此模块轻松地在日期弹出窗口中添加一个公开的过滤器。

它目前处于Beta版,但您可以使用它。


如果您使用实体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"
      });
    });
  }
};

views-exposed-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') }}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.