模板

模板在AEM中的各个时间点使用:

详细介绍了以下模板:

模板 — 页面

AEM现在提供了两种用于创建页面的基本模板类型:

注意

将模板用于 创建页面,则(对于页面作者)和使用的模板类型没有可见差异。

可编辑模板

可编辑模板现在被视为使用AEM进行开发的最佳实践。

可编辑模板的优点:

  • 可以是 已创建已编辑 你的作者写的。

  • 引入后,您能够为使用模板创建的任何页面定义以下内容:

    • 结构
    • 初始内容
    • 内容策略
  • 创建新页面后,页面和模板之间会保持动态连接。 此连接意味着对模板结构的更改会反映在使用该模板创建的任何页面上;对初始内容的更改不会反映出来。

  • 使用内容策略(从模板编辑器编辑)来保留设计属性(不使用页面编辑器中的设计模式)。

  • 存储于 /conf

  • 参见 可编辑的模板 以进一步了解。

静态模板

静态模板:

  • 必须由您的开发人员定义和配置。
  • AEM的原始模板系统,已经有许多版本可用。
  • 静态模板是一种节点层次结构,它与要创建页面的结构相同,但没有任何实际内容。
  • 创建页面时复制,之后不存在动态连接。
  • 用途 设计模式 以保留设计属性。
  • 存储于 /apps
  • 参见 静态模板 以进一步了解。
注意

自AEM 6.5起,使用静态模板不被视为最佳实践。 请改用可编辑的模板。

AEM现代化 工具可以帮助您从静态模板迁移到可编辑模板。

模板可用性

注意

AEM提供了多个属性来控制下允许的模板 站点. 但是,将它们组合在一起可能会导致难以跟踪和管理的复杂规则。

因此,Adobe建议您从定义以下内容开始:

  • cq:allowedTemplates 属性

  • 仅在站点根上

有关示例,请参阅We.Retail: /content/we-retail/jcr:content

属性 allowedPathsallowedParents、和 allowedChildren 还可以放置在模板上,以定义更复杂的规则。 但是,如果可能,它是 很多 定义更简单,以便进一步定义 cq:allowedTemplates 属性(如果需要进一步限制允许的模板)。

一个额外的好处是 cq:allowedTemplates 作者可以在以下位置更新属性: 高级 的选项卡 页面属性. 无法使用(标准)UI更新其他模板属性,因此需要开发人员维护规则并为每次更改部署代码。

在站点管理界面中创建页面时,可用模板的列表取决于新页面的位置和每个模板中指定的版面限制。

以下属性确定模板是否 T 用于将新页面作为页面的子页面放置 P. 以下每个属性都是一个多值字符串,其中包含零个或多个用于与路径匹配的正则表达式:

  • cq:allowedTemplates 的属性 jcr:content 子节点 P 或祖先 P.

  • allowedPaths 属性 T.

  • allowedParents 属性 T.

  • allowedChildren 模板的属性 P.

评估工作如下:

  • 第一个非空 cq:allowedTemplates 在页面层次结构中以开头升序时发现属性 P 与以下路径匹配: T. 如果没有任何值匹配, T 被拒绝。

  • 如果 T 具有非空 allowedPaths 属性,但没有任何值匹配以下项的路径: PT 被拒绝。

  • 如果上述两个属性为空或不存在, T 被拒绝,除非它属于与相同的应用程序 P. T 属于与相同的应用程序 P 当且仅当第二级路径的名称 T 与的路径的第二级名称相同 P. 例如,模板 /apps/geometrixx/templates/foo 属于与页面相同的应用程序 /content/geometrixx.

  • 如果 T 具有非空 allowedParents 属性,但没有任何值匹配以下项的路径: PT 被拒绝。

  • 如果模板 P 具有非空 allowedChildren 属性,但没有任何值匹配以下项的路径: TT 被拒绝。

  • 在所有其他情况下, T 允许。

下图描述了模板评估流程:

chlimage_1-176

限制子页面中使用的模板

要限制哪些模板可用于在给定页面下创建子页面,请使用 cq:allowedTemplates 属性 jcr:content 页面节点,用于指定允许作为子页面的模板列表。 列表中的每个值都必须是允许的子页面的模板的绝对路径,例如 /apps/geometrixx/templates/contentpage.

您可以使用 cq:allowedTemplates 模板的属性 jcr:content 节点,以将此配置应用于使用此模板的所有新创建的页面。

如果要添加更多约束(例如,关于模板层次结构的约束),可以使用 allowedParents/allowedChildren 属性。 然后,您可以明确指定从模板T创建的页面必须是从模板T创建的页面的父项/子项。

模板 — 内容片段

参见 内容片段模板.

在此页面上