如何限制CQ5中多字段中的元素数量?

Gle*_*iko 7 element limit day-cq aem

我用Day CQ5开发了这个网站,并遇到了问题.我正在创建一个组件,以及它的对话.我在对话框中使用组件元素"multifield",其中包含几个元素"pathfield".如何设置特定数量的元素"pathfield"并删除"+"和" - "按钮?

ano*_*ave 5

我本周遇到了这个确切的问题:)

似乎默认情况下您不能限制编辑器可以输入的项目数.为了解决这个问题,我创建了一个位于的Multifield.js的叠加层

/apps/cq/ui/widgets/source/widgets/form/MultiField.js
Run Code Online (Sandbox Code Playgroud)

我在多字段下的fieldConfig节点上添加了对'limit'属性集的检查.如果存在且不为零,则将其用作用户可以添加的最大字段数.

不希望通过发布完整叠加层来解决版权问题,但我所做的更改如下:

在构造函数(第53行)中,添加一个检查以从fieldConfig节点获取limit的值:

if (!config.fieldConfig.limit) {
        config.fieldConfig.limit = "0";
}
Run Code Online (Sandbox Code Playgroud)

在"+"按钮的处理程序(第71行)中,将函数更改为以下内容:

if(config.fieldConfig.limit == 0 || list.items.getCount() <= config.fieldConfig.limit) {
    list.addItem();
} else {
    CQ.Ext.Msg.show({
        title: 'Limit reached',
        msg: 'You are only allowed to add ' + config.fieldConfig.limit + 
             ' items to this module',
        icon:CQ.Ext.MessageBox.WARNING,
        buttons: CQ.Ext.Msg.OK
    });
}
Run Code Online (Sandbox Code Playgroud)

我没有删除按钮,而是创建了一个弹出窗口,通知编辑器'N是允许的最大字段数'.

简单的改变,但做的工作!希望这是有用的.