I cicli ricorsivi sono una funzionalità molto potente al fine di gestire l’impaginazione dell’interfaccia. La programmazione è particolarmente semplice, tuttavia l’utilizzo richiede una buona organizzazione logica della concatenazione dei cicli.
La chiamata a un ciclo ricorsivo è molto semplice: è sufficiente indicare nel TIPO del ciclo il nome di un altro ciclo:
<BOUCLEn(cicloX)></BOUCLEn>
In questo caso non si impiegano criteri: in realtà, il ciclo n corrisponde a una copia pura e semplice del ciclo X. L’insieme del ciclo funziona come se si fosse ricopiato tutto il ciclo X (tutti i segnaposti e il codice HTML, come pure i testi condizionali prima e dopo e il testo alternativo) nel posto dove si inserisce il ciclo n. (Beninteso, è necessario che il ciclo X preceda il ciclo n.)
L’uso più semplice è quello di "duplicare" un ciclo senza doverlo ricopiare. Inoltre, ogni modifica apportata al ciclo d’origine X sarà duplicata automaticamente nel ciclo n.
La sua utilità è, in realtà, di mettere il ciclo n all’interno del ciclo X: in tal modo si ottiene un comportamento ricorsivo: il ciclo X contiene un ciclo n, che a sua volta riproduce il ciclo X che contiene il ciclo n, e via dicendo, fino a quando il ciclo X non restituisce più alcun risultato.
In particolare, questa tecnica permette di creare la visualizzazione dei thread dei forum. Ciò è molto semplice: un primo ciclo "crea" il capofila dei thread (i messaggi che rispondono direttamente a un articolo), un secondo ciclo mostra le risposte a questi messaggi, e un ciclo ricorsivo provoca la ricorsività su questo secondo ciclo:
<BOUCLE_forum(FORUMS){id_article}>
<p>#TITRE
<B_risposte>
<UL>
<BOUCLE_risposte(FORUMS){id_parent}>
<LI>#TITRE
<BOUCLE_ricorsivo(boucle_risposte)>
</BOUCLE_ricorsivo>
</BOUCLE_risposte>
</UL>
</B_risposte>
</BOUCLE_forum>
Con pochissime linee è quindi possibile visualizzare tutta la struttura (rubriche, sotto-rubriche...) del sito.