source: spip-zone/_plugins_/saisies/trunk/saisies/selection.html

Last change on this file was 125120, checked in by Maïeul Rouquette, 10 months ago

sous groupe au sein des saisies: mutualiser le code

File size: 2.2 KB
Line 
1[(#REM)
2
3  ### /!\ boucle POUR (spip Bonux) ###
4
5  Parametres :
6  - ** data : 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  - disable_choix : liste de valeurs à désactiver, séparées par des virgules
15
16  Exemples d'appels
17  pour une liste simple :
18        [(#SAISIE{selection,produits,
19                label=<:plugin:info_produits:>,
20                data=#ARRAY{
21                        cle1,valeur1,
22                        cle2,valeur2,
23                        cle3,valeur3}})]
24  pour une liste avec groupes :
25        [(#SAISIE{selection,produits,
26                label=<:plugin:info_produits:>,
27                data=#ARRAY{
28                        cle1,#ARRAY{
29                                cle1,valeur1,
30                                cle2,valeur2},
31                        cle2,#ARRAY{
32                                cle1,valeur1,
33                                cle2,valeur2}}})]
34]
35
36[(#REM) data peut être une chaine qu'on sait décomposer ]
37#SET{data, #ENV*{data, #ENV*{datas}}|saisies_chaine2tableau}
38
39[(#REM) Attention, la valeur ou la valeur forcée peut être une chaine vide. On doit donc tester avec is_null. ]
40#SET{valeur, #ENV{valeur_forcee}|is_null|?{#ENV{valeur}|is_null|?{#ENV{defaut},#ENV{valeur}},#ENV{valeur_forcee}}}
41
42#SET{disabled, #ARRAY}
43[(#ENV{disable_choix}|strlen|oui) #SET{disabled, #ENV{disable_choix}|explode{','}}]
44
45<select [(#HTML5|oui)[(#ENV{obligatoire}|et{#ENV{obligatoire}|!={non}}|oui) required="required"]] name="#ENV{nom}" id="champ_[(#ENV{id,#ENV{nom}}|saisie_nom2classe)]"[ class="(#ENV{class})"][ disabled="(#ENV{disable})"][ size="(#ENV{size})"][ (#ENV*{attributs})]>
46
47[(#ENV{cacher_option_intro}|non)<option value="">[(#ENV{option_intro})]</option>]
48<BOUCLE_selection(POUR){tableau #GET{data}}>
49        <B_cond>
50        <optgroup label="#CLE">
51        <BOUCLE_cond(CONDITION){si #VALEUR|is_array}>
52                #SET{data,#VALEUR}
53                <BOUCLE_recursive(BOUCLE_selection) />
54        </BOUCLE_cond>
55        </optgroup>
56        </B_cond>
57        <option value="#CLE"[(#CLE|=={#GET{valeur}}|oui)[(#GET{valeur}|strlen|oui)selected="selected"]][(#CLE|in_any{#GET{disabled}}|oui) disabled="disabled"]>#VALEUR</option>
58        <//B_cond>
59</BOUCLE_selection>
60</select>
Note: See TracBrowser for help on using the repository browser.