Changeset 114105 in spip-zone


Ignore:
Timestamp:
Feb 25, 2019, 5:57:05 PM (6 months ago)
Author:
rastapopoulos@…
Message:

Ajout important discuté hier : pouvoir configurer pour qu'après changement de langue, ça amène sur l'accueil rubrique de la langue choisie ou bien l'accueil général, et non pas sur la page courante, lorsqu'aucune traduction n'est trouvée. Ce qui permet désormais de toujours arriver sur une page ayant la langue choisie, au lieu de rester sur un contenu en français quand on a cliqué english par exemple, si y a pas de trad. Au passage nettoyage et réordonnement du squelette, mais c'est encore le bordel à lire en bas dans la dernière boucle d'affichage.

Location:
_plugins_/menu_langues_liens
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/menu_langues_liens/formulaires/configurer_menu_lang_liens.html

    r111592 r114105  
    99        #ACTION_FORMULAIRE{#ENV{action}}
    1010        <ul class="editer-groupe">
    11                 <li class="editer editer_mll_langues_invisibles[ (#ENV**{erreurs}|table_valeur{langues_invisibles}|oui)erreur]">
     11                <li class="editer editer_langues_invisibles[ (#ENV**{erreurs}|table_valeur{langues_invisibles}|oui)erreur]">
    1212                        <label for="langues_invisibles"><:mll:label_langues_invisibles:></label>
    1313                        <p class="explication"><:mll:explication_langues_invisibles:></p>
     
    1818                        </select>
    1919                </li>
    20                 <li class="editer editer_mll_langue_courante_invisible">
     20                <li class="editer editer_langue_courante_invisible">
    2121                        <label for="langue_courante_invisible"><:mll:label_langue_courante_invisible:></label>
    2222                        <input type="checkbox" name="langue_courante_invisible"[ checked="(#ENV{langue_courant_invisible}|oui)checked"] />
    2323                </li>
    24                 <li class="editer editer_mll_langues_supprimer[ (#ENV**{erreurs}|table_valeur{format}|oui)erreur]">
     24                <li class="editer editer_redirection[ (#ENV**{erreurs}|table_valeur{format}|oui)erreur]">
     25                        <label for="format"><:mll:label_redirection:></label>
     26                        <div class="choix">
     27                                <input type="radio" name="redirection" id="redirection_self" value="" [(#ENV{redirection,''}|=={''}|?{' ',''})checked]/>
     28                                <label for="redirection_self"><:mll:label_redirection_self:></label>
     29                        </div>
     30                        <div class="choix">
     31                                <input type="radio" name="redirection" id="redirection_accueil" value="accueil" [(#ENV{redirection,''}|=={'accueil'}|?{' ',''})checked]/>
     32                                <label for="redirection_accueil"><:mll:label_redirection_accueil:></label>
     33                        </div>
     34                </li>
     35                <li class="editer editer_format[ (#ENV**{erreurs}|table_valeur{format}|oui)erreur]">
    2536                        <label for="format"><:mll:label_format:></label>
    2637                        <div class="choix">
     
    3344                        </div>
    3445                </li>
    35                 <li class="editer editer_mll_langues_supprimer[ (#ENV**{erreurs}|table_valeur{formatliste}|oui)erreur]">
     46                <li class="editer editer_formatliste[ (#ENV**{erreurs}|table_valeur{formatliste}|oui)erreur]">
    3647                        <label for="formatliste"><:mll:label_format_liste:></label>
    3748                        <div class="choix">
     
    4455                        </div>
    4556                </li>
    46                 <li class="editer editer_mll_separateur[ (#ENV**{erreurs}|table_valeur{licence_defaut}|oui)erreur]">
     57                <li class="editer editer_separateur[ (#ENV**{erreurs}|table_valeur{licence_defaut}|oui)erreur]">
    4758                        <label for="seprateur"><:mll:label_separateur:></label>
    4859                        <p class="explication"><:mll:explication_separateur:></p>
  • _plugins_/menu_langues_liens/formulaires/menu_lang.html

    r113570 r114105  
     1[(#REM)
     2        Si _MLL_LANGUES_MULTILINGUE est definie, on utilise la variable meta langues_multilingue (langues à disposition des rédacteurs, comportement natif de SPIP).
     3        Sinon, on utilise langues_utilisees (langues reellement utilisees dans les articles).
     4       
     5        Les langues "invisibles" sont les langues que le webmestre peut choisir de ne pas afficher dans le menu,
     6        a partir du formulaire de configuration du plugin.
     7]
     8[(#VAL{_MLL_LANGUES_MULTILINGUE}|defined|et{#VAL{_MLL_LANGUES_MULTILINGUE}|constant|=={true}}|?{
     9        #SET{mll_langues,langues_multilingue}
     10,
     11        #SET{mll_langues,langues_utilisees}
     12})]
     13[(#SET{langues_a_afficher,[(#CONFIG{#GET{mll_langues}}|explode{","}|array_diff{#CONFIG{menu_lang_liens/langues_invisibles, #ARRAY}})]})]
     14
     15#SET{redirections, #ARRAY}
     16
    117[(#REM)
    218        Stocker les traductions eventuelles de la rubrique en cours si le plugin Tradrub est installe (permet l'utilisation du
     
    521<BOUCLE_tradrub(CONDITION){si #PLUGIN{tradrub}}>
    622        <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}}
     23                <BOUCLE_TraductionRubriqueCourante(RUBRIQUES){traduction}{lang IN #GET{langues_a_afficher}}>
     24                        #SET_MERGE{redirections,#GET{redirections},#ARRAY{#LANG,#URL_RUBRIQUE}}
    1025                </BOUCLE_TraductionRubriqueCourante>
    1126        </BOUCLE_rubrique>
     
    1631]
    1732<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>
     33        <BOUCLE_TraductionArticleCourant(ARTICLES){traduction}{lang IN #GET{langues_a_afficher}}>
     34                #SET_MERGE{redirections,#GET{redirections},#ARRAY{#LANG,#URL_ARTICLE}}
     35        </BOUCLE_TraductionArticleCourant>
    2236</BOUCLE_article>
    2337
     38[(#REM)
     39        Pour chaque langue à afficher on finit de définir où ça doit amener
     40]
     41<BOUCLE_liens(POUR){tableau #GET{langues_a_afficher}}>
     42        [(#REM)
     43                Chercher l'accueil où rediriger si la config le demande sinon on reste sur #SELF
     44        ]
     45        <BOUCLE_test_accueil(CONDITION){si #CONFIG{menu_lang_liens/redirection}|=={accueil}}>
     46                <BOUCLE_chercher_secteur_langue(RUBRIQUES){id_parent=0}{lang=#_liens:VALEUR}{0,1}{par num titre,titre}>
     47                #SET_MERGE{redirections,#ARRAY{#_liens:VALEUR,#URL_RUBRIQUE},#GET{redirections}}
     48                </BOUCLE_chercher_secteur_langue>
     49                #SET_MERGE{redirections,#ARRAY{#_liens:VALEUR,#URL_SITE_SPIP},#GET{redirections}}
     50                <//BOUCLE_chercher_secteur_langue>
     51        </BOUCLE_test_accueil>
     52        #SET_MERGE{redirections,#ARRAY{#_liens:VALEUR,#SELF},#GET{redirections}}
     53        <//B_test_accueil>
     54</BOUCLE_liens>
    2455
    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}})]})]
    4756#SET{liste,#CONFIG{menu_lang_liens/formatliste,bloc}}
    4857#SET{format,#CONFIG{menu_lang_liens/format,abrege}}
    4958#SET{separateur,#CONFIG{menu_lang_liens/separateur,''}}
    50 [(#GET{liste}|=={liste}|?{#SET{separateur,#CONFIG{menu_lang_liens/separateur,''}},''})]
    5159
    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)
     60[(#REM) Seulement s'il y a au moins deux langues à afficher (dont la courante sera peut-être masquée ensuite) ]
     61<BOUCLE_PlusieursLanguesUtilisees(POUR){tableau #GET{redirections}}{1,1}>
     62        <[(#GET{liste}|=={liste}|?{ul,div})] id="menu_lang">[(#REM)
    5563
    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)
     64                On liste les langues utilisees dans le site
    6165               
    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        ]<BOUCLE_ListeLangues(POUR){tableau #GET{redirections}}{par cle}>#SET{nom_langue,#GET{format}|!={complet}|?{#CLE,#CLE|traduire_nom_langue}}[
     67                (#GET{liste}|=={liste}|oui)<li [(#COMPTEUR_BOUCLE|=={1}|oui)class="first"] [(#COMPTEUR_BOUCLE|=={#TOTAL_BOUCLE}|oui)class="last"]>
     68                ][(#REM)
     69                       
     70                        Si la langue n'est pas celle en cours, on fait un lien qui fait 2 actions :
     71                        - fixer le cookie de langue sur la langue demandee
     72                        - rediriger sur l'article dans la langue demandee si opportun
     73                                sinon, revenir sur la page en cours
     74                       
     75                        url_absolue pour éviter des problèmes en urls arbo
     76                ]
     77                [[[[(#GET{separateur})](#GET{liste}|=={liste}|non)](#COMPTEUR_BOUCLE|>{1}|oui)][<a href="[(#SELF|parametre_url{action,converser}|parametre_url{var_lang,#CLE}|parametre_url{redirect,#VALEUR|url_absolue})]" rel="alternate" lang="#CLE"[(#GET{format}|=={'abrege'}|oui) title="[(#CLE|traduire_nom_langue|attribut_html)]"] class="langue_#CLE">(#GET{nom_langue})</a>](#CLE|=={#ENV{lang}}|non)][
     78                (#REM)
    6679               
    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
     80                        Si la langue est celle en cours, afficher celle-ci en gras, sans lien
    7381
    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})]>
     82                        ][[[[[(#GET{separateur})](#GET{liste}|=={liste}|non)](#COMPTEUR_BOUCLE|>{1}|oui)]<strong class="langue_#CLE" title="[(#CLE|traduire_nom_langue|attribut_html)]">(#GET{nom_langue})</strong>](#CLE|=={#ENV{lang}}|oui|et{#CONFIG{menu_lang_liens/langue_courante_invisible}|non})][
     83                (#GET{liste}|=={liste}|oui)</li>
     84        ]</BOUCLE_ListeLangues>
     85        </[(#GET{liste}|=={liste}|?{ul,div})]>
    7886</BOUCLE_PlusieursLanguesUtilisees>
     87
    7988#FILTRE{trim}
  • _plugins_/menu_langues_liens/lang/mll_fr.php

    r111593 r114105  
    2222        'label_format_liste_bloc' => 'Un bloc séparé par des espaces (ou séparateur configuré)',
    2323        'label_format_liste_liste' => 'Une liste à puces',
    24         'label_langue_courante_invisible' => 'Masquer la langue courant',
     24        'label_langue_courante_invisible' => 'Masquer la langue courante',
    2525        'label_langues_invisibles' => 'Langues invisibles du menu',
     26        'label_redirection' => 'Lorsqu’aucune traduction n’est trouvée',
     27        'label_redirection_accueil' => 'Rediriger vers l’accueil de la langue choisie (si secteurs de langue) ou l’accueil principal',
     28        'label_redirection_self' => 'Rester sur la page en cours',
    2629        'label_separateur' => 'Séparateur des langues'
    2730);
  • _plugins_/menu_langues_liens/paquet.xml

    r113570 r114105  
    22        prefix="mll"
    33        categorie="navigation"
    4         version="1.4.1"
     4        version="1.5.0"
    55        etat="stable"
    66        compatibilite="[2.0.10;3.2.*]"
     
    1717
    1818        <credit lien="http://www.fatcow.com/free-icons">icône par FatCow</credit>
    19         <copyright>2009-2014</copyright>
     19        <copyright>2009-2019</copyright>
    2020        <licence lien="http://www.gnu.org/licenses/gpl-3.0.html">GPL 3</licence>
    2121
     
    2525        <necessite nom="spip_bonux" compatibilite="[3.0.7;]" />
    2626        <utilise nom="tradrub" compatibilite="[3.1.2;[" />
    27 
    2827</paquet>
  • _plugins_/menu_langues_liens/plugin.xml

    r113570 r114105  
    22        <prefix>mll</prefix>
    33        <categorie>navigation</categorie>
    4         <version>1.4.1</version>
     4        <version>1.5.0</version>
    55        <etat>stable</etat>
    66        <icon>img_pack/world_link-32.png</icon>
Note: See TracChangeset for help on using the changeset viewer.