Esta es una pequeña acrobacia.
A primera vista, es muy sencillo saber el número de elementos de un bucle: basta con utilizar la baliza #TOTAL_BOUCLE de SPIP. Esta baliza no sólo se puede usar dentro del bucle; sino también (y es el único caso) en el texto condicional anterior (el texto que se muestra antes del bucle si este contiene algún elemento) y el texto condicional alternativo (el texto que se muestra si el bucle está vacío).
Debemos crear un bucle de tipo FORUMS, unido a un artículo, de forma que podamos contar el número de resultados.
Primera sutileza: queremos todos los mensajes de los foros unidos al artículo, contando las respuestas a los mensajes, las respuestas a las respuestas...
Un bucle sencillo de tipo:
<BOUCLE_forum(FORUMS){id_article}>
contiene únicamente los mensajes que responden al artículo. Habitualmente se incluye un segundo bucle dentro del mismo, para acceder a las respuestas a estos mensajes... Aquí, deseamos que el bucle seleccione absolutamente todos los mensajes unidos al artículo, sin tener en cuenta su jerarquía. Para ello, hace falta especificar el criterio «plat» que sirve para mostrar un foro sin ordenar por hilos. Lo que nos da:
<BOUCLE_forum(FORUMS){id_article}{plat}>
Veamos ahora cómo contar los elementos que contiene. La dificultad, aquí, es que precisamente este bucle ¡no debe mostrar nada! No muestra el título de los mensajes, se evitará incluso que haga aparecer espacios o saltos de línea (si no, tu página HTML contendrá decenas de líneas vacias, poco elegantes). El interior del bucle no muestra, por lo tanto, rigurosamente nada; pero antes del bucle se debe mostrar el número de resultados.
Una sutileza que hay que comprender bien: el texto condicional alternativo se ve si el bucle no muestra nada; por lo tanto, se ve incluso cuando el bucle selecciona los elementos (en este caso, los mensajes del foro) pero no tiene ninguno que mostrar.
Por lo tanto, debemos situar #TOTAL_BOUCLE en el texto condicional alternativo. Si no hay ningún mensaje en el foro unido al artículo, #TOTAL_BOUCLE estará vacío, y entonces no hará falta mostrar el texto que lo contiene (« hay N contribuciones al foro ») en este caso.
<BOUCLE_nb_forums(FORUMS){id_article}{plat}></BOUCLE_nb_forums>
[Hay (#TOTAL_BOUCLE) contribución(es) al foro.]
<//B_nb_forums>