内容片段模型 content-fragment-models
AEM中的内容片段模型定义了内容片段的内容结构,用作Headless内容的基础。
要使用内容片段模型,您可以:
- 为您的实例启用内容片段模型功能
- 创建和配置,内容片段模型
- 启用您的内容片段模型,以便在创建内容片段时使用
- 通过配置策略,允许在所需的 Assets 文件夹上创建内容片段模型。
创建内容片段模型 creating-a-content-fragment-model
-
导航到 “工具”、“常规”,然后打开 “内容片段模型”。
-
导航到适合您的配置或子配置的文件夹。
-
使用 “创建” 打开向导。
note caution CAUTION 如果未启用内容片段模型,则**“创建”**选项将不可用。 -
指定 模型标题。您还可以定义各种属性;例如,添加 标记、描述,然后选择 启用模型 以启用模型(如有必要)。
note note NOTE 有关 默认预览URL模式 的详细信息,请参阅内容片段模型 — 属性。 -
使用 “创建” 以保存空模型。将显示一条消息,指示操作是否成功,您可以选择 “打开” 来立即编辑模型,或 “完成” 以返回到控制台。
定义内容片段模型 defining-your-content-fragment-model
内容片段模型通过选择 “数据类型”,有效地定义了结果内容片段的结构。使用模型编辑器,您可以添加数据类型的实例,然后对其进行配置以创建必填字段:
-
导航到 “工具”、“常规”,然后打开 “内容片段模型”。
-
导航到包含内容片段模型的文件夹。
-
打开所需的模型进行 “编辑”;使用快速操作或选择模型,然后从工具栏中选择操作。
打开模型编辑器后,会显示:
- 左:字段已定义
- 右侧:可用于创建字段的 数据类型(可在创建字段后使用的 属性)
note note NOTE 当字段为 必填 时,左侧窗格中指示的 标记 会标有星号 (*)。
-
添加字段
-
将字段的必需数据类型拖到所需位置:
-
将字段添加到模型后,右侧面板将显示可以为该特定数据类型定义的 属性。您可以在此定义该字段的必需内容。
-
许多属性的含义一目了然,有关更多详细信息,请参阅属性。
-
键入 字段标签 将自动完成 属性名称;如果为空,则以后可手动更新。
note caution CAUTION 当为数据类型手动更新某个 属性名称 时,请注意,名称必须仅包含 A – Z、a – z、0 – 9 和下划线“_”作为特殊字符。 如果在 AEM 早期版本中创建的模型包含非法字符,请移除或更新这些字符。
例如:
-
-
-
移除字段
选择必填字段,然后选择垃圾桶图标。 系统会要求您确认该操作。
-
添加所有必填字段,并根据需要定义相关属性。例如:
-
选择 “保存” 来保留定义。
数据类型 data-types
有一批数据类型可用于定义您的模型:
-
单行文本
- 添加单行文本的一个或多个字段;可以定义最大长度
-
多行文本
- 可以是富文本、纯文本或 Markdown 文本区域
-
数字
- 添加一个或多个数字字段
-
布尔型
- 添加布尔复选框
-
日期和时间
- 添加日期和/或时间
-
枚举
- 添加一组复选框、单选按钮或下拉列表字段
-
标记
- 允许片段作者访问和选择标记区域
-
内容引用
- 引用任何类型的其他内容;可用于创建嵌套内容
- 如果图像被引用,您可以选择显示缩略图
-
片段引用
-
引用其他内容片段;可用于创建嵌套内容
-
数据类型可配置为允许片段作者执行以下操作:
- 直接编辑引用的片段。
- 根据相应的模型创建新内容片段
-
-
JSON 对象
-
允许内容片段作者在片段的相应元素中输入 JSON 语法。
- 使 AEM 可存储您从另一服务复制/粘贴的直接 JSON。
- JSON 将被传递,并在 GraphQL 中作为 JSON 输出。
- 内容片段编辑器中包括 JSON 语法高亮显示、自动完成和错误高亮显示。
-
-
制表符占位符
-
允许引入选项卡,以在编辑内容片段内容时使用。
这会在模型编辑器中显示为分隔符,用于分隔内容数据类型列表的各个部分。 每个实例表示新选项卡的开头。
在片段编辑器中,每个实例都将显示为一个选项卡。note note NOTE 此数据类型仅用于格式设置,因此 AEM GraphQL 架构会忽略此数据类型。
-
属性 properties
许多属性含义一目了然,对于某些属性,其他详细信息如下:
-
属性名称
手动更新数据类型的此属性时,请注意名称 必须 仅包含** A – Z、a – z、0 – 9 和下划线“_”作为特殊字符。
note caution CAUTION 如果在 AEM 早期版本中创建的模型包含非法字符,请移除或更新这些字符。 -
呈现为
用于在片段中实现/呈现字段的各种选项。通常,此属性允许您定义作者是看到字段的单个实例,还是允许作者创建多个实例。 当使用 多个字段 时,您可以定义项目的最小和最大数量 — 有关详细信息,请参阅验证。 -
字段标签
输入 字段标签 将自动生成 属性名称,如有必要,可以手动更新。 -
验证
基本验证可由以下机制提供: 必需 属性。某些数据类型具有附加的验证字段。请参阅验证,了解更多详细信息。 -
对于数据类型 多行文本,可将 默认类型 定义为以下任一类型:
- 富文本
- Markdown
- 纯文本
如果未指定,则默认值 富文本 用于此字段。
更改内容片段模型中的 默认类型 仅会对在编辑器中打开并保存的现有相关内容片段生效。
-
独特
对于从当前模型创建的所有内容片段,内容(适用于特定字段)必须是唯一的。用于确保内容作者不能重复已添加到同一模型的另一个片段中的内容。
例如,内容片段模型中名为
Country
的 单行文本 字段在两个相关内容片段中不能具有值Japan
。尝试第二个实例时会发出警告。note note NOTE 确保每个语言根的唯一性。 note note NOTE 变体可以具有与同一片段变体相同的 唯一 值,但与其他片段变体中使用的值不同。 note caution CAUTION 如果要使用MSM(这将创建内容片段的副本),则应该从相应内容片段模型中使用的任何数据类型中删除任何 唯一 约束。 -
有关特定数据类型及其属性的更多详细信息,请参阅 内容参考。
-
有关特定数据类型及其属性的更多详细信息,请参阅 片段引用(嵌套片段)。
-
可翻译
选中内容片段模型编辑器中字段上的 可翻译 复选框将:
- 如果属性名称尚不存在,请确保字段的属性名称已添加到翻译配置上下文
/content/dam/<sites-configuration>
。 - 对于 GraphQL:请将
<translatable>
Content Fragment 字段上的属性设置为yes
,以允许 GraphQL 查询过滤仅包含可翻译内容的 JSON 输出。
- 如果属性名称尚不存在,请确保字段的属性名称已添加到翻译配置上下文
验证 validation
现在,各种数据类型都可以定义在结果片段中输入内容时的验证要求:
使用引用表单嵌套内容 using-references-to-form-nested-content
内容片段可以使用以下任一数据类型形成嵌套内容:
-
- 提供对其他内容的简单引用;任何类型的。
- 可以为一个或多个引用(在生成的片段中)配置。
-
片段引用(嵌套片段)
-
引用其他片段,具体取决于指定的特定模型。
-
让您包含/检索结构化数据。
note note NOTE 此方法与使用 GraphQL 内容片段的 Headless 内容投放特别相关。 * 可以为一个或多个引用(在生成的片段中)配置。
-
-
内容引用
这会阻止用户添加对当前片段的引用。 这可能导致出现空的片段引用选取器对话框。 -
GraphQL中的片段引用
如果您创建的深层查询返回多个相互引用的内容片段,则该查询在第一次出现时将返回空值。
内容引用 content-reference
内容引用让您呈现来自其他源的内容,例如,图像或内容片段。
除了标准属性之外,您还可以指定:
-
任何引用内容的 根路径
-
可引用的内容类型
-
文件大小限制
-
如果引用了图像:
- 显示缩略图
- 图像高度和宽度的限制
片段引用(嵌套片段) fragment-reference-nested-fragments
“片段引用”会引用一个或多个内容片段。在检索应用程序中使用的内容时,此功能特别有意义,因为它让您检索具有多个层的结构化数据。
例如:
- 定义员工详细信息的模型;这包括:
- 对定义雇主(公司)的模型的引用
type EmployeeModel {
name: String
firstName: String
company: CompanyModel
}
type CompanyModel {
name: String
street: String
city: String
}
除了标准属性之外,您还可以定义:
-
呈现为:
-
多字段 – 片段作者可以创建多个单个引用
-
片段 – 允许片段作者选择对片段的单个引用
-
-
模型类型
可以选择多个模型。在创作内容片段时,必须使用这些模型创建任何引用的片段。 -
根路径
这会为引用的任何片段指定根路径。 -
允许创建片段
这将允许片段作者根据相应的模型创建片段。
- 片段引用组合 – 允许片段作者通过选择多个片段来构建复合
内容片段模型 – 属性 content-fragment-model-properties
您可以编辑内容片段模型的 “属性”:
-
基本
-
模型标题
-
标记
-
描述
-
上传图像
-
默认预览URL模式
note note NOTE 只有 新 内容片段编辑器使用它。 有关详细信息,请参阅内容片段模型。
-
启用或禁用内容片段模型 enabling-disabling-a-content-fragment-model
要完全控制内容片段模型的使用,可设置其状态。
启用内容片段模型 enabling-a-content-fragment-model
创建模型时必须启用该模型,以便:
- 可在创建内容片段时进行选择。
- 可以在内容片段模型中引用。
- 可用于 GraphQL;这样就会生成架构。
要启用标记为以下任一类型的模型:
- 草稿:mew(从未启用)。
- 已禁用:已被特别禁用。
您可以从以下任一位置使用 “启用” 选项:
- 选择所需的“模型”时,顶部工具栏。
- 相应的快速操作(将鼠标悬停在所需模型上)。
禁用内容片段模型 disabling-a-content-fragment-model
也可以禁用模型,这样:
-
该模型将无法再用来创建 新 内容片段。
-
但是:
- GraphQL 架构一直在生成,并且仍可查询(以避免影响 JSON API)。
- 仍可以从 GraphQL 端点查询和返回任何基于模型的内容片段。
-
该模型无法再次引用,但现有引用将保持不变,并且仍可以从 GraphQL 端点查询和返回。
要禁用标记为 已启用 的模型,您可以使用以下任一选项中的 禁用 选项:
- 选择所需的“模型”时,顶部工具栏。
- 相应的快速操作(将鼠标悬停在所需模型上)。
允许在 Assets 文件夹中使用内容片段模型 allowing-content-fragment-models-assets-folder
要实施内容管理,您可以在 Assets 文件夹中配置 策略,以控制允许在该文件夹中创建片段的内容片段模型。
要为 允许的内容片段模型 配置 策略:
-
导航并打开 属性,以访问所需的 Assets 文件夹。
-
打开 策略 选项卡,您可以在其中配置:
-
继承自
<folder>
创建新子文件夹时,会自动继承策略;如果子文件夹需要允许与父文件夹不同的模型,则可以重新配置策略(并中断继承)。
-
按照路径允许的内容片段模型
可以允许使用多个模型。
-
按标记允许的内容片段模型
可以允许使用多个模型。
-
-
保存 任何更改。
文件夹允许的内容片段模型解析如下:
- 针对 允许的内容片段模型 的 策略。
- 如果为空,请尝试使用继承规则确定策略。
- 如果继承链未投放结果,请查看 Cloud Services 文件夹的配置(也请先直接配置,然后通过继承配置)。
- 如果以上所有内容均未提供任何结果,则该文件夹不允许使用模型。
删除内容片段模型 deleting-a-content-fragment-model
要删除内容片段模型,请执行以下操作:
-
导航到 “工具”、“常规”,然后打开 “内容片段模型”。
-
导航到包含内容片段模型的文件夹。
-
选择您的模型,然后从工具栏中 删除。
note note NOTE 如果引用了模型,则会发出警告。采取适当措施。
发布内容片段模型 publishing-a-content-fragment-model
在发布任何相关内容片段时/之前,需要发布内容片段模型。
要发布内容片段模型,请执行以下操作:
-
导航到 “工具”、“常规”,然后打开 “内容片段模型”。
-
导航到包含内容片段模型的文件夹。
-
选择您的模型,然后从工具栏中 “发布”。
控制台中会指示已发布状态。note note NOTE 如果发布的内容片段的模型尚未发布,则会显示一个选择列表来指示该情况,并且模型会随该片段一起发布。
取消发布内容片段模型 unpublishing-a-content-fragment-model
如果任何片段未引用内容片段模型,则可以取消发布这些模型。
要取消发布内容片段模型,请执行以下操作:
-
导航到 “工具”、“常规”,然后打开 “内容片段模型”。
-
导航到包含内容片段模型的文件夹。
-
选择您的模型,然后从工具栏中选择 取消发布。控制台中会指示已发布状态。
如果您尝试取消发布一个或多个片段当前使用的模型,则会出现错误警告,通知您:
该消息建议您检查引用面板,以进一步调查:
锁定(已发布)内容片段模型 locked-published-content-fragment-models
此功能为已发布的内容片段模型提供管理服务。
挑战 the-challenge
-
内容片段模型确定 AEM 中 GraphQL 查询的架构。
-
AEM GraphQL 架构在创建内容片段模型后即会创建,并且它们可以同时存在于创作和发布环境中。
-
发布架构是最为关键,因为它们为 JSON 格式的内容片段的实时投放奠定了基础。
-
-
修改内容片段模型或进行其他编辑时,可能会出现问题。这意味着架构发生更改,进而可能影响现有 GraphQL 查询。
-
向内容片段模型添加新字段通常不应产生任何有害影响。但是,修改现有数据字段(例如,其名称)或删除字段定义时,将在请求这些字段时中断现有 GraphQL 查询。
要求 the-requirements
-
使用户了解在编辑已用于实时内容投放的模型(即已发布的模型)时的风险。
-
此外,还可以避免意外的更改。
如果重新发布修改后的模型,这两种情况下都可能中断查询。
解决方案 the-solution
为了解决这些问题,内容片段模型在发布后立即在作者上被 锁定为 只读模式。表示为 已锁定:
当模型 已锁定(在“只读”模式下),您可以查看模型的内容和结构,但无法进行编辑。
您可以从控制台或模型编辑器中管理 已锁定 模型:
-
控制台
从控制台中,您可以使用 解锁 和 锁定 操作管理制度模式:
-
您可以 解锁 用于启用编辑的模型。
如果您选择 解锁,则会显示警告,您必须确认 解锁 操作:
然后,可以打开模型进行编辑。
-
您之后还可以 锁定 模型。
-
重新发布模型会立即将其重新发布为 已锁定(只读)模式。
-
-
模型编辑器
-
打开锁定的模型时,系统会发出警告,并会显示三个操作:取消、查看只读、编辑:
-
如果您选择 “查看只读”,则您可以查看模型的内容和结构:
-
如果您选择 “编辑”,则您可以编辑并保存更新:
note note NOTE 顶部可能仍会显示警告,但此时模型已由现有内容片段使用。 -
“取消” 则将返回控制台。
-