模板 templates
模板在AEM中的各个时间点使用:
-
创建页面时,请选择模板。 此模板用作新页面的基础。 模板定义了页面的结构、任何初始内容以及可用的组件(设计属性)。
-
在创建内容片段时,您还应选择模板。 此模板定义结构、初始元素和变体。
以下模板将详细介绍:
模板 — 页面 templates-pages
AEM现在提供了两种用于创建页面的基本模板类型:
可编辑模板 editable-templates
可编辑模板现在被视为使用AEM进行开发的最佳实践。
可编辑模板的优势:
静态模板 static-templates
静态模板:
模板可用性 template-availability
-
仅
cq:allowedTemplates
属性 -
仅在站点根目录上
/content/we-retail/jcr:content
allowedPaths
、allowedParents
和allowedChildren
也可以放在模板上以定义更复杂的规则。 但是,如果可能的话,如果需要进一步限制允许的模板,在网站的子区域上定义其他cq:allowedTemplates
属性会更简单 许多。cq:allowedTemplates
属性。 无法使用(标准)UI更新其他模板属性,因此需要开发人员维护规则和每次更改的代码部署。在站点管理界面中创建页面时,可用模板的列表取决于新页面的位置以及在每个模板中指定的版面限制。
以下属性确定模板T
是否用于要作为页面P
的子页面放置的新页面。 以下每个属性都是一个多值字符串,其中包含零个或多个用于与路径匹配的正则表达式:
-
P
的jcr:content
子节点或P
的上级的cq:allowedTemplates
属性。 -
T
的allowedPaths
属性。 -
T
的allowedParents
属性。 -
P
模板的allowedChildren
属性。
评估工作如下:
-
以
P
开头的页面层次结构升序时找到的第一个非空cq:allowedTemplates
属性与T
的路径匹配。 如果没有任何匹配的值,则会拒绝T
。 -
如果
T
具有非空的allowedPaths
属性,但没有值与P
的路径匹配,则T
被拒绝。 -
如果上述两个属性都为空或不存在,
T
将被拒绝,除非它与P
属于同一应用程序。 当且仅当T
路径的第二级名称与P
路径的第二级名称相同时,T
与P
属于同一应用程序。 例如,模板/apps/geometrixx/templates/foo
与页面/content/geometrixx
属于同一应用程序。 -
如果
T
具有非空的allowedParents
属性,但没有值与P
的路径匹配,则T
被拒绝。 -
如果
P
的模板具有非空的allowedChildren
属性,但没有值与T
的路径匹配,则T
被拒绝。 -
在所有其他情况下,允许
T
。
下图描述了模板评估流程:
限制子页面中使用的模板 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
请参阅内容片段模板。