전환 가능한 필드에 중첩 된 여러 개의 기본 필드 (텍스트)로 구성된 대화 상자를 정의해야합니다.이 필드 자체는 다중 필드에 중첩 된 복합 필드에 중첩되어 있습니다 .복잡한 Magnolia 양식에 사용하는 transformerClasses
Multivalue
-> Composite
-> Switchable
-> textField1
-> textField2
-> generic textField (belonging to composite, but not to switchable)
그러나 내가 필요로하는 transformerClasses의 올바른 조합을 찾을 수 없습니다. multiValue 및 composite 필드에 해당 DelegatingXXTransformer
클래스를 사용하면 거의 예상대로 작동하지만 위임 용 변환기는 필요한 UI 컨트롤 (화살표 아래/위로) 버튼을 숨 깁니다 (이미지 참조). 하지만 그 통제가 필요합니다. transformerClass가 모든 요소에 사용할 정보가 필요합니다. UI 컨트롤을 잃지 않지만 여전히 2보다 높은 레벨로 중첩 된 필드를 처리 할 수 있어야합니다. 어쨌든이 문제를 해결하려면?
관련 YAML - 구성 :
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://"
감사합니다. :) – lunatikz