【问题标题】:How do we define global properties in CQ5我们如何在 CQ5 中定义全局属性
【发布时间】:2014-01-10 19:45:58
【问题描述】:

我的要求是拥有一个具有可创作属性的全局页眉和页脚。 因此,如果我们更新一个页面上的属性,它应该会反映在所有页面中。

在 CQ5 中实现这一目标的最佳方法是什么。

【问题讨论】:

    标签: aem


    【解决方案1】:

    ACS AEM Commons 现在无需使用 iparsys 即可支持此功能 - 共享组件属性 (http://adobe-consulting-services.github.io/acs-aem-commons/features/shared-component-properties.html)

    使用共享和/或全局属性配置您的菜单,您可以简单地将其直接模板化到您的所有页面上(无需 iparsys)。然后,您可以从网站上的任何页面编辑页眉/页脚,它将在所有页面上更新。

    与使用设计对话框不同,共享组件属性支持标准内容激活和国际化(存储在主页下方的值)以及您对内容的期望。

    【讨论】:

      【解决方案2】:

      如果您的所有页面都在一个层次结构下,您可以使用继承的段落系统 (iparsys)。这是来自文档的an old version,但仍然是一个很好的介绍:

      继承的段落系统是一个段落系统,它也允许 您从父级继承创建的段落。你加 到 iparsys 的段落,例如 /content/geometrixx/en/products 因此,所有也有 iparsys 的产品的子页面 具有相同名称的从父级继承创建的段落。在 每个级别,您可以添加更多段落,然后由 子页面。您还可以取消段落继承 随时升级。

      虽然与您在原始帖子中描述的不太一样(在任何地方编辑),但它允许您编辑内容一次(在父页面上)并在任何地方继承更改。

      【讨论】:

      • 这与继承值映射过程非常相似,我会赞同@anotherdave 的建议,看看 iparsys。我们的团队决定构建我们自己的继承而不是使用 iparsys 的唯一原因是因为 iparsys 没有给我们一些自定义要求。但开箱即用,这是一个很好的解决方案或临时解决方案,您可以自行决定。
      【解决方案3】:

      传统上,您可以创建组件并将对话框换成设计对话框。基本上,您会将组件对话框重命名为 design_dialog。

      这会将您对此对象所做的更改保存到等下的设计路径中。您可以通过转到顶级父级并设置 designPath 属性来设置站点的设计路径。

      所以节点结构可能看起来像

      父节点 - @prop designPath = "设计/我的应用程序" 子节点1 子节点2 等等……

      在 parentNode 或其子节点上使用 design_dialog 的任何组件都将从 designPath 获取它们的信息。如果您不设置设计路径,则信息将保存在 etc/designs/default 下(或默认值,不确定,我想不到)。

      有一些替代方案:

      我们团队所做的是在我们的 siteHeader 组件中使用http://dev.day.com/docs/en/cq/current/javadoc/com/day/cq/commons/inherit/InheritanceValueMap.html(继承值映射)而不是常规值映射。继承的值映射将遍历树,从其父项中查找项目。这是学习如何使用 valuemap 而不仅仅是默认属性对象的一个​​很好的来源:

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

      对于较大的站点,这确实会变得复杂,您必须进行大量自定义才能使系统按您想要的方式运行,但如果您不想为每个站点手动设置 designPaths,这是一个选项您的作者创建的新网站。

      或者,如果您确实喜欢使用 designPaths 和 design_dialogs 的想法,您可以随时加入页面创建工作流程,并让页面组件在创建时添加 designPath 属性(尽管说起来容易做起来难)。

      希望对你有帮助

      【讨论】:

      • 我们已经使用设计对话框实现了,但我们有多个模板,其中包含常见的页眉和页脚组件。现在设计对话框在 etc/design 中为每个模板创建节点并保存属性。所以如果我们需要更新我们必须转到每个模板页面并进行更改的标题属性。
      • 当您包含页眉/页脚组件时,您是否尝试过类似 的操作?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-06
      • 1970-01-01
      • 2019-07-12
      • 1970-01-01
      • 2019-03-10
      • 1970-01-01
      相关资源
      最近更新 更多