CQ5:继承/扩展对话框

Bro*_*die 5 aem

作为参考,我在CQ5.5上

我很好奇是否有任何方法可以扩展继承的对话框,而不会覆盖它的父对话框.

例如,具有如下结构:

base-page-template
   - dialog
      - title
      - description

inerited-from-base-page
   - dialog
      - custom field
      --------------- [inherited from parent]
      - title
      - description
Run Code Online (Sandbox Code Playgroud)

我试图避免的是例如:我需要向基页添加一个新属性,该属性应显示在从基页扩展的所有页面模板上.我目前的解决方案是将该属性分别添加到所有对话框.因此,例如,在上面的结构中,我将不得不在基页和从基页继承的对话框中添加新的"默认属性".

我能想到的唯一另一个选择是创建一个代表"基页"的面板节点,然后包含带有xtype:cqinclude节点的面板.

在采用后一种方式之前,我很好奇是否有人以我上面描述的方式扩展了对话框.

非常感谢任何帮助,谢谢Brodie

Raj*_*ula 11

不,没有办法直接继承对话框.您可以做的最好的事情是使用path属性包含对话框选项卡.

您应该在不同的位置创建选项卡,并使用路径属性将其包含在对话框中,如下所示:

<items jcr:primaryType="cq:WidgetCollection">
        <tabs jcr:primaryType="cq:TabPanel">
            <items jcr:primaryType="cq:WidgetCollection">
                <tab1
                        jcr:primaryType="cq:Widget"
                        path="/apps/myproject/tab1.infinity.json"
                        xtype="cqinclude"/>
                <tab2
                        jcr:primaryType="cq:Widget"
                        path="/apps/myproject/tab2.infinity.json"
                        xtype="cqinclude"/>

            </items>
        </tabs>
</items>    
Run Code Online (Sandbox Code Playgroud)

tab1和tab2是选项卡面板.

所以,在你的情况下,它将是这样的:

base_page_dialog_tab
      - dialog
      - title
      - description

inherited page-dialog-tab
      - custom field


base-page-template
    - include base page dialog tab here.   

inerited-from-base-page
    - include Tab 1 - inherited page-dialog tab using path property 
    - include Tab 2 - base page dialog tab using path property.
Run Code Online (Sandbox Code Playgroud)