You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

94 lines
4.1 KiB

[(#REM)
Parametres :
- data : tableau de donnees cle=>valeur
- defaut : valeur par defaut si pas présente dans l'environnement
- valeur_forcee : valeur utilisee meme si une valeur est dans l'environnement
Exemple d'appel :
[(#SAISIE{checkbox, criteres,
label=<:plugin:choisir_criteres:>,
defaut=#ARRAY{0,cle1,1,cle3},
defaut=cle2,
data=#ARRAY{
cle1,valeur1,
cle2,valeur2,
cle3,valeur3}})]
]
#SET{data, #ENV*{data, #ENV*{datas}}}
[(#REM) defaut peut être une chaine (plusieurs valeurs ou pas) qu'on sait décomposer ]
#SET{defaut, #ENV{defaut}|saisies_chaine2tableau}
[(#REM) valeur doit être un tableau ! ]
#SET{valeur, #ENV{valeur}|saisies_valeur2tableau{#GET{data}}}
[(#REM) lorsque qu'on donne un 'disabled' qui est une chaine,
il faut la transformer en tableau.
- Ce tableau est vide si la chaine valait '' sinon une clé 0 serait considérée disabled à tord
- Ce tableau correspond au tablau #DATA si jamais la chaîne vaut "disabled" (typiquement avec le constructeur .yaml)
]
#SET{disabled,#ENV{disable}}
[(#GET{disabled}|=={disabled}|oui)
#SET{disabled,#GET{data}|array_keys}
]
[(#GET{disabled}|is_string|oui)
[(#GET{disabled}|strlen|non) #SET{disabled,#ARRAY} ]
[(#GET{disabled}|oui) #SET{disabled,#ARRAY|push{#GET{disabled}}} ]
]
[(#ENV{disable_choix,''}|oui)
#SET{disabled, #ENV{disable_choix}|saisies_normaliser_disable_choix}
]
[(#ENV{tout_selectionner}|oui)
<div class="[(#ENV{choix,choix})][ (#ENV{choix,choix})_tout_selectionner ][ (#ENV{class}) ]none-nojs">
<input type="checkbox" name="#ENV{nom}_tout" class="checkbox" id="champ_[(#ENV{id,#ENV{nom}}|saisie_nom2classe)]_tout" value="on" onChange="if (jQuery(this).prop('checked')==true) jQuery(this).parent('div').parent().find('input').prop('checked',true); else jQuery(this).parent('div').parent().find('input').prop('checked',false);"/>
<label for="champ_[(#ENV{id,#ENV{nom}}|saisie_nom2classe)]_tout"[ class="(#ENV{label_class})"]><:saisies:tout_selectionner:></label>
</div>
]
<BOUCLE_checkbox(DATA){source tableau, #GET{data}}>
[(#REM) Soit il y a des sous-groupes ]
<BOUCLE_groupes(CONDITION) {si #VALEUR|is_array}>
<div class="choix-groupe">
<p class="editer-label">#CLE</p>
#SET{data,#VALEUR}
<BOUCLE_recursive(BOUCLE_checkbox) />
</div>
</BOUCLE_groupes>
[(#REM) Soit c'est un tableau simple ]
<div class="#ENV{choix,choix}[ (#ENV{choix,choix})_#CLE][ (#CLE|in_array{#GET{disabled}}|oui)disabled][ (#ENV{class})]">[(#SET{id,champ_[(#ENV{id,#ENV{nom}}|saisie_nom2classe)]_[(#COMPTEUR_BOUCLE|concat{'-',#CLE}|md5)]})]
<input type="checkbox" name="#ENV{nom}[]" class="checkbox checkbox_[(#ENV{nom}|saisie_nom2classe)]" id="#GET{id}"[ (#CLE|in_array{#ENV{valeur_forcee,#GET{valeur,#GET{defaut}}}}|oui)checked="checked"] value="#CLE"[(#CLE|in_array{#GET{disabled}}|oui) disabled="disabled"][ aria-describedby="(#ENV{describedby})"][ (#ENV*{attributs})] />
[(#ENV{disable_avec_post}|et{#ENV{disable_avec_post}|!={non}}|oui)
[(#CLE|in_array{#GET{defaut}}|oui)
<input type="hidden" name="#ENV{nom}\[\]" value="#CLE" />
]
]
<label for="#GET{id}"[(#CLE|in_array{#ENV{valeur_forcee,#GET{valeur,#GET{defaut}}}}|oui)class="on"][(#ENV{attribut_title}|oui) title="#CLE"]>#VALEUR</label>
</div>
<//B_groupes>
</BOUCLE_checkbox>
[(#ENV{choix_alternatif}|oui)
<div class="[(#ENV{choix,choix}) ]choix_alternatif[(#ENV{choix}|oui)[ (#ENV{choix})_alternatif]][ (#ENV{class})]">
<input name="#ENV{nom}\[choix_alternatif\]" id="[champ_(#ENV{id,#ENV{nom}}|saisie_nom2classe)_choix_alternatif]"[ value="(#GET{data}|saisies_trouver_choix_alternatif{#GET{valeur}})"] />
<label for="[champ_(#ENV{id,#ENV{nom}}|saisie_nom2classe)_choix_alternatif]"[ class="(#ENV{label_class})"]>
[(#ENV{choix_alternatif_label, <:saisies:option_choix_alternatif_label_defaut:>})]
</label>
[<p class="explication">
(#ENV{choix_alternatif_explication})
</p>]
</div>
]
</B_checkbox>
[(#ENV{maximum_choix}|intval|oui)
<script type="text/javascript">
$('input.checkbox_[(#ENV{nom}|saisie_nom2classe)]').on('change', function() {
if($('input.checkbox_[(#ENV{nom}|saisie_nom2classe)]:checked').length > [(#ENV{maximum_choix}|intval)]) {
this.checked = false;
}
});
</script>
]