CQ5中的多场嵌套多场或多场

时间:2013-12-07 12:47:40

标签: cq5 sling crx

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

我的要求是使用

构建单个多重组件

标题

连结文字

Linkpath

ImageUpload

在这个多字段中,我希望将linktext作为另一个多字段。

注意:

。我能够创建titile,linktext,linkpath,imageupload作为多字段,但无法将linktext作为多字段内的另一个多字段。如果还有其他方法,我是cq5 dev,Kinldy Suggest的新手。

3 个答案:

答案 0 :(得分:0)

我认为唯一的方法是编写自己的小部件。我已完成此操作但无法共享代码。如果您需要,可以查看这个开源库,我一直在https://github.com/Velir/AEM-Toolbox进行构建。 StucturedMultiList小部件可能适合您的需求。

答案 1 :(得分:0)

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

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

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

[ITEM1 | ITEM2]

使用一些逻辑,你可以提取一个链接文本和网址,但如果你使用这种格式,第三个值似乎步入了不好的做法,但存储这些信息的风格将是相同的。也许您可以将信息存储为JSON,但我个人没有看到过这个实现。

希望有所帮助。

答案 2 :(得分:0)

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

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

外部多字段也必须在更改内部多字段内容时更新。这可以通过在更新内部多字段后立即调用更新方法来完成(可以通过findParentBy方法获取对外部多字段的引用)

最终结果将如下所示

字符串数组

[0]:a-outer-field1<# - > a-outer-field2<# - > a-1-inner-field1<# - #> a-1 σ-内部-FIELD2<# - #>,A-2-innerfield1<# - #>一种-2- innerfield2<# - #><# - * GT;

[1]:b-outer-field1<# - > b-outer-field2<# - > b-1-inner-field1<# - #> b-1 -innerfield2<# - #>,b-2-innerfield1<# - #> b-2-innerfield2<# - #><# - * GT;

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