SPIP

[ar] [ast] [bg] [br] [ca] [co] [cpf] [cs] [da] [de] [en] [eo] [es] [eu] [fa] [fon] [fr] [gl] [id] [it] [ja] [lb] [nl] [oc] [pl] [pt] [ro] [ru] [sk] [sv] [tr] [uk] [vi] [zh] Espace de traduction

Télécharger

|unique

Octobre 2009 — mis à jour le : 1er juillet

Toutes les versions de cet article :


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} {inverse} {"<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 à :

2015
 mars
   article de mars
   autre article de mars
 février
   article de février
2014
 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.


Voir le squelette de cette page Site réalisé avec SPIP | Espace de traduction | Espace privé