search.html
Panoramica
Il file search.html rappresenta la visualizzazione dei risultati di una ricerca di pagine in base a un termine. Nel caso la ricerca non porti ad alcun risultato, sarà comunque caricato search.html, è quindi necessario tener conto di questa eventualità. Questa vista viene visualizzata anche per le ricerche avanzate.
Anche la pagina tag.html è di fatto una ricerca, ma è basata su un tag specifico e non su una query testuale, ed è infatti un'estensione di search.html.
Esempio
In questo esempio viene creato un file search.html che mostra la quantità dei risultati, il termine cercato terms
, l'elenco dei risultati paginati o, nel caso non ne vengano trovati, l'apposita etichetta del CMS. Il blocco search_header
viene costruito per essere facilmente modificato in altri file per la ricerca come tag.html.
- search.html
{% extends 'base' %} {% block contents %} {# -------------------------------------------------------- TERMINE CERCATO E NUMERO DI RISULTATI TROVATI -------------------------------------------------------- #} {% block search_header %} <div> <span>{{ find_label('cms', 'search_results') }}</span> <span>{{ terms }}</span> </div> <div> <div> {{ find_label('cms', 'search_results_count') }} <span>{{ pagination.total }}</span> </div> </div> {% endblock %} {# -------------------------------------------------------- RISULTATI -------------------------------------------------------- #} {% if contents %} <div> <div>{{ pagination.links }}</div> {% for content in contents %} <div> <h2> {{ content.title }} </h2> <div> {{ content.short_description|striptags|truncate(300) }} <a href="{{ content.url }}">{{ find_label('cms', 'read_more') }}</a> </div> {% if content.image_url %} {% set content_image = content.image %} <a href="{{ content.url }}"> <div> <img src="{{ content_image.thumb_url }}" alt="{{ content_image.title }}"> </div> </a> </div> {% endif %} {% endfor %} </div> <div>{{ pagination.links }}</div> {# -------------------------------------------------------- CASO NESSUN RISULTATO TROVATO -------------------------------------------------------- #} {% else %} <div> <h3>{{ find_label('cms', 'search_no_results') }}</h3> </div> {% endif %} {% endblock %}