Programmer avec SPIP 3.0
Documentation technique sur SPIP 3.0

> > > > Critères spécifiques

Critères spécifiques

Des critères de boucles spécifiques permettent de récupérer les articles dans les langues souhaitées.

lang

Déjà, simplement le critère {lang} permet de sélectionner la langue du visiteur, ou la langue choisie :

  1. // langue du visiteur
  2. <BOUCLE_art(ARTICLES){lang}> ... </BOUCLE_art>
  3. // langue anglaise (en)
  4. <BOUCLE_art(ARTICLES){lang=en}> ... </BOUCLE_art>

Télécharger

traduction

Le critère {traduction} permet de lister les différentes traductions d’un article :

  1. <BOUCLE_article(ARTICLES){id_article}>
  2. <ul>
  3. <BOUCLE_traductions(ARTICLES) {traduction}{par lang}>
  4. <li>[(#LANG|traduire_nom_langue)]</li>
  5. </BOUCLE_traductions>
  6. </ul>
  7. </BOUCLE_article>

Télécharger

Ici, toutes les traductions d’un article seront affichées (y compris l’article en cours, que l’on peut enlever avec le critère {exclus}).

origine_traduction

Ce critère permet de retrouver les sources d’un article traduit, c’est à dire celui servant de référence aux traductions. Tous les articles sources :

  1. <BOUCLE_sources(ARTICLES) {origine_traduction}>
  2. #TITRE (#LANG)<br />
  3. </BOUCLE_sources>

Télécharger

La traduction d’origine d’un article :

  1. <BOUCLE_article(ARTICLES){id_article}>
  2. <BOUCLE_origine(ARTICLES) {traduction}{origine_traduction}>
  3. #TITRE (#LANG)
  4. </BOUCLE_origine>
  5. </BOUCLE_article>

Télécharger

Exemple

Afficher un article dans la langue du visiteur si possible, sinon dans la langue principale. On commence par lister dans une rubrique, les articles qui servent de source à la création des traductions. Ensuite, on cherche s’il existe une traduction dans la langue demandée par le visiteur. Selon la réponse on affiche le titre de l’article traduit ou de l’article source.

  1. <BOUCLE_art1(ARTICLES){id_rubrique}{origine_traduction}>
  2. <BOUCLE_art2(ARTICLES){traduction}{lang=#ENV{lang}}>
  3. // si une traduction existe
  4. <li>#TITRE</li>
  5. </BOUCLE_art2>
  6. // sinon
  7. <li>#TITRE</li>
  8. <//B_art2>
  9. </BOUCLE_art1>

Télécharger