Dans le fichier de modèle pour un modèle, je voudrais utiliser un champ de répétition/liste,
qui a un champ de sélection avec des options,
et des champs conditionnels qui évaluent le choix sélectionné par les utilisateurs pour afficher les champs en conséquence.
Je voudrais l'utiliser pour de longs articles, où l'utilisateur pourrait ajouter/changer différents types de composants
Comment définir une condition à la valeur du champ de sélection (en répétition) ?
Dans l'état actuel du code, seul le select est visible et les conditionnels n'ont aucun effet.
header.field.selection:
type: list
style: vertical
label: Repeater/list with conditional field selection
fields:
.select: # this select sets the boolean for the conditional fields
type: select
size: long
classes: fancy
label: Select the type of field you would like to add
options:
tinymce: Textarea
slideshow: Slideshow
testimonial: Testimonial
video: Video
.tinymce:
type: conditional # if Textarea was selected render the tinymce fields
condition: "header.field.selection.select is same as('tinymce') ? 'true' : 'false'"
fields:
.fieldName:
type: text
label: Tinymce
.slideshow:
type: conditional # if slideshow was selected render the slideshow fields
condition: "header.field.selection.select is same as('slideshow') ? 'true' : 'false'"
fields:
.fieldName2:
type: text
label: Slideshow
.testimonial:
type: conditional # if testimonial was selected render the testimonial fields
condition: "header.field.selection.select is same as('testimonial') ? 'true' : 'false'"
fields:
.fieldName3:
type: text
label: Testimonial
.video:
type: conditional # if video was selected render the video fields
condition: "header.field.selection.select is same as('video') ? 'true' : 'false'"
fields:
.fieldName4:
type: text
label: Video
Le champ conditionnel n'est pas quelque chose qui fonctionne « en direct » sur la base d'autres champs, il peut simplement exécuter une fonction PHP lors de la maintenance et prendre une décision ensuite. Tout le reste nécessiterait l'exécution de Javascript.
Merci rhukster.
J'ai réussi à créer un « champ de contenu flexible »** (comme les champs personnalisés avancés dans Wordpress). Vous pouvez voir le code ici
** Définissez des groupes de sous-champs (mises en page) et ajoutez-les, modifiez-les et réorganisez-les pour créer un contenu hautement personnalisé !
J'adorerais voir quelque chose comme ça un champ de base dans le plugin Form :) PR peut-être ??
@rhukster
Une demande d'extraction a été effectuée pour la branche 'feature/flexible-form-field'.
Statut:
J'ai besoin d'aide sur :
tnx
(je suis sur le canal slack en tant que 'genenenenaam')
@rhukster
y a-t-il une dépendance sur le 'tri des éléments de liste' et le nom du modèle de champ 'list.html.twig' ?
J'ai fait un test et il me semble :
Je pense que la réponse à cette question peut résoudre mon problème avec l'état actuel de la nouvelle fonctionnalité.