Relazioni
Panoramica
Le pagine possono essere relazionate tra loro singolarmente o tramite categorie. Nel pannello, all'interno delle pagine, è presente la tab Relazioni che permette di associarle a delle opzioni di categorie, e di mostrare in quella pagina delle opzioni o delle pagine selezionate singolarmente.
Le relazioni sono utili per mostrare ad esempio dei contenuti correlati o per suddividere le pagine in modo diverso dalla gerarchia dell'albero padre-figlio. Inoltre associando le categorie alle pagine, è possibile creare poi un form di Ricerca categorie per filtrarle.
Implementazione
Estrarre le pagine delle opzioni da "Mostra Categorie"
Per estrarre le opzioni inserite nel campo "Mostra Categorie" di una pagina, è sufficiente utilizzare la posizione get_related_by_options()
che ha come unico parametro obbligatorio content
, ovvero il contenuto della pagina.
A questo punto per estrarre ogni pagina contenuta nelle varie opzioni è possibile eseguire un doppio ciclo in questo modo:
{% set related_options = get_related_by_options(content) %} {# Associo le opzioni alla variabile related_options #} {% for option in related_options %} {# Ciclo tutte le opzioni #} {% for pagina in option.contents %} {# Estraggo le pagine contenute in ogni opzione con option.contents #} <h3>{{ pagina.title }}</h3> {% endfor %} {% endfor %}
Estrarre le singole pagine da "Mostra Pagine"
Per estrarre le pagine inserite nel campo "Mostra Pagine" si può utilizzare la funzione get_related_by_pages()
che ha come unico parametro obbligatorio content
, ovvero il contenuto della pagina.
Questa funzione estrae un array di pagine che si possono estrarre con un ciclo di questo tipo:
{% set related_pages = get_related_by_pages(content) %} {# Associo l'array delle pagine alla variabile related_pages #} {% for pagina in related_pages %} {# Estraggo le pagine dall'array #} <h3>{{ pagina.title }}</h3> {% endfor %}
Estrarre le categorie associate alla pagina
Benché il campo "Associa categorie" è creato per definire a quali categoria una pagina è associata, e non quelle da mostrare, in SelfComposer è possibile estrarre anche queste con la funzione get_related()
con unico parametro content
con l'oggetto dei contenuti della pagina. Per estrarre le pagine di queste categorie il procedimento è lo stesso dell'esempio descritto precedentemente in Estrarre le pagine delle opzioni da "Mostra Categorie".