轉譯專用內容片段設定元件

有幾個進階服務與內容片段的呈現有關。 要使用這些服務,此類元件的資源類型必須使內容片段框架自己知道。

這是通過配置OSGi服務——內容片段元件配置來完成的。

在下列情況下,需要此資訊:

  • 您需要實作您自己的內容片段元件,
  • 需要運用進階服務。

建議使用核心元件。

注意
  • 如果您不需要下面所述 進階服務,則可忽略此設定。

  • 當您擴充或使用現成可用的元件時,不建議您變更OSGi組態。

  • 您只能從頭開始編寫僅使用「內容片段API」的元件,毋需進階服務。不過,在這種情況下,您必須開發元件,以便處理適當的處理。

因此,建議使用核心元件。

需要配置的高級服務的定義

需要註冊元件的服務包括:

  • 在發佈期間正確判斷相依性(即,如果片段和模型自上次發佈後已變更,請確定它們可自動與頁面一起發佈)。
  • 支援全文搜尋的內容片段。
  • 管理/處理​中間內容。
  • 管理/處理​混合媒體資產。
  • Dispatcher flush for referenced fragments(if a page containing a fragment is re-published)。
  • 使用段落式演算。

如果您需要其中一項或多項功能,則(通常)使用現成可用的進階服務會比較容易,而不是從頭開發。

OSGi服務——內容片段元件配置

配置需要綁定到OSGi服務​內容片段元件配置:

com.adobe.cq.dam.cfm.impl.component.ComponentConfigImpl

注意

如需詳細資訊,請參閱OSGi Configuration

例如:

OSGi配置內容片段元件配置

OSGi配置為:

標籤 OSGi配置
說明
資源類型 dam.cfm.component.resourceType 要註冊的資源類型;例如,

core/wcm/components/contentfragment/v1/contentfragment

參考屬性 dam.cfm.component.fileReferenceProp 包含對片段的引用的屬性的名稱;例如,fragmentPathfileReference
元素屬性 dam.cfm.component.elementsProp 包含要渲染的元素名稱的屬性的名稱;例如,elementName
變數屬性
dam.cfm.component.variationProp 包含要呈現的變數名稱的屬性名稱;例如,variationName

對於某些功能,您的元件必須遵循預先定義的慣例。 下表詳細說明了每個段落(即jcr:paragraph(每個元件例項),讓服務可以正確偵測和處理。

屬性名稱 說明
paragraphScope

字串屬性,定義在單一元素演算模式中如何輸出段落。

值:

  • all :來呈現所有段落
  • range :來轉換 paragraphRange
paragraphRange

字串屬性,定義在單一元素演算模式中要輸出的段落範圍。

格式:

  • 11-31-3;6;7-8 *-3;5-*
    • - 範圍指示符
    • ; 清單分隔符
    • * 通配符
  • 僅當paragraphScope設為 range
paragraphHeadings 一種布林屬性,定義標題(例如h1h2h3)是否被計為段落(true)false

範例

例如,請參閱下列(在現成可用的AEM例項上):

/apps/core/wcm/config/com.adobe.cq.dam.cfm.impl.component.ComponentConfigImpl-core-comp-v1.config

其中包含:

dam.cfm.component.resourceType="core/wcm/components/contentfragment/v1/contentfragment"
dam.cfm.component.fileReferenceProp="fragmentPath"
dam.cfm.component.elementsProp="elementName"
dam.cfm.component.variationProp="variationName"

本頁內容