|unique

  • Apparu en : SPIP 1.8

Le filtre |unique retourne la valeur de la balise à laquelle il s’applique seulement si c’est la première fois qu’elle est rencontrée.
Il s’applique donc sur une balise placée à l’intérieur d’une boucle.

Il est possible, pour différencier plusieurs utilisations indépendantes au sein de la boucle, de passer un argument de nommage à ce filtre.
Par exemple : [(#ID_SECTEUR|unique{en_tete})] n’aura pas d’incidence sur (n’empêchera pas l’affichage de) : [(#ID_SECTEUR|unique{corps})].

Le filtre accepte aussi un deuxième argument : « 1 » pour afficher le nombre de fois où la balise a été filtrée.
Par exemple : [(#ID_SECTEUR|unique{corps, 1})] affichera le total correspondant au nombre de fois où #ID_SECTEUR aura été filtré par |unique{corps}.
On préfèrera toutefois à cette notation l’utilisation (plus économique) de la balise spécifique #TOTAL_UNIQUE{corps} [1].

-  Le filtre |unique peut être intéressant pour, par exemple, afficher une liste d’articles par date :

<BOUCLE_blog(ARTICLES) {!par date} {"<br>"}>
  [<hr><h1>(#DATE|affdate_mois_annee|unique)</h1>]
  #TITRE ...
</BOUCLE_blog>

La date ne sera affichée qu’à chaque changement de mois.

Autre exemple :

<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>

affichera une liste ressemblant à :

2022
  mars
    article de mars
    autre article de mars
  février
    article de février
2021
  décembre
    un article

Dans ce dernier exemple, on utilise la notation affdate{'Y-m'} pour afficher le nom du mois à chaque changement d’année. En effet :

  • si l’on ne faisait que [(#DATE|nom_mois|unique)], les noms de mois ne seraient affichés que la première année ;
  • si le filtrage était [(#DATE|unique|nom_mois)], on afficherait toutes les dates. En effet, #DATE retourne une date complète qui contient aussi les heures, minutes et secondes. Il y a donc une grande probabilité que les dates complètes de deux articles publiés le même jours soient différentes.

C’est pourquoi on ne garde que le mois et l’année de la date avant de la passer au filtre unique.

Notes

[1Voir la page consacrée à la balise #TOTAL_UNIQUE.

Auteur denisb, Teddy Publié le : Mis à jour : 28/06/23

Traductions : català, English, Español, français, Nederlands