模板 templates

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

以下模板将详细介绍:

模板 — 页面 templates-pages

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

NOTE
使用模板来创建页面时,没有可见差异(对页面作者而言),也未指示所使用的模板类型。

可编辑模板 editable-templates

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

可编辑模板的优势:

  • 可以由您的作者创建编辑

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

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

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

  • 存储在/conf

  • 有关详细信息,请参阅可编辑模板

静态模板 static-templates

静态模板:

  • 必须由开发人员定义和配置。
  • AEM的原始模板系统已经有许多版本可用。
  • 静态模板是指与要创建页面具有相同结构,但没有任何实际内容的节点的层次结构。
  • 创建页面时复制了此变量,此后不存在动态连接。
  • 使用设计模式保存设计属性。
  • 存储在/apps
  • 有关详细信息,请参阅静态模板
NOTE
从AEM 6.5开始,使用静态模板不被视为最佳实践。 请改用可编辑的模板。
AEM现代化工具可以帮助您从静态模板迁移到可编辑模板。

模板可用性 template-availability

CAUTION
AEM提供了多个属性以控制​ 站点 ​下允许的模板。 但是,将它们组合在一起可能会导致难以跟踪和管理的复杂规则。
因此,Adobe建议您从定义以下内容开始:
  • cq:allowedTemplates属性

  • 仅在站点根目录上

有关示例,请参阅We.Retail: /content/we-retail/jcr:content
属性allowedPathsallowedParentsallowedChildren也可以放在模板上以定义更复杂的规则。 但是,如果可能的话,如果需要进一步限制允许的模板,在网站的子区域上定义其他cq:allowedTemplates属性会更简单​ 许多
另一个优势是作者可以在​ 页面属性 ​的​ 高级 ​选项卡中更新cq:allowedTemplates属性。 无法使用(标准)UI更新其他模板属性,因此需要开发人员维护规则和每次更改的代码部署。

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

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

  • Pjcr:content子节点或P的上级的cq:allowedTemplates属性。

  • TallowedPaths属性。

  • TallowedParents属性。

  • P模板的allowedChildren属性。

评估工作如下:

  • P开头的页面层次结构升序时找到的第一个非空cq:allowedTemplates属性与T的路径匹配。 如果没有任何匹配的值,则会拒绝T

  • 如果T具有非空的allowedPaths属性,但没有值与P的路径匹配,则T被拒绝。

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

  • 如果T具有非空的allowedParents属性,但没有值与P的路径匹配,则T被拒绝。

  • 如果P的模板具有非空的allowedChildren属性,但没有值与T的路径匹配,则T被拒绝。

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

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

chlimage_1-176

限制子页面中使用的模板 limiting-templates-used-in-child-pages

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

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

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

模板 — 内容片段 templates-content-fragments

请参阅内容片段模板

recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2