El filtro |unique
(a partir de SPIP 1.8, SPIP 1.8.1) devuelve el valor de la baliza a la que se aplica solamente si es la primera vez que éste es encontrado.
Se aplica, por tanto, sobre una baliza situada en el interior de un bucle.
Es posible, para diferenciar varias llamadas independientes en el interior del bucle, pasar un argumento de identificación a este filtro.
Por ejemplo: [(#ID_SECTEUR|unique{cabecera})]
no tendrá incidencia sobre (no impedirá que se muestre): [(#ID_SECTEUR|unique{cuerpo})]
.
El filtro también acepta un segundo argumento: «1» para mostrar el número de veces que la baliza ha sido filtrada.
Por ejemplo: [(#ID_SECTEUR|unique{cuerpo, 1})]
mostrará el total correspondiente al número de veces que #ID_SECTEUR ha sido filtrado por |unique{cuerpo}
.
Siempre será preferible a esta notación el uso (más económico) de la baliza específica #TOTAL_UNIQUE{cuerpo}
[1].
- El filtro |unique
puede ser interesante para, por ejemplo, mostrar una lista de artículos por fecha:
<BOUCLE_blog(ARTICLES) {par date} {inverse} {"<br>"}>
[<hr><h1>(#DATE|affdate_mois_annee|unique)</h1>]
#TITRE ...
</BOUCLE_blog>
La fecha sólo se mostrará en cada cambio de mes.
- Otro ejemplo:
<BOUCLE_blog2(ARTICLES) {par date} {inverse}>
[<hr><h1>(#DATE|annee|unique)</h1>]
[<h2>(#DATE|affdate{'Y-m'}|unique|nom_mois)</h2>]
<a href="#URL_ARTICLE">#TITRE</a><br />
</BOUCLE_blog2>
mostrará una lista parecida a:
2005
marzo
artículo de marzo
otro artículo de marzo
febrero
artículo de febrero
2004
diciembre
un artículo
En este último ejemplo, se utiliza la notación affdate{'Y-m'}
para visualizar el nombre de mes en cada cambio de año. En efecto:
- Si sólo se escribiera
[(#DATE|nom_mois|unique)]
, los nombres de meses sólo se mostrarían el primer año. - Si el filtro fuera
[(#DATE|unique|nom_mois)]
, se mostrarían todas las fechas. En efecto,#DATE
devuelve una fecha completa que contiene también las horas, minutos y segundos. Hay por tanto una gran probabilidad de que las fechas completas de dos artículos publicados el mismo día sean diferentes.
Es por eso que solamente se guarda el mes y el año de la fecha antes de pasárselos al filtro unique.