2

我想要一个跨多个页面呈现组件共享的标题组件。标题组件有一个文本标签。如何使此文本标签的值可用于所有页面组件。

我是否必须以<cq:include>通用格式制作路径?

4

6 回答 6

4

如果理解得当,设计模式可以很好地工作。但是,它不会以与页面激活相同的方式复制内容,因此可能会让您的作者感到困惑。此外,共享模型仅限于确切的页面类型——这可能是也可能不是您想要的粒度。

来自 CQ5 的最佳实践(https://dev.day.com/docs/en/cq/current/developing/developing_guidelines_bestpractices.html),他们强烈鼓励段落系统(iparsys 继承/共享)。 iparsys命名相同的页面模板可以在不同的页面模板之间共享(而设计模式仅适用于单一模板类型)。

于 2013-09-04T04:43:32.950 回答
3

我可以通过在标题组件下创建一个design dialog类似于dialoghttp://dev.day.com/docs/en/cq/5-6/developing/components.html#Dialogs )的文件来归档它。您将文本标签字段添加到design dialog. 要为该字段输入值,请将页面切换到该design模式并单击Edit组件顶部的按钮。输入的值将可用于包含标题组件的所有页面。
注意:design dialog将被命名为 design_dialog

于 2013-08-21T18:59:24.357 回答
3

此功能现在在 ACS AEM Commons 中作为共享组件属性提供 - http://adobe-consulting-services.github.io/acs-aem-commons/features/shared-component-properties.html

支持标准内容激活和国际化(存储在主页下方的值)以及您对内容的期望。

于 2017-02-03T02:33:43.473 回答
0

您可以创建标题组件,然后将其包含<cq:include>在基本模板/页面中。此基本模板/页面将被所有其他模板继承。这样,一旦在基本页面中配置的标题可以通过不同的模板/页面组件使用。

于 2015-02-19T07:59:05.357 回答
0

如果组件是在模板中烘焙的(即页面渲染组件),是的,您可以使<cq:include>path 属性指向存储数据的某个公共位置,并且所有页面(无论模板的类型如何)都可以获取配置的值。

于 2015-02-18T21:30:52.033 回答
0

如果目标是“跨多个页面渲染组件”共享,则设计对话框只有在页面共享相同的渲染组件时才会有所帮助。如果你想让页眉组件显示在一个页面及其所有子页面中,那么你应该使用 iparsys。如果你只是想复用那个header组件的属性,那么它需要有一个固定的路径(页面组件中的cq:include),然后你可以在其他页面渲染组件中引用你需要的属性。我不会建议这种方法,因为它打破了拥有组件的想法。一切都变得紧密耦合。

您还可以在页面级别(某些顶级父页面)保存这些属性,然后在子页面中使用 InheritanceValueMap 来读取这些属性。

于 2016-01-04T22:30:28.790 回答