@ -2,23 +2,50 @@
Saisie permettant de choisir la disposition d'affichage d'un album
Nb : on ne réutilise pas la saisie radio de base car on veut embarquer les svg, ce qui n'est pas possible actuellement avec le param data.
Paramètres :
- multiple : n'importe quelle valeur évaluée à true pour saisir plusieurs choix
+ params des saisies checkbox ou radio
- valeur_forcee
- defaut
- id
- obligatoire
- disable
- readonly
- attributs
- class
]
#SET{saisie,#ENV{multiple}|?{checkbox,radio}}
#SET{data,#ARRAY}
#SET{dispositions,#REM|albums_decrire_dispositions|array_keys}
#SET{defaut, #ENV{defaut,#GET{dispositions/0}}}
< BOUCLE_set_data ( DATA ) { source table , # GET { dispositions } } { valeur ! = * } >
#SET{data,#GET{data}|array_merge{#ARRAY{
#VALEUR,#CHEMIN_IMAGE{album-disposition-#VALEUR-xx.svg}
|balise_img
|image_reduire{50}
|inserer_attribut{title,#VAL{album:disposition_}|concat{#VALEUR,_explication}|_T}
|concat{' ',#VAL{album:disposition_#VALEUR}|_T}
}}}
< / BOUCLE_set_data >
#SET{valeur, #ENV{valeur_forcee,#ENV{valeur,#ENV{defaut,#GET{dispositions/0}}}}}
#SET{disable_choix, #ENV{disable_choix}|saisies_normaliser_disable_choix}
#SET{compteur_id,0}
< BOUCLE_dispositions ( DATA ) { source table , # GET { dispositions } } { valeur ! = * } >
#SET{compteur_id,#GET{compteur_id}|plus{1}}
#SET{disabled, #ENV{disable}|is_string|?{#ENV{disable}, #ENV{disable/#CLE}}}
#SET{checked,#GET{valeur}|strval|=={#VALEUR|strval}}
< div class = "#ENV{choix,choix}[ (#ENV{choix,choix})_#VALEUR] choix_disposition-album[ (#ENV{class})]" >
< input type = "radio" name = "#ENV{nom}" class = "radio" [ ( # HTML5 | oui ) [ ( # ENV { obligatoire } | et { # ENV { obligatoire } | ! = { non } } | oui ) required = "required" ] ] id = "champ_[(#ENV{id,#ENV{nom}}|saisie_nom2classe)]_#GET{compteur_id}" [ ( # GET { checked } | oui ) checked = "checked" ] value = "#VALEUR" [ ( # GET { disabled } | ou { # CLE | in_array { # GET { disable_choix } } } ) disabled = "disabled" ] [ readonly = "(#ENV{readonly})" ] [ aria-describedby = "(#ENV{describedby})" ] [ ( # ENV * { attributs } ) ] / >
< label for = "champ_[(#ENV{id,#ENV{nom}}|saisie_nom2classe)]_#GET{compteur_id}" [ ( # GET { checked } | oui ) class = "on" ] title = "[(#VAL{album:disposition_}|concat{#VALEUR,_explication}|_T)]" > [(#INCLURE{#CHEMIN_IMAGE{album-disposition-#VALEUR-xx.svg}}) ][< span > (#VAL{album:disposition_#VALEUR}|_T)< / span > ]< / label >
< / div >
< / BOUCLE_dispositions >
< INCLURE { fond = saisies/#GET{saisie}, data = #GET{data}, defaut = #GET{defaut}, env } >
< style >
.choix.choix_disposition-album,
.choix.choix_disposition-album label {
display: flex !important;
align-items: center;
}
.choix.choix_disposition-album label {
margin-inline-start: 0.5em !important;
margin-inline-end: 0;
}
.choix.choix_disposition-album svg {
margin-inline-end: 0.5em;
}
.choix.choix_disposition-album svg .primary {
fill: var(--spip-color-theme, #5386ff) !important;
}
.choix.choix_disposition-album svg .background {
fill: var(--spip-color-gray-lightest, #eee) !important;
}
< / style >