2 Stocker les traductions eventuelles de l'article en cours
4 <BOUCLE_article(ARTICLES){id_article}
>
5 #SET{ListeTraductions, #ARRAY{}}
6 <BOUCLE_TraductionArticleCourant(ARTICLES){traduction}{lang !IN #CONFIG{menu_lang_liens/langues_invisibles,#ARRAY}}
>
7 #SET_MERGE{ListeTraductions,#GET{ListeTraductions},#ARRAY{#LANG,#URL_ARTICLE}}
8 </BOUCLE_TraductionArticleCourant>
12 Stocker les traductions eventuelles de la rubrique en cours si le plugin Tradrub est installe (permet l'utilisation du
13 critere traduction sur les rubriques)
15 <BOUCLE_tradrub(CONDITION){si #PLUGIN{tradrub}}
>
16 <BOUCLE_rubrique(RUBRIQUES){id_rubrique}
>
17 #SET{ListeTraductions, #ARRAY{}}
18 <BOUCLE_TraductionRubriqueCourante(RUBRIQUES){traduction}{lang !IN #CONFIG{menu_lang_liens/langues_invisibles,#ARRAY}}
>
19 #SET_MERGE{ListeTraductions,#GET{ListeTraductions},#ARRAY{#LANG,#URL_RUBRIQUE}}
20 </BOUCLE_TraductionRubriqueCourante>
25 Y-a-t'il plus d'une langue reellement utilisee dans le site (moins les langues
"invisibles") ?
26 Si oui, on affiche le menu de langue
29 Les langues
"invisibles" sont les langues que le webmestre peut choisir de ne pas afficher dans le menu,
30 a partir du formulaire de configuration du plugin.
32 Note : 'explode' est une fonction PHP : http://php.net/manual/fr/function.explode.php, utilisee ici pour renvoyer un tableau contenant
33 les langues utilisees, a partir de la variable meta 'langues_utilisees'. Ce tableau est compare avec le tableau des langues invisibles
34 avec la fonction PHP 'array_diff' http://www.php.net/manual/fr/function.array-diff.php qui renvoie elle-meme un tableau.
37 [(#SET{langues_a_afficher,[(#CONFIG{langues_utilisees}|explode{
","}|array_diff{#CONFIG{menu_lang_liens/langues_invisibles, #ARRAY}})]})]
38 #SET{liste,#CONFIG{menu_lang_liens/formatliste,bloc}}
39 #SET{format,#CONFIG{menu_lang_liens/format,abrege}}
40 #SET{separateur,#CONFIG{menu_lang_liens/separateur,''}}
41 [(#GET{liste}|=={liste}|?{#SET{separateur,#CONFIG{menu_lang_liens/separateur,''}},''})]
42 <BOUCLE_PlusieursLanguesUtilisees(POUR){tableau #GET{langues_a_afficher}}{
1,
1}
>
43 <[(#GET{liste}|=={liste}|?{ul,div})]
id=
"menu_lang">[(#REM)
45 On liste les langues utilisees dans le site
47 ]
<BOUCLE_ListeLangues(POUR){tableau #GET{langues_a_afficher}}
>[(#GET{format}|=={'complet'}|?{[(#SET{nom_langue,[(#VALEUR|traduire_nom_langue)]})],[(#SET{nom_langue,[(#VALEUR)]})]})][
48 (#GET{liste}|=={liste}|oui)
<li [(#COMPTEUR_BOUCLE|=={
1}|oui)
class=
"first"] [(#COMPTEUR_BOUCLE|=={#TOTAL_BOUCLE}|oui)
class=
"last"]
>
51 Si la langue n'est pas celle en cours, on fait un lien qui fait
2 actions :
52 - fixer le cookie de langue sur la langue demandee
53 - rediriger sur l'article dans la langue demandee si opportun
54 sinon, revenir sur la page en cours
56 url_absolue pour éviter des problèmes en urls arbo
58 [[[[(#GET{separateur})](#GET{liste}|=={liste}|non)](#COMPTEUR_BOUCLE|
>{
1}|oui)][
<a href=
"[(#SELF|parametre_url{action,converser}|parametre_url{var_lang,#VALEUR}|parametre_url{redirect,#GET{ListeTraductions}|table_valeur{#VALEUR}|sinon{#SELF}|url_absolue})]" rel=
"alternate" lang=
"#VALEUR"[(#GET{format}|=={'abrege'}|oui)
title=
"[(#VALEUR|traduire_nom_langue|ucfirst|attribut_html)]"]
class=
"langue_#VALEUR">(#GET{nom_langue}|ucfirst)
</a>](#VALEUR|=={#ENV{lang}}|non)][
61 Si la langue est celle en cours, afficher celle-ci en gras, sans lien
63 ][[[[[(#GET{separateur})](#GET{liste}|=={liste}|non)](#COMPTEUR_BOUCLE|
>{
1}|oui)]
<strong class=
"langue_#VALEUR" title=
"[(#VALEUR|traduire_nom_langue|ucfirst|attribut_html)]">(#GET{nom_langue}|ucfirst)
</strong>](#VALEUR|=={#ENV{lang}}|oui)][
64 (#GET{liste}|=={liste}|oui)
</li>
65 ]
</BOUCLE_ListeLangues>
66 </[(#GET{liste}|=={liste}|?{ul,div})]
>
67 </BOUCLE_PlusieursLanguesUtilisees>