某些内容片段功能需要应用AEM 6.4 Service Pack 2(6.4.2.0)。
不建议扩展或更改片段编辑器中使用的实际组件,因为它们仍可能发生更改。
请参阅内容片段管理API — 客户端。
Adobe Experience Manager (AEM) 内容片段作为独立于页面的资产而创建和管理。这允许您创建渠道中性内容,以及各种(特定于渠道的)变量。然后,在创作内容页面时,您可以使用这些片段及其变体。您还可以通过将现有内容片段资产从资产浏览器拖到页面来使用现有内容片段资产(对于其他基于资产的组件,如基础组件图像)。 现成的内容片段组件仅显示引用内容片段的一个元素。 使用组件对话框,您可以定义要在页面上显示的元素、片段段落的变体和范围。
此内容片段组件作为文章组件的增强版本在AEM 6.2中引入,该组件已弃用。
经典UI中不支持内容片段。
内容片段组件用于保存对内容片段资产(实际上是增强的文本资产)的引用。 内容片段的资源类型为:
dam/cfm/components/contentfragment/contentfragment
引用在属性中定义:
fileReference
只有触屏优化UI的编辑器完全支持内容片段组件,该组件包括客户端库:
cq.authoring.editor.plugin.cfm
此库会将特定于内容片段的功能添加到编辑器中。 例如,支持在页面上添加和配置内容片段的功能,在资产浏览器中搜索内容片段资产的功能,以及侧面板中的关联内容。
内容片段 t组件允许您将其他组件放置在所显示元素的不同段落之间。 显示的元素基本上由不同的段落组成(每个段落都标有回车符)。 在这些段落之间,您可以使用其他组件插入内容。
从技术角度来看,显示的元素的每个段落都位于其自身的parsys中,并且您在段落之间添加的每个组件都将(在引擎盖下)插入到parsys中。
换言之,如果内容片段组件的实例由三个段落组成,则组件在存储库中将具有三个不同的parsys。 添加到内容片段的所有中间内容实际上都将位于这些Parsys内。
在存储库中,中间内容相对于其在整体段落结构中的位置进行存储,即它未附加到实际段落内容。
为了说明这一点,让我们考虑一下:
由三个段落组成的内容片段的实例
第二段之后已经插入了一些内容
基本上,如果此实例的段落结构发生更改(通过更改显示的变体、元素或段落范围),则可能影响内容片段内容时显示的中间内容:
编辑,并在第二段之前添加另一个段落:
编辑并删除第二个段落:
已配置,以便仅显示第一个段落:
要将现成的内容片段组件用作扩展的蓝图,您应遵守以下合同:
重复使用HTL渲染脚本及其关联的POJO,以查看中间内容功能的实施方式。
重复使用内容片段节点:cq:editConfig
内容片段管理使用内部渲染过程为页面生成最终HTML输出。 内容片段组件可在内部使用,也可由在引用页面上更新引用片段的后台进程使用。
在内部,Sling重写程序用于进行渲染。 在/libs/dam/config/rewriter/cfm
找到相应的配置,并可根据需要进行调整。 有关更多信息,请参阅Apache Sling Rewriter。
开箱即用的配置使用以下变压器:
transformer-cfm-payloadfilter
— 仅用于检 body
索片段HTML的部分( <body>...</body>
)
transformer-cfm-parfilter
— 如果指定了段落范围,则会过滤掉不需要的段落(与内容片段组件的操作一样)
transformer-cfm-assetprocessor
— 在内部用于检索片段中嵌入的资产列表
呈现过程通过 [com.adobe.cq.dam.cfm.content.FragmentRenderService](https://helpx.adobe.com/experience-manager/6-4/sites/developing/using/reference-materials/javadoc/com/adobe/cq/dam/cfm/ContentFragment.html)
公开,并且如果需要,可以由自定义组件利用(例如)。