J'ai besoin de définir un dialogue, composé de plusieurs champs de base (texte) imbriqués dans un champ commutable, lui-même imbriqué dans un champ composite, lui-même imbriqué dans un champ à plusieurs valeurs .Quelles classes de transformateur utiliser pour les formulaires Magnolia complexes
Multivalue
-> Composite
-> Switchable
-> textField1
-> textField2
-> generic textField (belonging to composite, but not to switchable)
Cependant, je n'arrive pas à trouver la bonne combinaison de transformateurs, que je dois utiliser. Si vous utilisez les classes DelegatingXXTransformer
correspondantes sur la zone multiValue et le champ composite, cela a presque fonctionné comme prévu, mais les transformateurs délégués masquent les boutons UI-controls (flèche vers le haut/haut) requis (voir image). Mais j'ai besoin de ces contrôles. J'ai besoin des informations que transformerClass doit utiliser pour n'importe quel élément, pour ne pas perdre les contrôles ui, mais être capable de gérer les champs imbriqués avec un niveau supérieur à deux. Pour résoudre ce problème?
yaml-config pertinente:
form:
tabs:
- name: tabMain
fields:
- name: mainNav
class: info.magnolia.ui.form.field.definition.MultiValueFieldDefinition
transformerClass: info.magnolia.ui.form.field.transformer.multi.DelegatingMultiValueSubnodeTransformer
field:
name: composite
class: info.magnolia.ui.form.field.definition.CompositeFieldDefinition
transformerClass: info.magnolia.ui.form.field.transformer.composite.DelegatingCompositeFieldTransformer
layout: vertical
fields:
- !include /module-ui/dialogs/common/link.yaml
- !include /module-ui/common/link-title.yaml
- !include /module-ui/dialogs/common/link-target.yaml
actions: !include /module-ui/dialogs/actions/default.yaml
link.yaml:
name: link
class: info.magnolia.ui.form.field.definition.SwitchableFieldDefinition
transformerClass: info.magnolia.ui.form.field.transformer.composite.SwitchableTransformer
options:
- name: internal
value: internal
selected: true
- name: external
value: external
fields:
- name: internal
class: info.magnolia.ui.form.field.definition.LinkFieldDefinition
appName: pages
identifierToPathConverter:
class: info.magnolia.ui.form.field.converter.BaseIdentifierToPathConverter
- name: external
class: info.magnolia.ui.form.field.definition.TextFieldDefinition
defaultValue: "http://"
Merci d'avoir clarifié :) – lunatikz