Ordinare i risultati
{par criterio_di_ordinamento} indica l’ordine di presentazione dei risultati. Questo criterio di ordinamento corrisponde a uno dei segnaposti estratti dal database per ogni tipo di ciclo. Per esempio, è possibile ordinare gli articoli per data ({par date}
), per data di pubblicazione ({par date_redac}
) o per titolo ({par titre}
). (Notare che i segnaposti sono sempre in lettere maiuscole mentre i criteri di ordinamento sono sempre in minuscolo.)
Caso particolare: {par hasard}
permette di ottenere un elenco in ordine casuale.
Invertire l’ordine. Inoltre, {inverse}
provoca la visualizzazione invertita dell’ordinamento. Per esempio {par date}
inizia con gli articoli più vecchi; con {par date}{inverse}
si inizia l’elenco con gli articoli più recenti.
A partire da SPIP 1.9, il criterio inverse può prendere come parametro qualsiasi segnaposto per variare dinamicamente il senso di ordinamento. Per esempio, è possibile scrivere: <BOUCLE_esempio(ARTICLES){par #ENV{ordina_per}}{inverse #ENV{senso_ordinamento}}>
, il che permette di scegliere la colonna di ordinamento e il senso di ordinamento attraverso l’URL (&senso_ordinamento=1 oppure &senso_ordinamento=0)
Ordinare per numero. [SPIP 1.3] Quando si ordina secondo un elemento di testo (per esempio il titolo), l’ordinamento viene effettuato in ordine alfabetico. Tuttavia, per forzare un ordine di visualizzazione è possibile indicare un numero davanti al titolo, per esempio: « 1. Il mio primo articolo », « 2. Secondo articolo », « 3. Terzo... », ecc; con un ordinamento alfabetico l’ordine di questi elementi sarebbe « 1, 10, 11, 2, 3... ». Per fare in modo che l’ordine segua le cifre si può usare il criterio:
{par num criterio}
Per esempio:
<BOUCLE_articoli(ARTICLES){id_rubrique}{par date}{inverse}>
mostra gli articoli di una rubrica in ordine cronologico inverso (i più recenti all’inizio, i più vecchi alla fine), e:
<BOUCLE_articoli(ARTICLES){id_rubrique}{par titre}>
li visualizza secondo l’ordine alfabetico del titolo; infine:
<BOUCLE_articoli(ARTICLES){id_rubrique}{par num titre}>
li visualizza secondo l’ordine del numero del titolo (nota: l’opzione {par num titre}
non funziona con le versioni di MySQL precedenti alla 3.23).
<BOUCLE_articoli(ARTICLES){id_rubrique}{par multi titre}>
Nel caso di un sito multilingue, il criterio {par multi criterio} permette di mettere in ordine alfabetico in ciascuna lingua disponibile. Se non si aggiunge "multi" il ciclo restituisce il medesimo ordinamento per tutte le lingue disponibili.
Ordinare secondo più criteri A partire dalla versione SPIP 1.8, SPIP 1.8.1, è possibile ordinare secondo molteplici criteri: {par criterio1, criterio2}. In tal modo si indicano ordini consecutivi. I risultati verranno innanzitutti ordinati in base al criterio1, poi in base al criterio2 per quei risultati che hanno il medesimo criterio1. Non vi sono limiti al numero di criteri che è possibile specificare.
Per esempio {par date, titre}
ordinerà i risultati per data e i risultati che hanno la medesima data (date) saranno in ordine di titolo (titre).
Con [SPIP 1.8.2] è possibile specificare più criteri {par ...} per un ciclo al fine di ottenere il medesimo risultato. Per esempio: {par date} {par titre}
è equivalente all’esempio precedente.
Avvertenza: Quando si utilizzano più criteri di ordinamento, il criterio {inverse} si applica unicamente al criterio di ordinamento che lo precede.Per tale motivo, [SPIP 1.8.2] ha introdotto la sintassi {!par ...} che inverte un criterio di ordinamento specifico. Per esempio:
{!par date} {par num titre}
ordina per date (date) decrescenti e poi per numeri crescenti nel titolo (titre) quei risultati che hanno una data uguale.
Confronti, uguaglianze
{criterio < valore} Confronto con un valore fisso (si possono usare ">", "<", "=", ">=", "<=". Al fine di limitare il numero di risultati è possibile usare anche tutti i criteri di ordinamento (così come sono estratti dal database).
Il valore a destra dell’operatore può essere:
- un valore costante stabilito nel modello di layout. Per esempio:
<BOUCLE_art(ARTICLES){id_article=5}>
mostra l’articolo numero 5 (utile per mettere in risalto un articolo preciso sulla home page).
<BOUCLE_art(ARTICLES){id_secteur=2}>
mostra gli articoli della sezione 2.
- A partire dalla versione [SPIP 1.8], un segnaposto disponibile nel contesto del ciclo. Per esempio:
<BOUCLE_art(ARTICLES){id_article=5}>
<BOUCLE_titolo(ARTICLES) {titre=#TITRE}>
...
</BOUCLE_titolo>
</BOUCLE_art>
serve a trovare gli articoli che hanno lo stesso titolo dell’articolo 5.
Attenzione: È possibile utilizzare solo segnaposti semplici. Non è permesso usare filtri o codice opzionale.In particolar modo, se si desidera utilizzare il segnaposto #ENV — o qualsiasi altro segnaposto che accetta parametri —, si deve utilizzare la sintassi:
{titre = #ENV{titre}}
e non:{titre = [(#ENV{titre})]}
.
Espressioni regolari:
Molto potente (ma molto più complesso da manipolare), il termine di comparazione "==" introduce un confronto con un’espressione regolare. Per esempio:
<BOUCLE_art(ARTICLES){titre==^[aA]}>
seleziona gli articoli il cui titolo inizia con "a" o con "A".
Negazione:
Dalla versione [SPIP 1.2] è possibile utilizzare la sintassi {xxx != yyy} e xxx !== yyy