2014-01-10 21 views
2

我的要求是擁有一個具有可作者屬性的全局頁眉和頁腳。 因此,如果我們更新一個頁面上的屬性,它應該反映在所有頁面上。我們如何在CQ5中定義全局屬性

什麼是實現CQ5的最佳方法。

回答

0

傳統上,您可以創建組件並將對話框交換出來用於設計對話框。基本上你會將你的組件對話框重命名爲design_dialog。

這將做什麼是將您對此對象所做的更改保存到設計路徑等。您可以通過轉到頂級父級並設置designPath屬性來爲站點設置設計路徑。

所以節點結構可能看起來像

parentNode - @prop =的DesignPath 「設計/ MyApplication的」 childNode1 childNode2 等等

使用的parentNode或它的一個design_dialog任何組件子節點將從designPath中獲取他們的信息。如果您沒有設置設計路徑,則信息將保存在etc/designs/default(或默認值,不確定,離開我的頭頂)。

有一些替代方案是:

什麼我們的團隊做是我們siteHeader組件,我們使用http://dev.day.com/docs/en/cq/current/javadoc/com/day/cq/commons/inherit/InheritanceValueMap.html(inheritancevalue地圖)而不是常規值映射。繼承的價值地圖將穿過樹尋找來自父母的物品。這是學習如何使用,而不是隻默認屬性valuemap一個偉大的源對象:

http://experiencedelivers.adobe.com/cemblog/en/experiencedelivers/2013/02/valuemap-and-his-friend.html

這不會變得複雜較大的網站,你就必須做大量的定製的,以獲得系統以您想要的方式工作,但如果您不想爲作者創建的每個新網站手動設置designPath,則這是一個選項。

或者,如果您喜歡使用designPaths和design_dialogs的想法,您可以隨時掛鉤到頁面創建工作流中,並讓頁面組件在創建時添加一個designPath屬性(雖然說起來要容易得多)。

希望幫助

+0

我們使用設計對話框實現,但我們中有多個模板,我們正在包括常見的頁眉和頁腳components.Now設計對話框等等/設計每個模板創建節點和保存性。所以,如果我們需要更新頭屬性我們必須轉到每個模板頁面並進行更改。 – Nitin

+0

當包括頁眉/頁腳內容你試圖做類似? – Brodie

2

如果所有的層級下你的頁面的網站,你可以使用一個繼承的段落系統(iparsys)。這是從文檔的an old version,但仍然是一個很好的介紹:

繼承的段落系統是一款系統,該系統還允許 你繼承父創建的段落。您可以將 段落添加到iparsys中,例如/content/geometrixx/en/products ,因此,同樣具有相同名稱的iparsys 的產品的所有子頁面都會從父項繼承創建的段落。在每個級別的 上,可以添加更多段落,然後由子頁面繼承 。您也可以隨時取消 級別的段落繼承。

雖然不太你在原來的職位描述什麼(編輯任何地方),它會允許你編輯的內​​容一次(在父頁面)和無處不在繼承的變化。

+0

這是非常相似的inheritancevalue地圖的過程,我會第二@ anotherdave的建議,在看iparsys。我們團隊決定採用iparsys來構建我們自己的插件的唯一原因是由於iparsys沒有給我們提供一些自定義要求。但開箱即用,這是一個很好的解決方案或臨時解決方案,而你決定。 – Brodie

2

ACS AEM下議院現在支持此功能,無需使用iparsys的 - 共享組件屬性(http://adobe-consulting-services.github.io/acs-aem-commons/features/shared-component-properties.html

與共享和/或全球性配置您的菜單,你可以簡單地直接模板它到您的所有網頁(沒有iparsys要求)。然後,您可以從網站上的任何頁面編輯頁眉/頁腳,並在所有頁面上進行更新。

與使用設計的對話,共享組件屬性支持標準的內容激活和國際化(值存儲在網頁下方)和其他任何你所期待的內容。

相關問題