È un vero e proprio esercizio acrobatico.
A prima vista, è molto semplice sapere il numero di elementi di un ciclo: è sufficiente utilizzare il codice di SPIP: #TOTAL_BOUCLE. Questo codice può essere utilizzato non solo all’interno del ciclo ma anche (è l’unico in questo caso) nel testo condizionale dopo (il testo che si visualizza dopo il ciclo se esso contiene degli elementi) e il testo condizionale alternativo (il testo che si visualizza se il ciclo non restituisce alcun risultato).
Dobbiamo creare un ciclo del tipo FORUMS, collegato ad un articolo, in modo da conteggiare il numero di risultati.
Prima accortezza: noi vogliamo tutti i messaggi dei forum collegati all’articolo, includendo le risposte ai messaggi, le risposte alle risposte...
Un semplice ciclo del tipo:
<BOUCLE_forum(FORUMS){id_article}>
contiene esclusivamente i messaggi che rispondono all’articolo. Solitamente, per accedere alle risposte a questi messaggi, si include un secondo ciclo all’interno del primo... In questa sede, noi vogliamo che il ciclo selezioni assolutamente tutti i messaggi allegati all’articolo, senza tenere conto del loro percorso gerarchico. A tal fine, si deve specificare il criterio "plat" che serve a visualizzare un forum completo, ovvero tutti i messaggi, anche quelli che non si trovano alla radice del thread. Ciò dà:
<BOUCLE_forum(FORUMS){id_article}{plat}>
Vediamo ora come conteggiare gli elementi in esso contenuti. La difficultà, qui, è che giustamente questo ciclo non deve visualizzare nulla! Esso non visualizza il titolo dei messaggi, e si eviterà di fargli mostrare anche gli spazi o i ritorni carrello (altrimenti la pagina HTML conterrà decine di linee vuote, antiestetiche); l’interno del ciclo quindi non visualizza proprio nulla, ma si deve visualizzare, dopo il ciclo, il numero di risultati.
Un dettaglio che è necessario comprendere bene: il testo condizionale alternativo si visualizza se il ciclo non visualizza nulla; quindi esso viene mostrato anche se il ciclo seleziona degli elementi (nel nostro caso dei messaggi del forum) che non sono visualizzati.
Pertanto, dobbiamo inserire #TOTAL_BOUCLE nel testo condizionale alternativo. Se all’articolo non è allegato alcun messaggio di forum #TOTAL_BOUCLE sarà vuoto; in tal caso non bisogna far apparire il testo con (" ci sono N contributi al forum ").
<BOUCLE_numero_forum(FORUMS){id_article}{plat}></BOUCLE_numero_forum>
[Ci sono (#TOTAL_BOUCLE) contributi al forum.]
<//B_numero_forum>