不同模板cq5的自定义页面属性

时间:2014-12-15 07:45:59

标签: cq5

我正在尝试为Adobe CQ5中的不同模板添加不同的自定义页面属性。我试图覆盖apps / project-name / components中的默认页面组件,并在对话框中自定义页面属性;但它改变了所有页面的页面属性。有没有办法在页面属性对话框中为不同的模板获取不同的自定义页面属性?

2 个答案:

答案 0 :(得分:0)

仅凭模板不足以拥有单独的页面属性。您需要使用不同的页面组件来定义对话框。如果使用继承(sling:resourceSuperType),您仍然可以拥有一个基本组件和完全相同的渲染JSP,并只覆盖对话框。

答案 1 :(得分:0)

嗯,有一种笨拙的方式 xtype cqinclude可以提供帮助。它有一个path属性,指向要包含的对话框资源(采用JSON格式)。该路径将通过Ajax请求。因此,您可以创建一个servlet,它根据引用者的模板以JSON格式返回对话框的元素。然后在基本模板的dialog.xml中使用它:

<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
    jcr:primaryType="cq:Dialog"
    stateful="false"
    xtype="dialog">
    <items jcr:primaryType="cq:WidgetCollection">
        <tabs jcr:primaryType="cq:TabPanel">
            <items jcr:primaryType="cq:WidgetCollection">
                <basic
                    jcr:primaryType="cq:Widget"
                    path="/libs/foundation/components/page/tab_basic.infinity.json"
                    xtype="cqinclude"/>
                <advanced
                    jcr:primaryType="cq:Widget"
                    path="/libs/foundation/components/page/tab_advanced.infinity.json"
                    xtype="cqinclude"/>
                <image
                    jcr:primaryType="cq:Widget"
                    path="/libs/foundation/components/page/tab_image.infinity.json"
                    xtype="cqinclude"/>
                <cloudservices
                    jcr:primaryType="cq:Widget"
                    path="/libs/foundation/components/page/tab_cloudservices.infinity.json"
                    xtype="cqinclude"/>
                <blueprint
                    jcr:primaryType="cq:Widget"
                    path="/libs/foundation/components/page/tab_blueprint.infinity.json"
                    xtype="cqinclude"/>
                <livecopy
                    jcr:primaryType="cq:Widget"
                    path="/libs/foundation/components/page/tab_livecopy.infinity.json"
                    xtype="cqinclude"/>
                <custom
                    jcr:primaryType="cq:Widget"
                    path="/services/MyServlet"
                    xtype="cqinclude"/>
            </items>
        </tabs>
    </items>
</jcr:root>

但我建议你只有在别无选择的情况下才能使用它。