[PLUGINS] +les plugins de bases
[ptitvelo/web/www.git] / www / plugins / saisies / saisies / selection.html
1 [(#REM)
2
3 ### /!\ boucle POUR (spip Bonux) ###
4
5 Parametres :
6 - ** datas : tableau de donnees
7 liste simple : cle=>valeur
8 liste avec groupes : cle=> tableau (cle=>valeur)
9 - option_intro : chaine de langue de la premiere ligne vide ? (defaut:"")
10 - cacher_option_intro : pas de premier option vide (defaut:"")
11 - class : classe(s) css ajoutes au select
12 - defaut : valeur par defaut si pas présente dans l'environnement
13 - valeur_forcee : valeur utilisee meme si une valeur est dans l'environnement
14
15 Exemples d'appels
16 pour une liste simple :
17 [(#SAISIE{selection,produits,
18 label=<:plugin:info_produits:>,
19 datas=#ARRAY{
20 cle1,valeur1,
21 cle2,valeur2,
22 cle3,valeur3}})]
23 pour une liste avec groupes :
24 [(#SAISIE{selection,produits,
25 label=<:plugin:info_produits:>,
26 datas=#ARRAY{
27 cle1,#ARRAY{
28 cle1,valeur1,
29 cle2,valeur2},
30 cle2,#ARRAY{
31 cle1,valeur1,
32 cle2,valeur2}}})]
33 ]
34
35 [(#REM) datas peut être une chaine qu'on sait décomposer ]
36 #SET{datas, #ENV*{datas}}
37 #SET{datas, #GET{datas}|is_string|?{(#GET{datas}|saisies_chaine2tableau), #GET{datas}}}
38 [(#REM) Attention, la valeur ou la valeur forcée peut être une chaine vide. On doit donc tester avec is_null. ]
39 #SET{valeur,#ENV{valeur_forcee}|is_null|?{#ENV{valeur}|is_null|?{#ENV{defaut},#ENV{valeur}},#ENV{valeur_forcee}}}
40
41 <select name="#ENV{nom}" id="champ_[(#ENV{nom}|saisie_nom2classe)]"[ class="(#ENV{class})"][ disabled="(#ENV{disable})"][ size="(#ENV{size})"][ (#ENV*{attributs})]>
42 [(#ENV{cacher_option_intro}|non)<option value="">[(#ENV{option_intro})]</option>]
43 <BOUCLE_selection(POUR){tableau #GET{datas}}>
44 <B_cond>
45 <optgroup label="#CLE">
46 <BOUCLE_cond(CONDITION){si #VALEUR|is_array}><BOUCLE_optgroup(POUR){tableau #VALEUR}>
47 <option value="#CLE"[(#CLE|=={#GET{valeur}}|oui)selected="selected"]>#VALEUR</option>
48 </BOUCLE_optgroup></BOUCLE_cond>
49 </optgroup>
50 </B_cond>
51 <option value="#CLE"[(#CLE|=={#GET{valeur}}|oui)selected="selected"]>#VALEUR</option>
52 <//B_cond>
53 </BOUCLE_selection>
54 </select>