可编辑模板已引入到:
允许专业作者执行以下操作 创建和编辑模板.
template-authors
组。提供保留与从中创建的任何页面的动态连接的模板。 这样做可确保对模板所做的任何更改都反映在页面本身中。
使页面组件变得更通用,以便无需自定义即可使用核心页面组件。
使用可编辑的模板时,构成页面的片段会隔离在组件中。 您可以在UI中配置必要的组件组合,从而无需为每个页面变体开发新的页面组件。
静态模板 也可用。
本文档:
提供了创建可编辑模板的概述
描述创建可编辑模板所需的管理员/开发人员任务
描述可编辑模板的技术基础
本文档假设您已经熟悉创建和编辑模板。 请参阅创作文档 创建页面模板,其中详细说明了向模板作者公开的可编辑模板的功能。
以下教程可能也适合在新项目中设置可编辑页面模板:
AEM Sites快速入门第2部分 — 创建基础页面和模板
创建可编辑模板主要是通过 模板控制台和模板编辑器 模板作者。 本节概述了此过程,并在后面介绍了技术级别发生的情况。
有关如何在AEM项目中使用可编辑模板的信息,请参阅 使用Lazybones创建AEM项目.
在创建新的可编辑模板时,您可以:
创建 模板文件夹. 此文件夹不是强制性的,但建议使用最佳实践。
现成提供了一系列模板类型。 您还可以 创建您自己的特定于站点的模板类型(如有必要)。
配置新模板的结构、内容策略、初始内容和布局。
结构
利用结构,可为模板定义组件和内容。
不能在生成的页面上移动模板结构中定义的组件,也不能从任何生成的页面中删除这些组件。
We.Retail
示例内容,您可以选择基础组件或使用 核心组件.如果您希望页面作者能够添加和删除组件,请向模板中添加一个段落系统。
可以解锁组件,然后再将其锁定,以便定义初始内容。
有关模板作者如何定义结构的详细信息,请参阅 创建页面模板.
有关结构的技术详细信息,请参阅 结构 在本文档中。
策略
内容策略定义组件的设计属性。
这些策略适用于模板(以及使用模板创建的页面)。
有关模板作者如何定义策略的详细信息,请参阅 创建页面模板.
有关策略的技术详细信息,请参阅 内容策略 在本文档中。
初始内容
有关模板作者如何定义结构的详细信息,请参阅 创建页面模板.
有关初始内容的技术详细信息,请参阅 初始内容 在本文档中。
布局
有关模板作者如何定义模板布局的详细信息,请参阅 创建页面模板.
有关模板布局的技术详细信息,请参阅 版面 在本文档中。
启用模板,然后为特定内容树允许该模板。
有关模板作者如何启用模板的详细信息,请参阅 创建页面模板.
有关启用模板的技术详细信息,请参阅 为我们启用和允许模板e在此文档中
使用它创建内容页面。
有关页面作者如何使用模板创建页面的详细信息,请参阅 创建和组织页面.
有关使用可编辑模板创建页面的技术详细信息,请参阅 生成内容页面 在本文档中。
切勿在模板中输入任何必须国际化的信息。 出于内部化目的, 核心组件的本地化功能 推荐。
模板是简化页面创建工作流的强大工具。不过,太多的模板会让作者不知所措,并使页面创建变得混乱。一个好的经验法则是将模板的数量保持在 100 个以内。
由于潜在的性能影响,Adobe 建议不要使用超过 1000 个模板。
编辑器客户端库假定存在 cq.shared
内容页面中的命名空间。 如果不存在,则会导致JavaScript错误 Uncaught TypeError: Cannot read property 'shared' of undefined
.
所有示例内容页面都包含 cq.shared
,因此任何基于它们的内容都会自动包含 cq.shared
. 但是,如果您决定从头开始创建自己的内容页面,而不基于示例内容,则必须确保包含 cq.shared
命名空间。
参见 使用客户端库 以进一步了解。
要组织模板,您可以使用以下文件夹:
即使您可以嵌套文件夹,当用户在 模板 控制台将它们显示为平面结构。
在标准AEM实例中, 全局 模板控制台中存在文件夹。 此文件夹包含默认模板,如果在当前文件夹中未找到策略和/或模板类型,则充当后备。 您可以将默认模板添加到此文件夹或创建一个文件夹(推荐)。
最佳做法是创建一个文件夹来存放自定义模板,而不是使用全局文件夹。
文件夹必须由用户创建,并且 admin
权限。
模板类型和策略将按照以下优先级顺序跨所有文件夹继承:
/conf/global
/apps
/libs
将创建所有允许条目的列表。 如果有任何配置重叠( path
/ label
),则只有最接近当前文件夹的实例会呈现给用户。
要创建文件夹,请执行以下操作:
可以通过编程方式或使用CRXDE Lite为实例创建新文件夹(位于/conf下)。
必须使用以下结构:
/conf
<your-folder-name> [sling:Folder]
settings [sling:Folder]
wcm [cq:Page]
templates [cq:Page]
policies [cq:Page]
然后,您可以在文件夹根节点上定义以下属性:
<your-folder-name> [sling:Folder]
名称: jcr:title
类型: String
值:您希望在 模板 控制台。
In 加法 标准创作权限和特权(例如, content-authors
),分配组并定义作者所需的访问权限(ACL),以便能够在新文件夹中创建模板。
此 template-authors
group是必须分配的默认组。 请参阅以下部分 ACL和组 了解详细信息。
参见 访问权限管理 有关管理和分配访问权限的完整详细信息。
转到 全局导航 -> 工具 > 配置浏览器.
左侧列出了现有文件夹,包括 全局 文件夹。
单击创建。
在 创建配置 对话框,必须配置以下字段:
单击 创建
在配置浏览器中,您可以编辑全局文件夹并激活 可编辑的模板 选项。 但是,建议不要采用这种做法。
请参阅 配置浏览器 文档,以了解更多信息。
创建模板文件夹后(通过CRXDE或使用配置浏览器),必须为模板文件夹的相应组定义ACL,以确保适当的安全性。
的模板文件夹 We.Retail
参考实现 可用作示例。
此 template-authors
group是用于管理对模板的访问权限的组,并且在AEM中是标准组,但为空。 必须将用户添加到项目/站点的组中。
此 template-authors
组是 仅限 适用于必须能够创建模板的用户。
编辑模板的功能非常强大,如果不正确完成,现有模板可能会中断。 因此,该角色应重点突出,仅包括符合条件的用户。
下表详细列出了模板编辑的必要权限。
路径 | 角色/组 | 权限 |
描述 |
---|---|---|---|
/conf/<your-folder>/settings/wcm/templates |
模板作者 |
读取、写入、复制 | 在特定站点中创建、读取、更新、删除和复制模板的模板作者 /conf 空间 |
匿名Web用户 | 读取 | 匿名Web用户在呈现页面时必须读取模板 | |
内容作者 | 复制 | replicateContent作者在激活页面时必须激活页面的模板 | |
/conf/<your-folder>/settings/wcm/policies |
Template Author |
读取、写入、复制 | 在特定站点中创建、读取、更新、删除和复制模板的模板作者 /conf 空间 |
匿名Web用户 | 读取 | 匿名Web用户在呈现页面时必须读取策略 | |
内容作者 | 复制 | 内容作者在激活页面时必须激活页面模板的策略 | |
/conf/<site>/settings/template-types |
模板作者 | 读取 | 模板作者根据预定义的模板类型之一创建模板。 |
匿名Web用户 | 无 | 匿名Web用户不得访问模板类型 |
此默认值 template-authors
组仅涵盖项目设置,其中所有 template-authors
允许成员访问和创作所有模板。 对于更复杂的设置,需要多个模板作者组来分隔对模板的访问,则必须创建更多自定义模板作者组。 但是,模板作者组的权限将仍然相同。
不将模板存储到中 /conf/global
. 但是,对于某些旧版安装,此位置可能仍存在模板。 仅 在此类遗留情况下,应 /conf/global
明确配置路径。
路径 | 角色/组 | 权限 |
描述 |
---|---|---|---|
/conf/global/settings/wcm/templates |
模板作者 | 读取、写入、复制 | 在中创建、读取、更新、删除和复制模板的模板作者 /conf/global |
匿名Web用户 | 读取 | 匿名Web用户在呈现页面时必须读取模板 | |
内容作者 | 复制 | 内容作者在激活页面时必须激活页面的模板 | |
/conf/global/settings/wcm/policies |
Template Author |
读取、写入、复制 | 在中创建、读取、更新、删除和复制模板的模板作者 /conf/global |
匿名Web用户 | 读取 | 匿名Web用户在呈现页面时必须读取策略 | |
内容作者 | 复制 | 内容作者在激活页面时必须激活页面模板的策略 | |
/conf/global/settings/wcm/template-types |
模板作者 | 读取 | 模板作者根据预定义的模板类型之一创建模板 |
匿名Web用户 | 无 | 匿名Web用户不得访问模板类型 |
创建模板时,请指定模板类型:
模板类型可以有效地为模板提供模板。 创建模板时,使用所选模板类型的结构和初始内容来创建模板。
模板类型允许您定义:
AEM提供少量现成的模板类型,如“HTML5页”和“自适应表单页”。
We.Retail
示例内容。模板类型通常由开发人员定义。
现成的模板类型存储在下:
/libs/settings/wcm/template-types
请勿更改 /libs
路径。 原因在于 /libs
下次升级实例时将被覆盖(并且在应用修补程序或功能包时可能被覆盖)。
您站点特定的模板类型应存储在类似位置:
/apps/settings/wcm/template-types
自定义模板类型的定义应存储在用户定义的文件夹中(推荐),或者存储在 global
. 例如:
/conf/<my-folder-01>/<my-folder-02>/settings/wcm/template-types
/conf/<my-folder>/settings/wcm/template-types
/conf/global/settings/wcm/template-types
模板类型必须遵循正确的文件夹结构(即, /settings/wcm/...
),否则未找到模板类型。
此 设备组 用于可编辑模板(设置为属性的相对路径) cq:deviceGroups
)定义哪些移动设备可用作中的模拟器 布局模式 页面创作。 此值可以在以下两个位置设置:
创建新的可编辑模板时,该值将从模板类型复制到单个模板。 如果未在类型上设置该值,则可以在模板上设置该值。 创建模板后,不会从该类型继承到模板。
的值 cq:deviceGroups
必须设置为相对路径,例如 mobile/groups/responsive
而不是绝对路径,例如 /etc/mobile/groups/responsive
.
替换为 静态模板,的值 cq:deviceGroups
可以在站点的根目录中设置。
对于可编辑的模板,此值现在存储在模板级别,不支持在页面根级别存储。
如果已创建可作为其他模板基础的模板,则可以将此模板作为模板类型复制。
templates
节点到 template-types
下的节点 模板文件夹.templates
下的节点 模板文件夹.template-types
节点,删除所有 cq:template
和 cq:templateType
全部属性 jcr:content
节点。您还可以在GitHub上使用示例可编辑模板作为基础来开发自己的模板类型。
GITHUB上的代码
您可以在GitHub上找到此页面的代码
可编辑模板的定义已存储 用户定义的文件夹 (推荐)或另一种方法 global
. 例如:
/conf/<my-folder>/settings/wcm/templates
/conf/<my-folder-01>/<my-folder-02>/settings/wcm/templates
/conf/global/settings/wcm/templates
模板的根节点属于类型 cq:Template
骨架结构为:
<template-name>
initial
jcr:content
root
<component>
...
<component>
jcr:content
@property status
policies
jcr:content
root
@property cq:policy
<component>
@property cq:policy
...
<component>
@property cq:policy
structure
jcr:content
root
<component>
...
<component>
cq:responsive
breakpoints
thumbnail.png
主要内容包括:
<template-name>
[initial](#initial-content)
jcr:content
[structure](#structure)
[policies](#policies)
thumbnail.png
此节点保存模板的属性:
名称: jcr:title
名称: status
类型: String
值: draft
, enabled
,或 disabled
定义生成页面的结构:
与初始内容合并( /initial
)创建页面时。
对结构所做的更改会反映在使用模板创建的任何页面中。
此 root
( structure/jcr:content/root
)节点定义生成页面中可用的组件列表。
不能在任何生成页面上移动或删除在模板结构中定义的组件。
解锁组件后, editable
属性设置为 true
.
解锁已包含内容的组件后,此内容将移至 initial
分支。
此 cq:responsive
节点包含响应布局的定义。
定义创建新页面时具有的初始内容:
jcr:content
复制到任何新页面的节点。/structure
)创建页面时。root
node包含组件列表,用于定义生成的页面中可用的组件。时间 编辑模板时,您可以定义布局,此实践使用 标准响应式布局 也可以 已配置.
内容(或设计)策略定义组件的设计属性,例如组件的可用性或最小/最大维度。 这些策略适用于模板(以及使用模板创建的页面)。 可以在模板编辑器中创建和选择内容策略。
属性 cq:policy
,位于 root
节点
/conf/<your-folder>/settings/wcm/templates/<your-template>/policies/jcr:content/root
为页面的段落系统提供对内容策略的相对引用。
属性 cq:policy
,在下的组件显式节点上 root
,提供指向各个组件策略的链接。
实际的策略定义存储在以下位置:
/conf/<your-folder>/settings/wcm/policies/wcm/foundation/components
策略定义的路径取决于组件的路径。 此 cq:policy
包含对配置本身的相对引用。
从可编辑模板创建的页面在页面编辑器中不提供设计模式。
此 policies
可编辑模板的树与下静态模板的设计模式配置具有相同的层次结构:
/etc/designs/<my-site>/jcr:content/<component-name>
静态模板的设计模式配置是按页面组件定义的。
页面策略允许您定义 内容策略 页面(主parsys)的模板或生成页面中。
启用模板
在使用模板之前,必须通过以下任一方式启用模板:
启用模板 从 模板 控制台。
在上设置状态属性 jcr:content
节点。
例如,在:
/conf/<your-folder>/settings/wcm/templates/<your-template>/jcr:content
定义属性:
enabled
允许的模板
在上定义允许的模板路径 页面属性 子分支的相应页面或根页面的属性。
设置属性:
cq:allowedTemplates
在
jcr:content
所需分支的节点。
例如,其值为:
/conf/<your-folder>/settings/wcm/templates/.*
从可编辑模板创建的页面:
使用合并的子树创建 structure
和 initial
在模板中
对模板和模板类型中包含的信息具有引用。 您可以使用 jcr:content
节点具有以下属性:
cq:template
提供对实际模板的动态引用;使对模板所做的更改能够反映在实际页面上。
cq:templateType
提供对模板类型的引用。
上图显示了模板、内容和组件如何相互关联:
控制器 — /content/<my-site>/<my-page>
引用模板的结果页面。 内容控制着整个过程。 根据定义访问相应的模板和组件。
配置 — /conf/<my-folder>/settings/wcm/templates/<my-template>
此 模板和相关内容策略 定义页面配置。
模型 — OSGi捆绑包 OSGi包 实施功能。
视图 — /apps/<my-site>/components
在创作和发布环境中,内容呈现方式为 组件.
呈现页面时:
模板:
cq:template
其属性 jcr:content
节点用于访问与该页面对应的模板。组件:
页面组件合并 structure/jcr:content
模板树 jcr:content
页面的树。
页面组件仅允许作者编辑已标记为可编辑的模板结构的节点(以及任何子节点)。
在页面上呈现组件时,该组件的相对路径是从 jcr:content
节点;同一路径位于 policies/jcr:content
然后搜索模板的节点。
此 cq:policy
此节点的属性指向实际内容策略(即,包含该组件的设计配置)。
此功能可让您有多个模板重复使用相同的内容策略配置。