web-dev-qa-db-ja.com

日付ピッカーを使用してビューで公開フィルターを構成するにはどうすればよいですか?

公開フィルターを構成して、ユーザーがサイトのコンテンツを作成日(できれば日付ピッカーを使用)でフィルターできるようにするにはどうすればよいですか?

Content:Authored onをフィルターとして使用してみましたが、テキストフィールドに日付を入力してyyyy-mm-dd hh:mm:ss形式。これにより、ユーザーが日付を入力することが難しくなり、エラーが発生しやすくなります。

Drupal 8とDrupal 7 with Views 7.x-3)の違いは何ですか?

11
Sam

Date Popup モジュールを使用できます。

ネイティブHTML 5日付ポップアップウィジェットをビューフィルターのすべての日付フィールドに追加します。

公開されたフィルターで日付を選択するときにテキストフィールドではなく日付タイプのフォーム要素を使用する がまだ進行中であるため。

5
milkovsky

数日前にリリースされた新しいパッチがあり、プロジェクトでテストしたところ、問題なく動作しました。ここに問題があります:

公開されたフィルターで日付を選択するときに、テキストフィールドではなく日付タイプのフォーム要素を使用

問題/動機

日時公開フィルターを追加するとき、単純に日付を選択することはできません。UXが非常に悪い日付を手動で入力する必要があります。

そして パッチは65番です

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') }}
1
Razeem Ahmad

Better Exposed Filters モジュールは、日付ポップアップを含む日付タイプのフィールドと統合されます。このモジュールを使用して、日付ポップアップ付きの公開フィルターを簡単に追加できます。

現時点ではベータ版ですが、使用できます。

1
Lovejit S.