Content Fragments Configuring Components for Rendering content-fragments-configuring-components-for-rendering

There are several advanced services related to the rendering of content fragments. To use these services, the resource types of such components must make themselves known to the content fragments framework.

This is done by configuring the OSGi Service - Content Fragment Component Configuration.

CAUTION
If you do not need the advanced services described below, you can ignore this configuration.
CAUTION
When you are extending or using the out-of-the-box component(s), it is not recommended to change the configuration.
CAUTION
You can write a component from scratch that uses the Content Fragments API only, with no advanced services. However, in such a case, you will have to develop your component so that it handles the appropriate processing.
Therefore, it is recommended to use the core components.

Definition of Advanced Services that need Configuration definition-of-advanced-services-that-need-configuration

The services that require the registration of a component are:

  • Determining dependencies correctly during publication (that is, ensure that fragments & models can be automatically published with a page if they have changed since last publication).
  • Support for content fragments in full text search.
  • The management/handling of in-between content.
  • The management/handling of mixed media assets.
  • Dispatcher flush for referenced fragments (if a page containing a fragment is re-published).
  • Using paragraph-based rendering.

If you need one or more of these features, then (typically) it is easier to use the out-of-the-box functionality, instead of developing it from scratch.

OSGi Service - Content Fragment Component Configuration osgi-service-content-fragment-component-configuration

The configuration needs to be bound to the OSGi service Content Fragment Component Configuration:

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

NOTE
See Configuring OSGi for further details.

For example:

cfm-01

The OSGi configuration is:

Label
OSGi Configuration
Description
Resource type
dam.cfm.component.resourceType

The resource type to register; for example,

core/wcm/components/contentfragment/v1/contentfragment

Reference property
dam.cfm.component.fileReferenceProp
The name of the property that contains the reference to the fragment; for example, fragmentPath or fileReference
Element(s) property
dam.cfm.component.elementsProp
The name of the property that contains the name(s) of the element(s) to render; for example,elementName
Variation property
dam.cfm.component.variationProp
The name of the property that contains the name of the variation to render; for example,variationName

For some functionality (for example, to render only a paragraph range) you will have to adhere to some conventions:

Property Name
Description
paragraphRange

A string property that defines the range of paragraphs to be output if in single element render mode.

Format:

  • 1 or 1-3 or 1-3;6;7-8 or *-3;5-*
  • only evaluated if paragraphScope is set to range
paragraphScope

A string property that defines how paragraphs are to be output if in single element render mode.

Values:

  • all : to render all paragraphs
  • range : to render the range of paragraphs provided by paragraphRange
paragraphHeadings
A boolean property that defines if headings (for example, h1, h2, h3) are counted as paragraphs (true) or not (false)
CAUTION
This may change in later 6.5 milestones.

Example example

As an example, see the following (on an out-of-the-box AEM instance):

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

This contains:

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"
recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2