Content Fragment Templates
- Topics:
- Developing
CREATED FOR:
- Developer
Templates are selected when creating a content fragment. They provide the new fragment with the basic structure, element(s) and variation. The templates used for content fragments are subject to the Granite Configuration Manager.
The out-of-the-box templates are held under:
/libs/settings/dam/cfm/templates
You can create your site-specific templates for content fragments under:
-
/apps/settings/dam/cfm/templates
The location for overlaying out-of-the-box templates or providing customer-specific, application-wide templates that are not intended to be extended/changed at runtime.
-
/conf/global/settings/dam/cfm/templates
The location for instance-wide customer-specific templates that need to be changed at runtime.
The order of precedence is (in descending order) /conf
, /apps
, /libs
.
/libs
path./libs
is overwritten the next time you upgrade your instance (and may well be overwritten when you apply either a hotfix or feature pack).-
Recreate the required item (i.e. as it exists in
/libs
) under/apps
-
Make any changes within
/apps
The basic structure of a template is held under:
conf
global
settings
dam
cfm
templates
<template-name>
...
With the specific structure being:
+ <template-name>
- jcr:primaryType
- jcr:title
- jcr:description
- initialAssociatedContent
- precreateElements
- version
+ elements
- jcr:primaryType
+ <element-name>
- jcr:primaryType
- jcr:title
- defaultContent
- initialContentType
- name
... + other element definitions
+ variations
- jcr:primaryType
+ <variation-name>
- jcr:primaryType
- jcr:title
- jcr:description
- name
... + other variation definitions
More details about the nodes and their properties are:
- Template
<template-name>
nt:unstructured
jcr:title
String
required
jcr:description
String
optional
initialAssociatedContent
String[]
optional
precreateElements
Boolean
required
true
, if the subassets representing the elements (except the master element) of the content fragment should be created when the content fragment is created; false if they should be created "on the fly".
Note: currently this parameter has to be set to true
.
version
Long
required
Version of the content structure; currently supported:
Note: currently this parameter has to be set to 2
.
- Elements
elements
nt:unstructured
required
Node that contains the definition of the elements of the content fragment. It is mandatory and needs to contain at least one child node for the Main element, but can contain [1..n] child nodes.
When the template is used the elements sub-branch is copied to the model sub-branch of the fragment.
The first element (as viewed in CRXDE Lite) is automatically considered to be the main element; the node name is irrelevant and the node itself does not have a special significance, apart from the fact that it is represented by the main asset; the other elements are handled as sub assets.
- Element Name
<element-name>
nt:unstructured
jcr:title
String
required
defaultContent
String
optional
default: ""
precreateElements
= true
initialContentType
String
optional
default: text/html
Initial content type of the element; only used if precreateElements
= true
; currently supported:
text/html
text/plain
text/x-markdown
name
String
required
- Variations
variations
nt:unstructured
optional
- Variation Name
<variation-name>
nt:unstructured
required if a variation node is present
Defines an initial variation.
The variation is added to all elements of the content fragment by default.
The variation will have the same initial content as the respective element (see
defaultContent/ initialContentType
)
jcr:title
String
required
jcr:desciption
String
optional
default: ""