不建议扩展或更改片段编辑器中使用的实际组件,因为它们仍可能会发生更改。
请参阅 内容片段管理API — 客户端.
另请参阅 内容片段配置用于呈现的组件 以进一步了解。
Adobe Experience Manager (AEM) 内容片段作为独立于页面的资产而创建和管理。这允许您创建渠道中性内容,以及各种(特定于渠道的)变体。然后,您可以在创作内容页面时使用这些片段及其变体. 您还可以通过以下方式使用现有内容片段资源 将其从资源浏览器拖到页面 (对于其他基于资产的组件,例如基础组件图像)。 现成的内容片段组件仅显示一个 元素 引用的内容片段的。 使用组件对话框,您可以定义 元素、变量和片段段落范围 要显示在页面上的内容。
此内容片段组件作为Article组件的增强版本引入到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重写器 了解更多信息。
如果您调整/叠加重写器的配置:
/libs/dam/config/rewriter/cfm
然后 serializerType
必须 将更新为:
serializerType="html5-serializer"
开箱即用配置使用以下转换器:
transformer-cfm-payloadfilter
— 用于检索 body
部件( <body>...</body>
)的片段HTML
transformer-cfm-parfilter
— 如果指定了段落范围,则过滤掉不需要的段落(使用内容片段组件可以这样做)
transformer-cfm-assetprocessor
— 在内部用于检索片段中嵌入的资产列表
呈现过程将通过以下方式公开 com.adobe.cq.dam.cfm.content.FragmentRenderService
如果需要,自定义组件可以使用(例如)和。