Quel che segue riguarda il linguaggio di descrizione dell’impaginazione dei modelli di layout in SPIP; se la spiegazione precedente è stata chiara, si è a conoscenza che noi lavoriamo su file ".html".
L’attuale documentazione è volutamente tecnica (vi sono riferimenti tecnici); è comunque possibile iniziare con la nostra guida Primi passi, che ha un approccio più didattico, e tornare qui per avere informazioni più specifiche.
I cicli
Il concetto di base del linguaggio usato da SPIP è il ciclo (in francese boucle, in inglese loop).
- La logica del ciclo
Un database è generalmente un elenco di elementi: nel nostro caso, esso è un elenco di articoli, un elenco di rubriche, un elenco di autori, e così via. Per "costruire" il sito dovremo quindi estrarre da questo elenco alcuni elementi che lo compongono:
- molto spesso si desidera estrarre un solo elemento da un elenco; per esempio, mostrare l’articolo richiesto;
- tuttavia, spesso si desidera estrarre più elementi da un elenco; per esempio, nella pagina di una rubrica, si vuole far apparire tutti gli articoli e tutte le sotto-rubriche contenuti in questa rubrica;
- un cavillo: succede spesso che non ci siano gli elementi richiesti in quel dato posto; quindi, SPIP deve essere in grado di gestire l’eventuale assenza di tali elementi; per esempio, il modello di visualizzazione delle rubriche richiede la visualizzazione di tutte le sotto-rubriche contenute in una rubrica; cosa succede se non ci sono sotto-rubriche in quella data rubrica?
Queste tre situazioni differenti sono analizzate dal concetto unico di ciclo, che permette di gestire la visualizzazione di un solo elemento, di più elementi in successione o l’assenza degli elementi, il tutto contemporaneamente.
Il sistema di ciclo permette con un unico codice di:
- indicare in quale posto del codice HTML si ha bisogno di quel tipo di elemento (in tale posto si vuole recuperare l’elenco degli articoli, in tale posto si vuole includere l’elenco delle sotto-rubriche...);
- prevedere la visualizzazione di un singolo elemento;
- indicare come visualizzare un elenco composto da più elementi;
- determinare cosa mostrare nel caso non vi siano elementi corrispondenti.
Analogia con la programmazione in PHP/mySQL
Chi ha già esperienza di programmazione di query mySQL in PHP sa che l’operazione si svolge in due fasi:
- la costruzione della sintassi della query (che consiste nel dire "voglio recuperare l’elenco degli articoli contenuti in tale rubrica...");
- l’analisi e la visualizzazione dei risultati della ricerca attraverso l’uso di un ciclo.
Queste due fasi vengono gestite da SPIP tramite i cicli.
I segnaposti di SPIP
Grazie all’uso dei cicli abbiamo quindi recuperato singoli elementi o elenchi di elementi: per esempio un elenco di articoli o di rubriche...
Tuttavia, ogni elemento di tali elenchi si compone a sua volta di diversi elementi specifici: per esempio, un articolo è composto da un titolo, un occhiello, un testo introduttivo (in termini giornalistici, cappello), del corpo del testo, di un post scriptum, ecc. Vi sono perciò delle costanti specifiche di SPIP, chiamate segnaposto, che permettono di indicare precisamente in quale posto far apparire gli elementi: "mettere il titolo qui", "mettere il testo qui"...
I segnaposti all’interno dei cicli
Ora vedremo, usando un esempio classico, il principio di funzionamento generico di un ciclo accompagnato dai suoi segnaposti (attenzione, quel che segue non è il linguaggio di SPIP, ma una descrizione logica):
BOUCLE: mostrare l'elenco degli articoli di questa rubrica- mostrare qui il titolo dell'articolo
- mostrare il sottotitolo
- mostrare il corpo del testo
Questo ciclo, analizzato da SPIP, può dare tre risultati differenti.
- Non vi è nessun articolo in questa rubrica.
In tal caso, chiaramente, non viene utilizzato alcun elemento "mostrare qui... (titolo, sottotitolo...)". Al contrario, se è stato previsto, si può mostrare un messaggio del tipo: "Non vi sono articoli".
- C’è solo un articolo in questa rubrica.
In tal caso, molto semplicemente, si costruisce la pagina HTML in base al modello del ciclo:
- Titolo dell'articolo
- Sottotitolo
- Corpo dell'articolo
- Ci sono più articoli in questa rubrica.
La descrizione dell’impaginazione ("mettere qui...") va elaborata per ogni articolo in successione. Il che dà, semplicemente:
- Titolo dell'articolo 1
- Sottotitolo dell'articolo 1
- Corpo dell'articolo 1
- Titolo dell'articolo 2
- Sottotitolo dell'articolo 2
- Corpo dell'articolo 2
- ...
- Titolo dell'ultimo articolo
- Sottotitolo dell'ultimo articolo
- Corpo dell'ultimo articolo
Il seguito di questa guida di riferimento si comporrà quindi degli articoli seguenti:
- sintassi generica dei cicli;
- sintassi generica dei segnaposti di SPIP;
- e, successivamente, di una pagina specifica per ciascun tipo di ciclo, indicando quali segnaposti possono essere utilizzati.