Your IP : 216.73.217.68


Current Path : /home/atelierpru/provence/plugins/auto/saisies/v3.21.4/saisies/
Upload File :
Current File : /home/atelierpru/provence/plugins/auto/saisies/v3.21.4/saisies/checkbox.html

[(#REM)

  ### /!\ boucle POUR (spip Bonux) ###

  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}})]
]

[(#REM) data peut être une chaine qu'on sait décomposer ]
#SET{data, #ENV*{data, #ENV*{datas}}|saisies_chaine2tableau}

[(#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}


[(#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 correspondau au tablau #DATA si jamais c'était la chaîne valait "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}|strlen|oui)
	#SET{disabled, #ENV{disable_choix}|explode{','}}
]
[(#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(POUR){tableau #GET{data}}>
[(#REM) Soit il y a des sous-groupes ]
<BOUCLE_groupes(CONDITION) {si #VALEUR|is_array}>
<div class="choix-groupe">
	<em class="label">#CLE</em>
	<BOUCLE_checkbox_groupes(DATA) {source table, #VALEUR}>
	<div class="#ENV{choix,choix}[ (#ENV{choix,choix})_#CLE][ (#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}" 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>
	</BOUCLE_checkbox_groupes>
</div>
</BOUCLE_groupes>

[(#REM) Soit c'est un tableau simple ]
<div class="#ENV{choix,choix}[ (#ENV{choix,choix})_#CLE][ (#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}" 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="(#ENV*{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}').on('change', function() {
		if($('input.checkbox_#ENV{nom}:checked').length > [(#ENV{maximum_choix}|intval)]) {
			this.checked = false;
		}
	});
</script>
]