page_generic.html

Il file page_generic.html è un file obbligatorio che contiene la struttura di tutte le pagine di tipo generico a cui non è associato un layout.

Questo file estende base.html e di norma include il file page_single.html per i contenuti specifici della pagina visualizzata. Questa suddivisione viene fatta per avere una maggiore pulizia del codice, includendo i contenuti nella struttura della pagina generica che può avere ad esempio una barra laterale e i contenuti figli di quella pagina, tuttavia questa suddivisione non è obbligatoria, ma risulta comoda anche nel caso in cui ci siano dei layout che non modificano la parte di contenuto, ma solo la struttura esterna.

In questo esempio viene mostrata la struttura di una pagina generica con l'inclusione di page_single.html e di una sidebar seguite dall'elenco di pagine figlie.

page_generic.html
{% extends 'base' %}
 
{% block contents %}
 
<div class="container">
	<div class="row">
		{% if has_sidebar %}
		<div class="col-md-3">
			{% include 'includes.sidebar' %}
		</div>
		{% endif %}
 
		<div class="{{ has_sidebar ? 'col-md-9' :'col-md-12' }}">
			{# --------------------------------------------------------
			SINGLE PAGE
			-------------------------------------------------------- #}
			{% include 'page_single' %}
 
			{# --------------------------------------------------------
			PAGE CHILDREN
			-------------------------------------------------------- #}
			{% if content.count_childrens %}
			<div class="page-children">
				{% set children = get_contents(content.id, paginate = 5) %}
 
				<div>{{ children.links }}</div>
 
				{% for child in children %}
				<h3>{{ child.title }}</h3>
 
				<div>
					{{ child.short_description|striptags|truncate(300) }}
 
					<a href="{{ child.url }}">{{ find_label('cms', 'read_more') }}</a>
				</div>
				{% if child.image_url %}
				{% set child_image = child.image %}
				<img class="" src="{{ child_image.url }}" alt="{{ child_image.title }}">
				{% endif %}
				{% endfor %}
			</div>
			{% endif %}
		</div>
	</div>
</div>
{% endblock %}