source: spip-zone/_plugins_/mots_arborescents/trunk/saisies/mots_recursif.html @ 103749

Last change on this file since 103749 was 103749, checked in by nicolas.dorigny@…, 3 years ago

Ajout d'une option "interdire_racine", qui permet de rendre les mots clés parents non sélectionnables (en mode mutliple/checkbox), et d'une vue pour la saisie.

File size: 4.4 KB
Line 
1[(#REM)
2
3  Parametres :
4  - id_groupe : le groupe de mot clés à utiliser
5  - class : classe(s) css ajoutes au select
6  - multiple : si quelquechose est passe, le select est multiple (checkbox), sinon, c'est un select simple
7      Dans le cas multiple, defaut et valeur doivent être un array, sinon un int
8  - option_intro : chaine de langue de la premiere ligne vide ? (defaut:"")
9      (seulement si non multiple)
10  - cacher_option_intro : pas de premier option vide  (defaut:"")
11      (champs tables_liees de spip_groupes_mots)
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  - exclus : Liste de mots qu'on ne peux pas sélectionner
15  - interdire_racine : si une valeur est passée, les mots clés parents ne sont pas sélectionnables
16      en mode multiple (checkbox)
17 
18  Exemple d'appel :
19        [(#SAISIE{mots_recursif,mots,
20                label=<:plugin:secteur_region:>,
21                multiple=oui
22                id_groupe=3})]
23
24]
25
26#SET{exclus,#ENV{exclus,#LISTE}}
27[(#ENV{multiple}|oui) #SET{valeur,#ENV{valeur_forcee,#ENV{valeur,#ENV{defaut,#ARRAY}}}} ]
28[(#ENV{multiple}|non) #SET{valeur,#ENV{valeur_forcee,#ENV{valeur,#ENV{defaut}}}} ]
29
30#SET{profondeur,1}
31<BOUCLE_multiples(GROUPES_MOTS){id_groupe}{unseul!=oui}{si #ENV{multiple}|oui}>
32        [(#REM) defaut peut être une chaine (plusieurs valeurs ou pas) qu'on sait décomposer ]
33        #SET{defaut, #ENV{defaut}|saisies_chaine2tableau}
34        [(#REM) valeur doit être un tableau ! ]
35        #SET{valeur, #ENV{valeur}|saisies_valeur2tableau}
36        [(#REM) valeur doit être un tableau ! ]
37        #SET{valeur_forcee, #ENV{valeur_forcee}|saisies_valeur2tableau}
38        <BOUCLE_checkmots(MOTS){racine}{par num titre, titre}{id_groupe}>
39        <div class="choix choix_#ID_MOT[ (#ENV{class})] motsar-racine">[(#SET{id,champ_[(#ENV{id,#ENV{nom}}|saisie_nom2classe)]_[(#ID_MOT|concat{'-',#ENV{nom}}|md5)]})]
40                [(#SET{checked,[(#ID_MOT|in_array{#GET{valeur_forcee,#GET{valeur,#GET{defaut}}}}|oui)]})]
41                [(#ENV{interdire_racine}|oui)<label>#TITRE</label>]
42                [(#ENV{interdire_racine}|non)
43                <input type="checkbox" name="#ENV{nom}\[\]" class="checkbox" id="#GET{id}"[ (#GET{checked})checked="checked"] value="#ID_MOT"[ (#ENV*{attributs})] />
44                <label for="#GET{id}"[(#GET{checked})class="on"]>#TITRE</label>
45                ]
46        </div>
47        <BOUCLE_check_enfants(MOTS){id_parent}{id_groupe?}{par num titre, titre}>
48        <div class="choix choix_#ID_MOT[ (#ENV{class})] motsar-enfant">[(#SET{id,champ_[(#ENV{id,#ENV{nom}}|saisie_nom2classe)]_[(#ID_MOT|concat{'-',#ENV{nom}}|md5)]})]
49                [(#SET{checked,[(#ID_MOT|in_array{#GET{valeur_forcee,#GET{valeur,#GET{defaut}}}}|oui)]})]
50                [(#PROFONDEUR|mostar_tabulation)]
51                <input type="checkbox" name="#ENV{nom}[]" class="checkbox" id="#GET{id}"[ (#GET{checked})checked="checked"] value="#ID_MOT"[ (#ENV*{attributs})] />
52                <label for="#GET{id}"[(#GET{checked})class="on"]>#TITRE</label>
53        </div>
54        #SET{profondeur,#GET{profondeur}|plus{1}}
55        <BOUCLE_check_recursif(BOUCLE_check_enfants) />
56        #SET{profondeur,#GET{profondeur}|moins{1}}
57        </BOUCLE_check_enfants>
58        </BOUCLE_checkmots>
59</BOUCLE_multiples>
60
61#SET{profondeur,1}     
62<select name="#ENV{nom}[(#ENV{multiple}|?{\[\]})]" id="champ_[(#ENV{nom}|saisie_nom2classe)]"[ class="(#ENV{class})"][(#ENV{multiple}|oui) multiple="multiple" size="#ENV{size,10}"][ disabled="(#ENV{disable})"]>
63        [(#ENV{cacher_option_intro}|ou{#ENV{multiple}}|non)
64                <option value="0">[(#ENV{option_intro})]</option>]
65        <BOUCLE_mots(MOTS){racine}{id_groupe?}{par num titre, titre}{tout}>
66                [(#ENV{multiple}|oui)
67                <option value="#ID_MOT"[(#ID_MOT|in_array{#GET{valeur}}|oui) selected="selected"][ (#ID_MOT|in_array{#GET{exclus}}|oui) disabled="disabled"]>#TITRE</option>]
68                [(#ENV{multiple}|non)
69                <option value="#ID_MOT"[(#ID_MOT|=={#GET{valeur}}|oui) selected="selected"][ (#ID_MOT|in_array{#GET{exclus}}|oui) disabled="disabled"]>#TITRE</option>]
70
71                <BOUCLE_enfants(MOTS){id_parent}{id_groupe?}{par num titre, titre}>
72                        [(#ENV{multiple}|oui)
73                        <option value="#ID_MOT"[(#ID_MOT|in_array{#GET{valeur}}|oui) selected="selected"][ (#ID_MOT|in_array{#GET{exclus}}|oui) disabled="disabled"]>[(#PROFONDEUR|mostar_tabulation)]#TITRE</option>]
74                        [(#ENV{multiple}|non)
75                        <option value="#ID_MOT"[(#ID_MOT|=={#GET{valeur}}|oui) selected="selected"][ (#ID_MOT|in_array{#GET{exclus}}|oui) disabled="disabled"]>[(#PROFONDEUR|mostar_tabulation)]#TITRE</option>]
76                        #SET{profondeur,#GET{profondeur}|plus{1}}
77                        <BOUCLE_recursif(BOUCLE_enfants) />
78                        #SET{profondeur,#GET{profondeur}|moins{1}}
79                </BOUCLE_enfants>
80        </BOUCLE_mots>
81</select>
82<//B_multiples>
Note: See TracBrowser for help on using the repository browser.