模板

模板在AEM的不同位置使用:

详细介绍了以下模板:

模板——页面

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

注意

使用模板创建新页面时,没有明显的差异(对页面作者而言),也没有指示正在使用的模板类型。

可编辑的模板

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

可编辑模板的优势:

  • 作者可以创建已编辑

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

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

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

  • 存储在/conf

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

注意

有AEM社区文章,介绍如何使用可编辑模板开发Experience Manager站点,请参阅使用可编辑模板创建Adobe Experience Manager6.5网站

静态模板

静态模板:

  • 必须由开发人员定义和配置。
  • 这是AEM的原始模板系统,已在许多版本中提供。
  • 静态模板是节点的层次结构,其结构与要创建的页面相同,但没有任何实际内容。
  • 复制页面以创建新页面,之后不存在动态连接。
  • 使用设计模式保留设计属性。
  • 存储在/apps
  • 有关详细信息,请参阅静态模板
注意

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

AEM Modernizationtools可以帮助您将静态模板迁移到可编辑模板。

模板可用性

注意

AEM优惠多个属性以控制​Sites​下允许的模板。 但是,将这些规则组合在一起可能会导致非常复杂的规则,难以跟踪和管理。

因此,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 属于与if相同的应 P 用程序,并且仅当路径的第二级 T 的名称与路径的第二级的名称相同时 P。例如,模板/apps/geometrixx/templates/foo与页面/content/geometrixx属于同一应用程序。

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

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

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

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

chlimage_1-176

限制子页面中使用的模板

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

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

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

模板——内容片段

有关完整信息,请参阅内容片段模板

在此页面上