Changeset 92869 in spip-zone


Ignore:
Timestamp:
Nov 12, 2015, 8:32:55 PM (4 years ago)
Author:
tcharlss@…
Message:

Factorisation des saisies et ajout de nouvelles options.

Les 4 saisies pays diffèrent uniquement par le champ utilisé comme valeur des options du select (id_pays, nom, code, code_alpha3 ou code_num). Au lieu de maintenir 4 saisies quasiment identiques, on reporte tout dans la saisie principale "pays", et il suffit de choisir le champ qu'on veut utiliser au moyen d'un nouveau paramètre 'champ_pays', qui prend comme valeur une colonne de la table spip_pays : nom, code, code_alpha3, code_num.
Ça ne casse rien, la rétrocompatibilité est assurée.

Concrètement, avant/après :
#SAISIE{pays_codenum, x} -> #SAISIE{pays, x, champ_pays=code_num}
#SAISIE{pays_codealpha3, x} -> #SAISIE{pays, x, champ_pays=code_alpha3}
#SAISIE{pays_nom,x} -> #SAISIE{pays, x, champ_pays=nom}
#SAISIE{pays,x,code_pays=oui} -> #SAISIE{pays, x, champ_pays=code}

Du coup, le paramètre code_pays=oui est obsolète, remplacé par champ_pays=code. Si les 2 sont utilisés en même temps, le dernier à précédence.

Ajout de nouveaux paramètres tirés de la saisie 'selecteur' :

  • multiple=oui pour avoir un select multiple.
  • valeur_forcee : valeur forcée
  • defaut : valeur par défaut
  • size : taille du sélecteur (seulement si multiple)
Location:
_plugins_/pays/trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/pays/trunk/paquet.xml

    r91032 r92869  
    22        prefix="pays"
    33        categorie="divers"
    4         version="3.1.0"
     4        version="3.1.1"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.1.*]"
  • _plugins_/pays/trunk/saisies/pays.html

    r46356 r92869  
    1 [(#REM) 
     1[(#REM)
    22
    33
    44        Adaptation pour fonctionner avec le plugin pays.
    5        
     5
    66        Parametres :
    77        - class : classe(s) css ajoutes au select
    88        - option_intro : chaine de langue de la premiere ligne vide ? (defaut:"")
    9         - cacher_option_intro : pas de premier option vide  (defaut:"")
    10        
     9        - cacher_option_intro : pas de premier option vide      (defaut:"")
     10        - champ_pays : choix du champ à utiliser comme valeur, 'id_pays' par défaut.
     11                       id_pays | code | code_alpha3 | code_num | nom
     12                       à préférer au paramètre 'code_pays', qu'il rend obsolète.
     13        - code_pays : (obsolète) pour utiliser le code pays à 2 chiffres au lieu du nom.
     14                      utiliser champs_pays=code à la place.
     15        - multiple : si quelquechose est passe, le select est multiple, sinon, c'est un select simple
     16        - defaut : valeur par defaut si pas présente dans l'environnement
     17        - valeur_forcee : valeur utilisee meme si une valeur est dans l'environnement
     18        - size : la taille du sélecteur (seulement si multiple)
     19
    1120        Exemple d'appel :
    1221        [(#SAISIE{pays, pays,
    13                 label=<:plugin:info_pays:>})]
    14 ]
    15 <select name="#ENV{nom}" id="champ_#ENV{nom}"[ class="(#ENV{class})"][ disabled="(#ENV{disable})"][ readonly="(#ENV{readonly})"] >
    16 [(#ENV{cacher_option_intro}|non)<option value="">[(#ENV{option_intro})]</option>]
    17 <BOUCLE_pays(PAYS){par multi nom}>
    18         #SET{pays,#ENV{code_pays}|=={oui}|?{#CODE,#ID_PAYS}}
    19         <option value="#GET{pays}"[(#GET{pays}|=={#ENV{valeur,#ENV{defaut}}}|oui) selected="selected"]>#NOM</option>
    20 </BOUCLE_pays>
     22                label=<:plugin:info_pays:>})]
     23]<select name="#ENV{nom}[(#ENV{multiple}|?{\[\]})]" id="champ_[(#ENV{id,#ENV{nom}}|saisie_nom2classe)]"[ class="(#ENV{class})"][(#ENV{multiple}|oui) multiple="multiple"[ size="(#ENV{size})"]][ disabled="(#ENV{disable})"][ readonly="(#ENV{readonly})"][ (#ENV*{attributs})]>
     24        [(#ENV{cacher_option_intro}|ou{#ENV{multiple}}|non)
     25        <option value="">[(#ENV{option_intro})]</option>]
     26        <BOUCLE_pays(PAYS){par multi nom}>[
     27
     28        (#REM) définition des valeurs et des labels correspondants à chaque champ. ][
     29        (#SET{mapping_champs,#ARRAY{
     30                id_pays,     #ARRAY{valeur,#ID_PAYS,     label,#NOM},
     31                code,        #ARRAY{valeur,#CODE,        label,#CODE|concat{'. ',#NOM}},
     32                code_alpha3, #ARRAY{valeur,#CODE_ALPHA3, label,#CODE_ALPHA3|concat{'. ',#NOM}},
     33                code_num,    #ARRAY{valeur,#CODE_NUM,    label,#CODE_NUM|concat{'. ',#NOM}},
     34                nom,         #ARRAY{valeur,#NOM,         label,#NOM}}})][
     35
     36        (#REM) définition du champ à utiliser : param champ_pays > code_pays > id_pays. ][
     37        (#SET{champ_pays,#ENV{champ_pays,#ENV{code_pays}|=={oui}|?{code_pays,id_pays}}})][
     38        (#SET{champ_pays,#GET{champ_pays}|in_array{#GET{mapping_champs}|array_keys}|?{#GET{champ_pays},id_pays}})][
     39
     40        (#REM) définition de la valeur et du label. ][
     41        (#SET{pays,#GET{mapping_champs/#GET{champ_pays}/valeur}})][
     42        (#SET{label,#GET{mapping_champs/#GET{champ_pays}/label}})
     43        ][(#ENV{multiple}|oui)
     44                <option value="#GET{pays}"[(#GET{pays}|in_array{#ENV{valeur_forcee,#ENV{valeur,#ENV{defaut,#ARRAY}}}}|oui) selected="selected"]>[(#GET{label})]</option>]
     45                [(#ENV{multiple}|non)
     46                <option value="#GET{pays}"[(#GET{pays}|=={#ENV{valeur_forcee,#ENV{valeur,#ENV{defaut}}}}|oui) selected="selected"]>[(#GET{label})]</option>]
     47        </BOUCLE_pays>
    2148</select>
  • _plugins_/pays/trunk/saisies/pays_codealpha3.html

    r79845 r92869  
    1 [(#REM) 
     1[(#REM)
    22
     3        Obsolète : utiliser la saisie `pays` à la place, avec le paramètre `champ_pays=code_alpha3`
    34
    4         Adaptation pour fonctionner avec le plugin pays.
    5        
    6         Parametres :
    7         - class : classe(s) css ajoutes au select
    8         - option_intro : chaine de langue de la premiere ligne vide ? (defaut:"")
    9         - cacher_option_intro : pas de premier option vide  (defaut:"")
    10        
    11         Exemple d'appel :
    12         [(#SAISIE{pays_codealpha3, pays,
    13                 label=<:plugin:info_pays:>})]
     5        #SAISIE{pays, pays,
     6                champ_pays=code_alpha3}
     7
    148]
    15 <select name="#ENV{nom}" id="champ_#ENV{nom}"[ class="(#ENV{class})"][ disabled="(#ENV{disable})"][ readonly="(#ENV{readonly})"] >
    16 [(#ENV{cacher_option_intro}|non)<option value="">[(#ENV{option_intro})]</option>]
    17 <BOUCLE_pays(PAYS){par multi nom, code_alpha3}>
    18         #SET{pays,#CODE_ALPHA3}
    19         <option value="#GET{pays}"[(#GET{pays}|=={#ENV{valeur,#ENV{defaut}}}|oui) selected="selected"]>[(#GET{pays}). ]#NOM</option>
    20 </BOUCLE_pays>
    21 </select>
     9<INCLURE{fond=saisies/pays, env, champ_pays=code_alpha3} />
  • _plugins_/pays/trunk/saisies/pays_codenum.html

    r79437 r92869  
    1 [(#REM) 
     1[(#REM)
    22
     3        Obsolète : utiliser la saisie `pays` à la place, avec le paramètre `champ_pays=code_num`
    34
    4         Adaptation pour fonctionner avec le plugin pays.
    5        
    6         Parametres :
    7         - class : classe(s) css ajoutes au select
    8         - option_intro : chaine de langue de la premiere ligne vide ? (defaut:"")
    9         - cacher_option_intro : pas de premier option vide  (defaut:"")
    10        
    11         Exemple d'appel :
    12         [(#SAISIE{pays_codenum, pays,
    13                 label=<:plugin:info_pays:>})]
     5        #SAISIE{pays, pays,
     6                champ_pays=code_num}
     7
    148]
    15 <select name="#ENV{nom}" id="champ_#ENV{nom}"[ class="(#ENV{class})"][ disabled="(#ENV{disable})"][ readonly="(#ENV{readonly})"] >
    16 [(#ENV{cacher_option_intro}|non)<option value="">[(#ENV{option_intro})]</option>]
    17 <BOUCLE_pays(PAYS){par multi nom}>
    18         #SET{pays,#CODE_NUM}
    19         <option value="#GET{pays}"[(#GET{pays}|=={#ENV{valeur,#ENV{defaut}}}|oui) selected="selected"]>[(#GET{pays}). ]#NOM</option>
    20 </BOUCLE_pays>
    21 </select>
     9<INCLURE{fond=saisies/pays, env, champ_pays=code_num} />
  • _plugins_/pays/trunk/saisies/pays_nom.html

    r79440 r92869  
    1 [(#REM) 
     1[(#REM)
    22
     3        Obsolète : utiliser la saisie `pays` à la place, avec le paramètre `champ_pays=nom`
    34
    4         Adaptation pour fonctionner avec le plugin pays.
    5        
    6         Parametres :
    7         - class : classe(s) css ajoutes au select
    8         - option_intro : chaine de langue de la premiere ligne vide ? (defaut:"")
    9         - cacher_option_intro : pas de premier option vide  (defaut:"")
    10        
    11         Exemple d'appel :
    12         [(#SAISIE{pays_nom, pays,
    13                 label=<:plugin:info_pays:>})]
     5        #SAISIE{pays, pays,
     6                champ_pays=nom}
     7
    148]
    15 <select name="#ENV{nom}" id="champ_#ENV{nom}"[ class="(#ENV{class})"][ disabled="(#ENV{disable})"][ readonly="(#ENV{readonly})"] >
    16 [(#ENV{cacher_option_intro}|non)<option value="">[(#ENV{option_intro})]</option>]
    17 <BOUCLE_pays(PAYS){par multi nom}>
    18         #SET{pays,#NOM}
    19         <option value="#GET{pays}"[(#GET{pays}|=={#ENV{valeur,#ENV{defaut}}}|oui) selected="selected"]>#NOM</option>
    20 </BOUCLE_pays>
    21 </select>
     9<INCLURE{fond=saisies/pays, env, champ_pays=nom} />
Note: See TracChangeset for help on using the changeset viewer.