Afficher si sur constructeur de saisie
Suite à la remarque de @tcharlss en saisie_nombre#2
j'ai voulu testé un afficher_si sur un constructeur, et naturellement cela ne fonctionne pas car les name
sont transformés dynamiquement en fonction de la place dans le constructeur.... et tout cela ne passe pas au moment du generateur de JS (qui du coup nous logue un champ inexistant).
La solution est a priori relativement simple : il faut que la fonction qui charge le constructeur precis cherche automatiquement tous les afficher_si et modifie les champs.
Une fonction afficher_si_prefixer($saisies, $prefixe)
me parait le mieux.
Pour démo le constructeur testé
heritage: 'input'
titre: '<:saisie_nombre:saisie_nombre_titre:>'
description: '<:saisie_nombre:saisie_nombre_explication:>'
icone: 'images/saisies_nombre.png'
heritage_supprimer_options:
- 'type'
- 'maxlength'
heritage_modifier_options:
-
fusion: true
options:
nouveau_type_saisie: 'nombre'
nom: 'defaut'
verifier:
type: 'decimal'
options:
normaliser: true
heritage_inserer_options:
-
chemin:
- 0
- 'saisies'
- 1
saisie: 'nombre'
options:
nom: 'decimales'
label: '<:saisie_nombre:option_decimales_label:>'
defaut: 0
verifier:
type: 'entier'
-
chemin:
- 0
- 'saisies'
- 2
saisie: 'input'
options:
nom: 'separateur_decimales'
label: '<:saisie_nombre:option_separateur_decimales_label:>'
defaut: ','
afficher_si: '@decimales@ > 0'
-
chemin:
- 0
- 'saisies'
- 3
saisie: 'input'
options:
nom: 'separateur_milliers'
label: '<:saisie_nombre:option_separateur_milliers_label:>'
defaut: ' '
defaut:
options:
decimales: 0
separateur_decimales: ','
separateur_milliers: ' '
label: '<:saisie_nombre:saisie_nombre_titre:>'
size: 40
# champs extras (definition du champ sql)
sql: "FLOAT DEFAULT 0 NOT NULL"
verifier:
type: 'decimal'
options:
normaliser: 'on'
Modification effectuée par JamesRezo