在 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 中使用模型

Magnolia 版本中的隐藏操作是 5.7

在 Magnolia 中使用 MultiValueFieldDefinition 时限制子项的数量

在 Magnolia 4.5.3 中使用 cusom ftl 文件继承阶段

在 Magnolia 模板脚本中渲染组件索引

版本控制文件错误,在 java 中使用 Magnolia 与 apache 化学和标准 CMIS