模板

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

详细介绍了以下模板:

模板——页面

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

注意

使用模板创 建新页面时 ,(对于页面作者)没有可见的区别,也没有使用的模板类型的指示。

可编辑的模板

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

可编辑模板的优势:

  • 作者可 以创和编 辑。

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

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

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

  • 存储在 /conf

  • 有关更 多信息 ,请参阅可编辑模板。

注意

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

静态模板

静态模板:

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

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

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

模板可用性

注意

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

因此,Adobe建议您通过定义以下各项来简化开始:

  • 仅属 cq:allowedTemplates

  • 仅在站点根目录上

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

属性 allowedPaths、属 allowedParentsallowedChildren 和属性也可放置在模板上以定义更复杂的规则。 但是,如果需要进 一步限 制允许的模板 cq:allowedTemplates ,则在站点的子部分上定义更多属性要简单得多。

另一个优势是,作 cq:allowedTemplates 者可以在页面属性的高级选项卡 更新 属性。 其他模板属性无法使用(标准)UI进行更新,因此需要开发人员为每次更改维护规则和代码部署。

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

以下属性确定是 T 否允许将新页面用作页面子页面的模板 P。 这些属性中的每个属性都是一个多值字符串,其中包含用于与路径匹配的零个或多个常规表达式:

  • cq:allowedTemplates 节点或 jcr:content 其祖 P 代的属性 P

  • allowedPathsT

  • allowedParentsT

  • allowedChildren 板的属性 P

评价工作如下:

  • 对页面层次结构 cq:allowedTemplates 的升序(以开头)时找到的第一个非空属 P 性与路径进行匹配 T。 如果所有值均不匹配,则 T 拒绝。

  • T 果具有非空属 allowedPaths 性,但所有值均与路径不匹配 P,则 T 拒绝。

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

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

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

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

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

chlimage_1-176

限制子页面中使用的模板

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

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

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

模板——内容片段

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

在此页面上