0

想在 cq5 中构建一个嵌套的多域对话。

我的要求是用

标题

链接文本

链接路径

图片上传

在这个多字段中,我想将链接文本作为另一个多字段。

笔记:

.我能够将标题、链接文本、链接路径、图像上传创建为多字段,但无法将链接文本作为多字段内的另一个多字段。我是 cq5 dev 的新手,如果有任何其他方法,Kinldy 建议。

4

3 回答 3

0

这将涉及自定义多字段 js 并通过扩展复合字段创建自定义 xtypes。嵌套自定义多字段的大部分部分与创建单个自定义多字段相同。

内部多字段将在 getValue 上返回一个逗号分隔的字符串,这必须与外部多字段的其他字段连接,并由分隔符分隔。内部多字段的设置值将需要一个字符串数组,为此您必须修改内部多字段的多字段js并覆盖设置值方法以获取逗号分隔的字符串并拆分为一个数组。

外部多字段也必须随着内部多字段内容的变化而更新。这可以通过在更新内部多字段后立即调用 update 方法来完成(可以通过 findParentBy 方法获得对外部多字段的引用)

最终结果将如下所示

字符串数组

[0] : a-outer-field1<#- >a-outer-field2<#- >a-1-inner-field1<#-#>a-1-inner-field2<#-#>,a-2 -innerfield1<#-#>a-2-innerfield2<#-#><#-*>

[1] : b-外场1<#- >b-外场2<#- >b-1-内场1<#-#>b-1-内场2<#-#>,b-2-内场1 <#-#>b-2-innerfield2<#-#><#-*>

查看此链接http://cq5tutorials.blogspot.com/2014/04/cq5-multifield-in-multifield.html

于 2014-04-24T10:14:21.197 回答
0

可以在以下位置找到如何实现 Chris Leggett 描述的自定义小部件的示例:

http://cq.shishank.info/2011/12/19/multifield-with-custom-xtype/

我如何存储该值的格式为:

[项目1|项目2]

使用一些逻辑,您可以提取链接文本和 url,但如果您使用这种格式,第三个值似乎会成为不好的做法,但存储此信息的方式将是相同的。也许您可以将信息存储为 JSON,但我个人还没有看到它的实现。

希望有帮助。

于 2013-12-13T16:59:07.930 回答
0

我相信做到这一点的唯一方法是编写自己的小部件。我已经完成了这项工作,但无法共享代码。如果您愿意,可以在https://github.com/Velir/AEM-Toolbox上查看我一直在努力构建的这个开源库。StucturedMultiList 小部件可能适合您的需要。

于 2013-12-07T20:44:05.557 回答