2014-01-10 19 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要求)。然后,您可以从网站上的任何页面编辑页眉/页脚,并在所有页面上进行更新。

与使用设计的对话,共享组件属性支持标准的内容激活和国际化(值存储在网页下方)和其他任何你所期待的内容。

相关问题