Ricerca categorie
Panoramica
La ricerca per categorie di pagina permette di creare un form per cercare pagine appartenenti a determinate categorie. All'interno della sezione Forms>Ricerca Categorie si possono definire i campi del form di ricerca. Dopo di che il form va associato ad una posizione, tra quelle definite in theme.php, su Aspetto > Ricerca.
Ricerca avanzata e ricerca categorie condividono le stesse posizioni, ma essendo due form differenti non possono essere combinate tra loro.
Implementazione
Creazione della posizione per il form di ricerca categorie
Per creare una posizione in cui inserire il form della Ricerca categorie, va inserito il relativo oggetto in theme.php. Nell'esempio creiamo una posizione chiamata "top"
:
'search_positions' => [ 'top' => 'theme::common.search_positions.top', ],
Alla posizione è associato il riferimento al nome in lingua su common.php, dove lo definiremo così:
'search_positions' => [ 'top' => 'In alto', ],
A questo punto il form di ricerca può essere associato alla posizione creata.
Estrarre il form di ricerca da una posizione
Una volta definita una posizione, negli esempi useremo top
creata in precedenza, possiamo andare ad estrarre il suo form associato all'interno di una qualsiasi vista del tema.
La funzione per l'estrazione è la stessa della Ricerca Avanzata, ovvero search_position(NOME_POS)
.
{% set cat_search = search_position('top') %}
La variabile cat_search
contiene ora l'oggetto di tipo form, con i campi creati nel pannello. A questo punto è possibile estrarre i vari campi da cat_search.fields
allo stesso modo di come viene fatto per i form contatti.
Completamento automatico dei campi
È anche possibile attivare il completamento automatico dei campi del form: scegliendo una opzione in un form, gli altri campi si aggiorneranno in tempo reale con solo i valori validi per quella selezione. Ad esempio selezionando la categoria "Abbigliamento", verranno mostrate solo le opzioni che hanno pagine in comune con abbigliamento, come potrebbe essere "Maglie", mentre "Elettrodomestici" verrebbe nascosta. Per attivare questa impostazione è sufficiente aggiungere questa funzione JavaScript:
CategorySearchForm.startAutofill();
Il pulsante reset
Nel pannello, nella vista della creazione del form, è possibile specificare un'etichetta per il reset dei campi. Per estrarre questo bottone, che in automatico resetterà i campi del form a cui è associato, si può utilizzare form.reset()
, dove form è la variabile dell'oggetto form. Nell'esempio seguente estraiamo il pulsante di reset e ci associamo una classe:
{{form.reset({ class: 'btn btn-danger btn-block' })}}
Mostrare i risultati di ricerca
Una volta che l'utente avrà premuto sul tasto di submit del form di ricerca categorie, verrà reindirizzato alla vista search_pages.html. Qui possiamo estrarre le pagine trovate dall'array items
, ed è anche possibile ottenere le categorie cercate con active_options
, e anche tutte quelle associate alle pagine trovate usando live_options
.
Ricordiamo che se la ricerca non produce risultati, verrà comunque mostrato search_pages.html, va quindi gestito anche questo caso.