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

Last change on this file since 113570 was 113570, checked in by rastapopoulos@…, 4 months ago

SPIP est bien conçu : il donne aux gens la liste des langues *dans l'orthographe officielle de chaque langue*. Il n'y a donc pas à transformer en dur l'orthographe. Par exemple en français, Français ce sont les gens, les habitants, la langue est en minuscule. Si des gens bizarres ont besoin de changer la graphie des mots, ils peuvent le faire en CSS ensuite : c'est de la décoration. Mais les vrais mots dans le HTML doivent rester dans la bonne orthographe.

File size: 4.2 KB
Line 
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
25[(#REM)
26        Y-a-t'il plus d'une langue à afficher (moins les langues "invisibles") ?
27        Si oui, on affiche le menu de langue
28        Si non, rien
29       
30        Si _MLL_LANGUES_MULTILINGUE est definie, on utilise la variable meta langues_multilingue (langues à disposition des rédacteurs, comportement natif de SPIP).
31        Sinon, on utilise langues_utilisees (langues reellement utilisees dans les articles).
32       
33        Les langues "invisibles" sont les langues que le webmestre peut choisir de ne pas afficher dans le menu,
34        a partir du formulaire de configuration du plugin.
35       
36        Note : 'explode' est une fonction PHP : http://php.net/manual/fr/function.explode.php, utilisee ici pour renvoyer un tableau contenant
37        les langues utilisees, a partir de la variable meta 'langues_utilisees'. Ce tableau est compare avec le tableau des langues invisibles
38        avec la fonction PHP 'array_diff' http://www.php.net/manual/fr/function.array-diff.php qui renvoie elle-meme un tableau.
39]
40
41[(#VAL{_MLL_LANGUES_MULTILINGUE}|defined|et{#VAL{_MLL_LANGUES_MULTILINGUE}|constant|=={true}}|?{
42        #SET{mll_langues,langues_multilingue}
43,
44        #SET{mll_langues,langues_utilisees}
45})]
46[(#SET{langues_a_afficher,[(#CONFIG{#GET{mll_langues}}|explode{","}|array_diff{#CONFIG{menu_lang_liens/langues_invisibles, #ARRAY}})]})]
47#SET{liste,#CONFIG{menu_lang_liens/formatliste,bloc}}
48#SET{format,#CONFIG{menu_lang_liens/format,abrege}}
49#SET{separateur,#CONFIG{menu_lang_liens/separateur,''}}
50[(#GET{liste}|=={liste}|?{#SET{separateur,#CONFIG{menu_lang_liens/separateur,''}},''})]
51
52[(#REM) on supprime la langue courante si jamais c'est configuré pour cela]
53<BOUCLE_PlusieursLanguesUtilisees(POUR){tableau #GET{langues_a_afficher}}{1,1}>
54<[(#GET{liste}|=={liste}|?{ul,div})] id="menu_lang">[(#REM)
55
56        On liste les langues utilisees dans le site
57       
58]<BOUCLE_ListeLangues(POUR){tableau #GET{langues_a_afficher}}>[(#GET{format}|=={'complet'}|?{[(#SET{nom_langue,[(#VALEUR|traduire_nom_langue)]})],[(#SET{nom_langue,[(#VALEUR)]})]})][
59        (#GET{liste}|=={liste}|oui)<li [(#COMPTEUR_BOUCLE|=={1}|oui)class="first"] [(#COMPTEUR_BOUCLE|=={#TOTAL_BOUCLE}|oui)class="last"]>
60        ][(#REM)
61               
62                Si la langue n'est pas celle en cours, on fait un lien qui fait 2 actions :
63                - fixer le cookie de langue sur la langue demandee
64                - rediriger sur l'article dans la langue demandee si opportun
65                  sinon, revenir sur la page en cours
66               
67                url_absolue pour éviter des problèmes en urls arbo
68        ]
69        [[[[(#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|attribut_html)]"] class="langue_#VALEUR">(#GET{nom_langue})</a>](#VALEUR|=={#ENV{lang}}|non)][
70        (#REM)
71       
72                Si la langue est celle en cours, afficher celle-ci en gras, sans lien
73
74                ][[[[[(#GET{separateur})](#GET{liste}|=={liste}|non)](#COMPTEUR_BOUCLE|>{1}|oui)]<strong class="langue_#VALEUR" title="[(#VALEUR|traduire_nom_langue|attribut_html)]">(#GET{nom_langue})</strong>](#VALEUR|=={#ENV{lang}}|oui|et{#CONFIG{menu_lang_liens/langue_courante_invisible}|non})][
75        (#GET{liste}|=={liste}|oui)</li>
76]</BOUCLE_ListeLangues>
77</[(#GET{liste}|=={liste}|?{ul,div})]>
78</BOUCLE_PlusieursLanguesUtilisees>
79#FILTRE{trim}
Note: See TracBrowser for help on using the repository browser.