source: spip-zone/_plugins_/menu_langues_liens/formulaires/menu_lang.html @ 54503

Last change on this file since 54503 was 54503, checked in by jean-baptiste.pressac@…, 8 years ago

Ajout des liens vers les traductions de la rubrique courante (nécessite le plugin Tradrub de Matthieu Marcillaud). Utilisation de la variable meta 'langues_utilisees' pour connaitre la liste des langues utilisées au lieu d'une boucle sur les articles (puisque l'on tient maintenant compte des rubriques). La variable meta est placée dans un ARRAY et comparée à la liste des langues "invisibles" avant d'être traitée.

File size: 2.6 KB
Line 
1[(#REM)
2Stocker les traductions eventuelles de l'article en cours
3]
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>
9</BOUCLE_article>
10
11[(#REM)
12Stocker les traductions eventuelles de la rubrique en cours
13]
14<BOUCLE_rubrique(RUBRIQUES){id_rubrique}>
15#SET{ListeTraductions, #ARRAY{}}
16<BOUCLE_TraductionRubriqueCourante(RUBRIQUES){traduction}{lang !IN #CONFIG{menu_lang_liens/langues_invisibles,#ARRAY}}>
17        #SET_MERGE{ListeTraductions,#GET{ListeTraductions},#ARRAY{#LANG,#URL_RUBRIQUE}}
18</BOUCLE_TraductionRubriqueCourante>
19</BOUCLE_rubrique>
20
21[(#REM)
22Y-a-t'il plus d'une langue reellement utilisee dans le site (- les langues invisibles) ?
23Si oui, on affiche le menu de langue
24Si non, rien
25
26Note : 'explode' est une fonction PHP : http://php.net/manual/fr/function.explode.php, utilisŽe ici pour renvoyer un tableau contenant
27les langues utilisŽes, ˆ partir de la variable meta 'langues_utilisees'. Ce tableau est comparŽ avec le tableau des langues invisibles
28avec la fonction PHP 'array_diff' http://www.php.net/manual/fr/function.array-diff.php qui renvoie elle-meme un tableau.
29
30Un formulaire CFG permet de dŽfinir la liste des langues invisibles (qui ne doivent pas apparaitre dans le menu de langue).
31]
32
33[(#SET{langues_a_afficher,[(#CONFIG{langues_utilisees}|explode{","}|array_diff{#CONFIG{menu_lang_liens/langues_invisibles}})]})]
34
35<BOUCLE_PlusieursLanguesUtilisees(POUR){tableau #GET{langues_a_afficher}}{1,1}>
36<div id="menu_lang">
37[(#REM)
38On liste les langues utilisees dans le site
39]
40        <BOUCLE_ListeLangues(POUR){tableau #GET{langues_a_afficher}}>
41                [(#REM)
42                Si la langue n'est pas celle en cours, on fait un lien qui fait 2 actions :
43                - fixer le cookie de langue sur la langue demandee
44                - rediriger sur l'article dans la langue demandee si opportun
45                  sinon, revenir sur la page en cours
46                ]
47                [(#VALEUR|=={#ENV{lang}}|non)
48                        [<a href="[(#URL_ACTION_AUTEUR{'converser', '', #GET{ListeTraductions}|table_valeur{#VALEUR}|sinon{#SELF}}|parametre_url{var_lang,#VALEUR})]" rel="alternate" lang="#VALEUR" title="[(#VALEUR|traduire_nom_langue|ucfirst|attribut_html)]" class="langue_#VALEUR">(#VALEUR|ucfirst)</a>]
49                ]
50                [(#REM)
51                Si la langue est celle en cours, afficher celle-ci en gras, sans lien
52                ]
53                [(#VALEUR|=={#ENV{lang}}|oui)
54                        [<strong class="langue_#VALEUR" lang="#VALEUR" title="[(#VALEUR|traduire_nom_langue|ucfirst|attribut_html)]">(#VALEUR|ucfirst)</strong>]
55                ]
56        </BOUCLE_ListeLangues>
57</div>
58</BOUCLE_PlusieursLanguesUtilisees>
Note: See TracBrowser for help on using the repository browser.