在 Magnolia 中使用 MultiValueFieldDefinition 时限制子项的数量
Posted
技术标签:
【中文标题】在 Magnolia 中使用 MultiValueFieldDefinition 时限制子项的数量【英文标题】:Restricting number of children when using MultiValueFieldDefinition in Magnolia 【发布时间】:2017-11-23 13:30:54 【问题描述】:因此,我正在为要添加到 Magnolia CMS 模板中的组件创建自定义对话框。
到目前为止,以下 yaml 工作正常。
form:
tabs:
- name: tabMain
fields:
- !include:/n-components/dialogs/include/backgroundColorSelectField.yaml
- name: title
label: Title
class: info.magnolia.ui.form.field.definition.TextFieldDefinition
maxLength: 75
i18n: true
- name: tiles
label: Tiles
class: info.magnolia.ui.form.field.definition.MultiValueFieldDefinition
transformerClass: info.magnolia.ui.form.field.transformer.multi.MultiValueSubChildrenNodePropertiesTransformer
field:
name: compositeField
class: info.magnolia.editor.app.field.CollapsibleCompositeFieldDefinition
layout: vertival
label: Collapse
transformerClass: info.magnolia.ui.form.field.transformer.composite.DelegatingCompositeFieldTransformer
fields:
- name: tileTitle
label: Tile title
class: info.magnolia.ui.form.field.definition.TextFieldDefinition
- name: tileText
label: Tile text
class: info.magnolia.ui.form.field.definition.TextFieldDefinition
rows: 3
但是,我希望 MultiValueFieldDefinition 允许最大(也可能是最小?)子项数。
这是一个选项吗?我尝试了 maxLength 但它不起作用。文档没有谈论这样的属性,但也许有人遇到了类似的问题。
如果可能,我宁愿避免使用任何 Java。
【问题讨论】:
【参考方案1】:我不这么认为,OOTB:
41 public class MultiValueFieldDefinition extends ConfiguredFieldDefinition
42
43 private String buttonSelectAddLabel = "buttons.add";
44 private String buttonSelectRemoveLabel = "buttons.delete";
45 private ConfiguredFieldDefinition field;
46
而ConfiguredFieldDefinition
也没有任何这样的成员变量。最后,您可能使用的属性是因为一些成员变量存在于底层 Java 类中。
您可以扩展 MultiValueFieldDefinition
并添加这些属性,然后在您的项目中使用它,但您说您对此不感兴趣。
【讨论】:
以上是关于在 Magnolia 中使用 MultiValueFieldDefinition 时限制子项的数量的主要内容,如果未能解决你的问题,请参考以下文章
在 Magnolia 中使用 MultiValueFieldDefinition 时限制子项的数量