Come configurare un filtro esposto in una vista usando un selettore data?


11

Come posso configurare un filtro esposto in modo che gli utenti possano filtrare il contenuto del mio sito per data di creazione, preferibilmente utilizzando un selettore di date?

Ho provato a utilizzare Contenuto: creato come filtro, ma mi viene assegnato un campo di testo per inserire la data per inserire una data / ora nel formato aaaa-mm-gg hh: mm: ss , il che rende più difficile inserire la data per gli utenti e più soggetto a errori.

Qual è la differenza tra Drupal 8 e Drupal 7 con Views 7.x-3?


Hai appena provato ad aggiungere uno dei filtri "Contenuti: creati" (ci sono diversi gusti) ed esporlo?
mpdonadio

Impossibile trovare il filtro "Contenuto: creato". Hanno solo "Contenuto: Autore del", "Revisione del contenuto: Autore del" e "Termine di tassonomia: Data di pubblicazione".
Sam,

Sono andato dalla memoria. "Content: Authored on" funziona?
mpdonadio

"Contenuto: creato il" fornisce una casella di input per gli utenti per inserire la data nel formato aaaa-mm-gg hh: mm: ss, che è troppo complicato. Come mostrare un menu a discesa per la data, il mese e l'anno o il selettore della data?
Sam,

3
Questo non è ancora supportato, drupal.org/node/2648950 Spero che venga concluso questa settimana e in 8.2.x.
mpdonadio

Risposte:




1

Il modulo Filtri migliori esposti si integra con i campi del tipo di data, incluso il popup della data. È possibile utilizzare questo modulo per aggiungere facilmente un filtro esposto con il popup della data.

È in beta per ora ma puoi usarlo.


Nel caso in cui si utilizzi api entità per aggiungere campi (tramite BaseFieldDefinitions), invece di api campo: BEF non funziona per i campi datetime, funziona solo per i timestamp.
aaronbauman,

1

Aggiungi il selettore della data jquery per quella pagina come dipendenza. 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-expos-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') }}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.