页面模板 — 可编辑 page-templates-editable
已为以下对象引入了可编辑的模板:
-
允许专门的作者 创建和编辑模板.
- 这种专业作者被称为 模板作者
- 模板作者必须是
template-authors
群组。
-
提供模板,以保留与从这些模板创建的任何页面的动态连接。 这可确保模板的任何更改都反映在页面本身中。
-
使页面组件更加通用,以便无需自定义即可使用核心页面组件。
使用可编辑的模板,可在组件中分隔出用于创建页面的片段。 您可以在UI中配置组件的必要组合,从而无需为每个页面变体开发新的页面组件。
本文档:
-
概述如何创建可编辑的模板
- 有关详细信息,请参阅 创建页面模板
-
描述创建可编辑模板所需的管理员/开发人员任务
-
描述可编辑模板的技术基础
本文档假定您已经熟悉创建和编辑模板。 请参阅创作文档 创建页面模板,其中详细介绍了向模板作者显示的可编辑模板的功能。
AEM Sites入门第2部分 — 创建基页和模板
创建新模板 creating-a-new-template
可编辑的模板主要通过 模板控制台和模板编辑器 模板作者。 本节概述了此过程,并随后介绍了在技术层面发生的情况。
有关如何在AEM项目中使用可编辑模板的信息,请参阅 使用Lazybone创建AEM项目.
创建新可编辑的模板时,您可以:
-
创建 模板文件夹. 这不是强制性的,但建议使用最佳实践。
-
note note NOTE 提供了一系列现成的模板类型。 您还可以 创建您自己的特定于网站的模板类型 (如果需要)。 -
配置新模板的结构、内容策略、初始内容和布局。
结构
-
利用结构,可为模板定义组件和内容。
-
在模板结构中定义的组件不能在生成页面上移动,也不能从任何生成页面中删除。
- 如果您是在We.Retail示例内容以外的自定义文件夹中创建模板,则可以选择基础组件或使用 核心组件.
-
如果希望页面作者能够添加和删除组件,请向模板添加段落系统。
-
可以解锁组件,然后再将其锁定,以便定义初始内容。
有关模板作者如何定义结构的详细信息,请参阅 创建页面模板.
有关结构的技术详细信息,请参阅 结构 在本文档中。
策略
-
内容策略可定义组件的设计属性。
- 例如,可用组件或最小/最大维度。
-
这些值适用于模板(以及使用该模板创建的页面)。
有关模板作者如何定义策略的详细信息,请参阅 创建页面模板.
有关策略的技术详细信息,请参阅 内容策略 在本文档中。
初始内容
- 初始内容定义在首次基于模板创建页面时显示的内容。
- 然后,页面作者可以编辑初始内容。
有关模板作者如何定义结构的详细信息,请参阅 创建页面模板.
有关初始内容的技术详细信息,请参阅 初始内容 在本文档中。
布局
- 您可以为各种设备定义模板布局。
- 模板的响应式布局与页面创作时的响应式布局功能相同。
有关模板作者如何定义模板布局的详细信息,请参阅 创建页面模板.
有关模板布局的技术详细信息,请参阅 布局 在本文档中。
-
-
启用模板,然后为特定内容树启用它。
- 可以启用或禁用模板,以使其对页面作者可用或不可用。
- 可以使模板可用于或不可用于某些页面分支。
有关模板作者如何启用模板的详细信息,请参阅 创建页面模板.
有关启用模板的技术详细信息,请参阅 为我们启用和允许模板本文档中的e
-
使用它创建内容页面。
- 使用模板创建新页面时,静态模板和可编辑模板之间没有明显区别,也没有显示任何指示。
- 对于页面作者而言,该过程是透明的。
有关页面作者如何使用模板创建页面的详细信息,请参阅 创建和组织页面.
有关使用可编辑模板创建页面的技术详细信息,请参阅 生成内容页面 在本文档中。
cq.shared
命名空间,如果不存在JavaScript错误,则使用 Uncaught TypeError: Cannot read property 'shared' of undefined
结果。cq.shared
,因此基于这些内容的任何内容都会自动包含 cq.shared
. 但是,如果您决定从头开始创建自己的内容页面,而不基于示例内容,则必须确保包含 cq.shared
命名空间。模板文件夹 template-folders
要组织模板,您可以使用以下文件夹:
-
全局
-
特定于网站
您为组织模板而创建的特定于站点的文件夹,具有管理员权限的帐户。
在标准 AEM 实例中,“模板”控制台中已存在 全局 文件夹。此文件夹会保存默认模板,如果在当前文件夹中没有找到策略和/或模板类型,则此文件夹可以充当备用。您可以将默认模板添加到此文件夹或创建新文件夹(推荐)。
admin
权限。模板类型和策略将按照以下优先顺序继承到所有文件夹:
- 当前文件夹。
- 当前文件夹的父项。
/conf/global
/apps
/libs
将创建所有允许条目的列表。 如果有任何配置重叠( path
/ label
),则只会向用户显示最接近当前文件夹的实例。
要创建新文件夹,您可以执行以下操作之一:
- 以编程方式或使用CRXDE Lite
- 使用配置浏览器
使用 CRXDE Lite using-crxde-lite
-
可以采用编程方式或通过CRXDE Lite为实例创建新文件夹(在/conf下)。
必须使用以下结构:
code language-xml /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
- 值:要显示在 模板 控制台。
- 类型:
-
在 添加 的权限(例如,
content-authors
),您现在需要为作者分配组并定义所需的访问权限(ACL),以便在新文件夹中创建模板。的
template-authors
组是需要分配的默认组。 请参阅以下部分 ACL和组 以了解详细信息。请参阅 访问权限管理 以了解有关管理和分配访问权限的完整详细信息。
使用配置浏览器 using-the-configuration-browser
-
转到 全局导航 -> 工具 > 配置浏览器.
现有文件夹将列在左侧,包括 全球 文件夹。
-
单击 创建。
-
在 创建配置 对话框需要配置以下字段:
- 标题:为配置文件夹提供标题
- 可编辑的模板:勾号,允许在此文件夹中编辑模板
-
单击 创建
ACL和组 acls-and-groups
创建模板文件夹(通过CRXDE或使用配置浏览器)后,必须为模板文件夹的相应组定义ACL,以确保适当的安全性。
的模板文件夹 We.Retail参考实施 例子。
模板作者组 the-template-authors-group
的 template-authors
组是用于管理模板访问权限的组,其标准中包含AEM,但为空。 必须将用户添加到项目/站点的组。
template-authors
组 仅 适用于必须能够创建新模板的用户。下表详细列出了进行模板编辑所需的权限。
此默认 template-authors
组仅涵盖项目设置,其中 template-authors
允许成员访问和创作所有模板。 对于更复杂的设置,在设置中需要多个模板作者组来分隔对模板的访问权限,必须创建更多自定义模板作者组。 但是,模板作者组的权限将保持不变。
/conf/global下的旧版模板 legacy-templates-under-conf-global
模板不应再存储在 /conf/global
但是,对于某些旧版安装,此位置中可能仍存在模板。 只有在此类旧情况下,才应满足以下条件 /conf/global
路径进行显式配置。
模板类型 template-type
创建新模板时,您需要指定模板类型:
-
模板类型有效地为模板提供模板。 创建新模板时,将使用所选模板类型的结构和初始内容创建新模板。
- 将复制模板类型以创建模板。
- 复制后,模板与模板类型之间的唯一连接便是用于获取信息的静态引用。
-
模板类型允许您定义:
- 页面组件的资源类型。
- 根节点的策略,用于定义模板编辑器中允许的组件。
- 建议为响应式网格定义断点,并在模板类型上的设置移动模拟器。 这是可选的,因为配置也可以在单个模板上定义(请参阅 模板类型和移动设备组)。
-
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/...
),否则将找不到模板类型。模板类型和移动设备组 template-type-and-mobile-device-groups
的 设备组 用于可编辑的模板(设置为属性的相对路径) cq:deviceGroups
)定义哪些移动设备在中可用作模拟器 布局模式 页面创作的页面。 此值可设置为两个位置:
- 在可编辑的模板类型上
- 在可编辑的模板上
创建新的可编辑模板时,该值会从模板类型复制到单个模板。 如果未在类型上设置值,则可以在模板上设置该值。 创建模板后,类型对模板的继承就不存在。
cq:deviceGroups
必须设置为相对路径,如 mobile/groups/responsive
而不是作为绝对路径,例如 /etc/mobile/groups/responsive
.创建模板类型 creating-template-types
如果已创建可用作其他模板基础的模板,则可以将此模板复制为模板类型。
您还可以使用GitHub上提供的可编辑模板示例作为基础,开发您自己的模板类型。
GITHUB上的代码
您可以在GitHub上找到此页面的代码
模板定义 template-definitions
可编辑模板的定义已存储 用户定义的文件夹 (推荐)或 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”
jcr:content
- “structure”
- “策略”
thumbnail.png
jcr:content jcr-content
此节点包含模板的属性:
-
名称:
jcr:title
-
名称:
status
- 类型:
String
- 值:
draft
,enabled
或disabled
- 类型:
结构 structure
定义生成页面的结构:
-
与初始内容(
/initial
)。 -
对结构所做的更改将会反映在使用该模板创建的任何页面中。
-
的
root
(structure/jcr:content/root
)节点定义将在生成页面中可用的组件列表。- 无法在任何生成页面上移动或删除在模板结构中定义的组件。
- 解锁组件后,
editable
属性设置为true
. - 解锁已包含内容的组件后,此内容将被移动到
initial
分支。
-
的
cq:responsive
节点包含响应式布局的定义。
初始内容 initial-content
定义新页面在创建时将包含的初始内容:
- 包含
jcr:content
节点。 - 与结构合并(
/structure
)。 - 如果初始内容在创建后发生更改,则不会更新任何现有页面。
- 的
root
节点包含一个组件列表,用于定义将在生成页面中可用的组件。 - 如果在结构模式下将内容添加到组件,并且该组件随后被解锁(反之亦然),则此内容将用作初始内容。
布局 layout
When 编辑可定义布局的模板,使用 标准响应式布局 也可以 已配置.
内容策略 content-policies
内容(或设计)策略可定义组件的设计属性。 例如,可用组件或最小/最大维度。 这些值适用于模板(以及使用该模板创建的页面)。 可以在模板编辑器中创建和选择内容策略。
-
资产
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>
页面策略 page-policies
页面策略允许您定义 内容策略 对于页面(主parsys),在模板或生成页面中。
启用和允许模板使用 enabling-and-allowing-a-template-for-use
-
启用模板
模板必须通过以下任一方式启用,才能使用:
-
启用模板 从 模板 控制台。
-
在
jcr:content
节点。-
例如,在:
/conf/<your-folder>/settings/wcm/templates/<your-template>/jcr:content
-
定义属性:
- 名称:状态
- 类型:字符串
- 价值:
enabled
-
-
-
允许的模板
-
在上定义允许的模板路径 页面属性 子分支的相应页面或根页面的名称。
-
设置属性:
cq:allowedTemplates
在
jcr:content
所需分支的节点。
例如,值为:
/conf/<your-folder>/settings/wcm/templates/.*;
-
生成内容页面 resultant-content-pages
从可编辑模板创建的页面:
-
创建时使用的是从中合并的子树
structure
和initial
在模板中 -
对模板和模板类型中包含的信息进行引用。 这是通过
jcr:content
的节点:-
cq:template
提供对实际模板的动态引用;允许将对模板所做的更改反映在实际页面上。
-
cq:templateType
提供对模板类型的引用。
-
上图显示了模板、内容和组件如何相互关联:
渲染页面时:
-
模板:
- 的
cq:template
其属性jcr:content
将引用节点以访问与该页面对应的模板。
- 的
-
组件:
-
页面组件将合并
structure/jcr:content
模板的树jcr:content
页面树。 -
页面组件将仅允许作者编辑已标记为可编辑的模板结构的节点(以及任何子节点)。
-
在页面上渲染组件时,该组件的相对路径将从
jcr:content
节点;同一条路policies/jcr:content
随后将搜索模板的节点。- 的
cq:policy
此节点的属性指向实际的内容策略(即它包含该组件的设计配置)。 - 这样,您就可以拥有多个重复使用相同内容策略配置的模板。
- 的
-