O filtro |unique
retorna o valor da tag à qual é aplicado, apenas se for a primeira vez que é encontrada.
Ele é aplicável, portanto, a uma tag usada no interior de um loop.
Pode-se passar um argumento de nome ao filtro, para diferenciar várias utilizações independentes no interior do loop.
Por exemplo: [(#ID_SECTEUR|unique{cabecalho})]
não terá influência sobre (não impedirá a exibição de) : [(#ID_SECTEUR|unique{corpo})]
.
O filtro também aceita um segundo argumento: «1» para exibir o número de vezes que a tag for filtrada.
Por exemplo : [(#ID_SECTEUR|unique{corpo, 1})]
exibirá o total correspondente ao número de vezes em que #ID_SECTEUR terá sido filtrado por |unique{corpo}
.
É preferível, a esta notação, o uso (mais económico) da tag específica #TOTAL_UNIQUE{corpo}
[1].
- O filtro |unique
pode ser interessante para, por exemplo, exibir uma lista de matérias por data:
<BOUCLE_blog(ARTICLES) {!par date} {"<br>"}>
[<hr><h1>(#DATE|affdate_mois_annee|unique)</h1>]
#TITRE ...
</BOUCLE_blog>
A data só será exibida a cada mudança de mês.
Outro exemplo:
<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>
exibirá uma lista parecida com:
2022
març
matéria de março
outra matéria de março
fevereiro
matéria de fevereiro
2021
dezembro
uma matéria
Neste último exemplo, é usada a notação affdate{'Y-m'}
para exibir o nome do mês a cada mudança de ano. Com efeito:
- se só se fizer
[(#DATE|nom_mois|unique)]
, os nomes dos meses só serão exibidos no primeiro ano; - se a filtragem for
[(#DATE|unique|nom_mois)]
, serão exibidas todas as datas. Com efeito,#DATE
retorna uma data completa que contém também as horas, minutos e segundos. Há assim uma grande probabilidade das datas completas de duas matérias publicadas no mesmo dia serem diferentes.
Por esse motivo, só aproveitamos o mês e o ano da data, antes de a passar ao filtro unique.