2014-12-15 4 views
0

Я пытаюсь добавить различные пользовательские свойства страницы для разных шаблонов в Adobe CQ5. Я попытался перетащить компонент страницы по умолчанию в apps/project-name/components и настроить свойства страницы в диалоговом окне; но он изменил свойства страницы для всех страниц. Есть ли способ, с помощью которого мы можем получить разные настраиваемые свойства страницы для разных шаблонов в диалоговом окне свойств страницы?пользовательские свойства страницы для разных шаблонов cq5

ответ

0

Хорошо, есть один неуклюжий путь.
xtype cqinclude может помочь. Он имеет атрибут path, который указывает на диалог-ресурс, который должен быть включен (в формате JSON). Этот путь должен запрашиваться через Ajax. Таким образом, вы можете создать сервлет, который возвращает элементы диалога в формате 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> 

Но я советую вам использовать его только тогда, когда нет другого выбора.

0

Только шаблонов недостаточно, чтобы иметь отдельные свойства страницы. Вам понадобятся разные компоненты страницы, где вы можете определить диалог. У вас все еще может быть один базовый компонент и одни и те же JSP для рендеринга и просто переопределить диалог, если вы используете наследование (sling: resourceSuperType).

Смежные вопросы