内容片段的组件 components-for-content-fragments
用于片段创作的组件 components-for-fragment-authoring
请参阅 内容片段管理API — 客户端.
页面创作组件 components-for-page-authoring
Adobe Experience Manager (AEM) 内容片段作为独立于页面的资产而创建和管理。这允许您创建渠道中性内容,以及各种(特定于渠道的)变体。然后,在创作内容页面时,您可以使用这些片段及其变体. 您还可以通过 将其从资产浏览器拖到页面 (对于其他基于资产的组件,例如基础组件图像)。 现成的内容片段组件仅显示一个 元素 引用内容片段的URL。 使用组件对话框,您可以定义 元素、变体和片段段落范围 页面上显示的内容。
定义 definition
的 内容片段 组件用于保存对内容片段资产(有效地增强了文本资产)的引用。 内容片段的资源类型为:
dam/cfm/components/contentfragment/contentfragment
引用在属性中定义:
fileReference
只有触屏优化UI的编辑器完全支持内容片段组件,该组件包括客户端库:
cq.authoring.editor.plugin.cfm
此库会将特定于内容片段的功能添加到编辑器中。 例如,支持在页面上添加和配置内容片段的功能,在资产浏览器中搜索内容片段资产的功能,以及侧面板中的关联内容。
中间内容 in-between-content
的 内容片段 t组件允许您将其他组件放置在所显示的不同段落之间 元素. 显示的元素基本上由不同的段落组成(每个段落都标有回车符)。 在这些段落之间,您可以使用其他组件插入内容。
从技术角度来看,显示的元素的每个段落都位于其自身的parsys中,并且您在段落之间添加的每个组件都将(在引擎盖下)插入到parsys中。
换言之,如果内容片段组件的实例由三个段落组成,则组件在存储库中将具有三个不同的parsys。 添加到内容片段的所有中间内容实际上都将位于这些Parsys内。
在存储库中,中间内容相对于其在整体段落结构中的位置进行存储,即它未附加到实际段落内容。
为了说明这一点,让我们考虑一下:
-
由三个段落组成的内容片段的实例
-
第二段之后已经插入了一些内容
- 这意味着内容将存储在第二个Parsys中。
基本上,如果此实例的段落结构发生更改(通过更改显示的变体、元素或段落范围),则可能影响内容片段内容时显示的中间内容:
-
编辑,并在第二段之前添加另一个段落:
- 中间内容将在新创建的段落之后显示(第二个Parsys现在包含新创建的段落)。
-
编辑并删除第二个段落:
- 中间内容将显示在之前为第三个段落的段落之后(第二个Parsys现在包含前一个第三个段落)。
-
已配置,以便仅显示第一个段落:
- 将不显示中间内容(由于新配置,第二个Parsys不再呈现)。
自定义内容片段组件 customizing-the-content-fragment-component
要将现成的内容片段组件用作扩展的蓝图,您应遵守以下合同:
-
重复使用HTL渲染脚本及其关联的POJO,以查看中间内容功能的实施方式。
-
重复使用内容片段节点:
cq:editConfig
渲染前资产重写 asset-rewriting-before-rendering
内容片段管理使用内部渲染过程为页面生成最终HTML输出。 内容片段组件可在内部使用,也可由在引用页面上更新引用片段的后台进程使用。
在内部,Sling重写程序用于进行渲染。 相关配置位于 /libs/dam/config/rewriter/cfm
和可根据需要进行调整。 请参阅 Apache Sling重写程序 以了解更多信息。
开箱即用的配置使用以下变压器:
-
transformer-cfm-payloadfilter
— 用于检索body
部件(<body>...</body>
)的HTML -
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)
和(例如)可根据需要通过自定义组件来使用。