En el archivo de plano de una plantilla, me gustaría usar un campo repetidor / lista,
que tiene un campo de selección con opciones,
y campos condicionales que evalúan la opción seleccionada por los usuarios para mostrar los campos en consecuencia.
Me gustaría usar esto para artículos largos, donde el usuario podría agregar / cambiar diferentes tipos de componentes
¿Cómo establezco una condición para el valor del campo de selección (en repetición)?
Como está el código ahora, solo la selección es visible y los condicionales no tienen ningún efecto.
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
El campo condicional no es algo que funcione "en vivo" basado en otros campos, simplemente puede ejecutar una función PHP cuando se le da servicio y luego tomar una determinación. Cualquier otra cosa requeriría Javascript para ejecutarse.
Gracias rhukster.
Me las arreglé para hacer un 'Campo de contenido flexible' ** (como los campos personalizados avanzados en Wordpress). Puedes ver el código aquí
** ¡Defina grupos de subcampos (diseños) y agréguelos, edítelos y reordenelos para crear contenido altamente personalizado!
Me encantaría ver algo como esto en un campo central en el complemento de formulario :) ¿PR quizás?
@rhukster
Se ha realizado una solicitud de extracción para la rama 'feature / flexible-form-field'.
Estado:
Necesito ayuda en:
tnx
(estoy en el canal flojo como 'genenenenaam')
@rhukster
¿Existe alguna dependencia en la 'clasificación de elementos de la lista' y el nombre de la plantilla de campo 'list.html.twig'?
Hice una prueba y parece:
Creo que la respuesta a esto puede resolver mi problema con el estado actual de la nueva función.