4848fca7a45eafec639ec583e1d7d151cd5284b2
[lhc/web/www.git] / www / plugins / Menu_langue_lien / formulaires / menu_lang.html
1 [(#REM)
2 Stocker les traductions eventuelles de la rubrique en cours si le plugin Tradrub est installe (permet l'utilisation du
3 critere traduction sur les rubriques)
4 ]
5 <BOUCLE_tradrub(CONDITION){si #PLUGIN{tradrub}}>
6 <BOUCLE_rubrique(RUBRIQUES){id_rubrique}>
7 #SET{ListeTraductions, #ARRAY{}}
8 <BOUCLE_TraductionRubriqueCourante(RUBRIQUES){traduction}{lang !IN #CONFIG{menu_lang_liens/langues_invisibles,#ARRAY}}>
9 #SET_MERGE{ListeTraductions,#GET{ListeTraductions},#ARRAY{#LANG,#URL_RUBRIQUE}}
10 </BOUCLE_TraductionRubriqueCourante>
11 </BOUCLE_rubrique>
12 </BOUCLE_tradrub>
13
14 [(#REM)
15 Stocker les traductions eventuelles de l'article en cours
16 ]
17 <BOUCLE_article(ARTICLES){id_article}>
18 #SET{ListeTraductions, #ARRAY{}}
19 <BOUCLE_TraductionArticleCourant(ARTICLES){traduction}{lang !IN #CONFIG{menu_lang_liens/langues_invisibles,#ARRAY}}>
20 #SET_MERGE{ListeTraductions,#GET{ListeTraductions},#ARRAY{#LANG,#URL_ARTICLE}}
21 </BOUCLE_TraductionArticleCourant>
22 </BOUCLE_article>
23
24 [(#REM)
25 Y-a-t'il plus d'une langue à afficher (moins les langues "invisibles") ?
26 Si oui, on affiche le menu de langue
27 Si non, rien
28
29 Si _MLL_LANGUES_MULTILINGUE est definie, on utilise la variable meta langues_multilingue (langues à disposition des rédacteurs, comportement natif de SPIP).
30 Sinon, on utilise langues_utilisees (langues reellement utilisees dans les articles).
31
32 Les langues "invisibles" sont les langues que le webmestre peut choisir de ne pas afficher dans le menu,
33 a partir du formulaire de configuration du plugin.
34
35 Note : 'explode' est une fonction PHP : http://php.net/manual/fr/function.explode.php, utilisee ici pour renvoyer un tableau contenant
36 les langues utilisees, a partir de la variable meta 'langues_utilisees'. Ce tableau est compare avec le tableau des langues invisibles
37 avec la fonction PHP 'array_diff' http://www.php.net/manual/fr/function.array-diff.php qui renvoie elle-meme un tableau.
38 ]
39
40 [(#VAL{_MLL_LANGUES_MULTILINGUE}|defined|et{#VAL{_MLL_LANGUES_MULTILINGUE}|constant|=={true}}|?{
41 #SET{mll_langues,langues_multilingue}
42 ,
43 #SET{mll_langues,langues_utilisees}
44 })]
45 [(#SET{langues_a_afficher,[(#CONFIG{#GET{mll_langues}}|explode{","}|array_diff{#CONFIG{menu_lang_liens/langues_invisibles, #ARRAY}})]})]
46 #SET{liste,#CONFIG{menu_lang_liens/formatliste,bloc}}
47 #SET{format,#CONFIG{menu_lang_liens/format,abrege}}
48 #SET{separateur,#CONFIG{menu_lang_liens/separateur,''}}
49 [(#GET{liste}|=={liste}|?{#SET{separateur,#CONFIG{menu_lang_liens/separateur,''}},''})]
50 <BOUCLE_PlusieursLanguesUtilisees(POUR){tableau #GET{langues_a_afficher}}{1,1}>
51 <[(#GET{liste}|=={liste}|?{ul,div})] id="menu_lang">[(#REM)
52
53 On liste les langues utilisees dans le site
54
55 ]<BOUCLE_ListeLangues(POUR){tableau #GET{langues_a_afficher}}>[(#GET{format}|=={'complet'}|?{[(#SET{nom_langue,[(#VALEUR|traduire_nom_langue)]})],[(#SET{nom_langue,[(#VALEUR)]})]})][
56 (#GET{liste}|=={liste}|oui)<li [(#COMPTEUR_BOUCLE|=={1}|oui)class="first"] [(#COMPTEUR_BOUCLE|=={#TOTAL_BOUCLE}|oui)class="last"]>
57 ][(#REM)
58
59 Si la langue n'est pas celle en cours, on fait un lien qui fait 2 actions :
60 - fixer le cookie de langue sur la langue demandee
61 - rediriger sur l'article dans la langue demandee si opportun
62 sinon, revenir sur la page en cours
63
64 url_absolue pour éviter des problèmes en urls arbo
65 ]
66 [[[[(#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)][
67 (#REM)
68
69 Si la langue est celle en cours, afficher celle-ci en gras, sans lien
70
71 ][[[[[(#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)][
72 (#GET{liste}|=={liste}|oui)</li>
73 ]</BOUCLE_ListeLangues>
74 </[(#GET{liste}|=={liste}|?{ul,div})]>
75 </BOUCLE_PlusieursLanguesUtilisees>
76 #FILTRE{trim}