search.html

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.

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 %}