2014-01-22 118 views
4

僅供參考,我在CQ5.5CQ5:繼承/擴展對話框

我很好奇,如果有辦法在繼承的對話延長,而不會覆蓋它的父對話框。

例如,有一種結構如下:

base-page-template 
    - dialog 
     - title 
     - description 

inerited-from-base-page 
    - dialog 
     - custom field 
     --------------- [inherited from parent] 
     - title 
     - description 

我試圖避免的,例如:我需要添加一個新的屬性,以立足頁面應該出現在所有的頁面模板從基本頁面擴展。我目前的解決方案是將該屬性分別添加到所有對話框中。因此,例如,在上述結構中,我必須將新的「默認屬性」添加到基本頁面和從基本頁面繼承的對話框。

我能想到的唯一的其他選擇是創建一個代表「基本頁面」的面板節點,然後將該面板包含在w/xtype:cqinclude節點中。

在開始使用後一種路線之前,我很好奇是否有人以我上面描述的方式擴展對話框。

任何幫助是極大的讚賞,謝謝, 布羅迪

回答

9

沒有,有沒有辦法直接繼承對話框。您可以做的最好的做法是使用路徑屬性包含對話框選項卡。

您應該創建標籤在不同的位置你的標籤,你可以使用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>  

凡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. 
+0

我想這將是唯一的選擇,謝謝你經歷包括一個例子的麻煩。現在,我沒有理由認爲它不值得一個綠色的複選標記:D – Brodie

1

由拉傑什提供上述答案是dialog.xml在AEM經典UI界面編寫正確w.r.t。

cqinclude的touch UI相當於sling:resourceType =「granite/ui/components/foundation/include」。 例子:

<basic 
    jcr:primaryType="nt:unstructured" 
    sling:resourceType="granite/ui/components/foundation/include" 
    path="foundation/components/page/cq:dialog/content/items/tabs/items/basic"/> 

隨着AEM觸摸UI,別樣對話框繼承的是可能使用吊索:resourceSuperType財產,但是請注意,這不繼承從現場拷貝父對話框屬性。該對話框是從其吊索資源超級類型繼承的。

我知道這個功能並不是解決上述問題的方法,只是想指出,新的TOUCH-UI創作可以實現對話框繼承。

以下是一個例子。

base_page_dialog_tab (sling:resourceType='A') 
     - dialog 
     - title 
     - description 

page-dialog-tab (sling:resourceSuperType=sling:resourceSuperType='A') 
     - custom field 

在上例中,頁面對話框選項卡的對話框中將包含以下四個屬性。

- dialog 
- title 
- description 
- custom field 

一些有用的配置可以像吊帶選項:hideProperties,吊帶:hideResource,吊帶:hideChildren和吊帶:orderBefore隱藏並在對話框中順序的屬性。