Block definition
This page describes definition properties and template definition properties of a block
, a component-like content element provided by the Content editor module.
Compatibility note Custom content editor and block definitions created in the Magnolia 5 UI framework must be migrated. For block definition properties in the Magnolia 5 UI framework, see Block definition 5 UI instead. |
Overview
A block is the smallest piece of content in an implementation of the Content editor, such as the Stories app. A block definition gives a block a name and specifies the content allowed to form a single block. A block template definition specifies which template should be used to render a block in an area or a page.
The mgnl:block
nodetype
Block content is stored using the mgnl:block
node type in the JCR.
mgnl:block
is similar to the custom node type mgnl:content
, but it cannot be versioned on its own. Block content is usually grouped into block compositions (mgnl:composition
), which are versionable.
Files required
You define blocks to add or modify content in the Stories app or in an implementation of the Content editor. To render the block content, you must then define a template definition and a script for the block. You can define them both using YAML configuration files or JCR nodes.
If you want to define field labels and other i18n descriptors for the elements of your block, you can create the i18n file for the block(s) included in your module.
Definition | Location |
---|---|
Block definition |
|
Template definition |
|
Template script |
|
i18n file (optional) |
|
* <block-name>
gives the block its name in the JCR.
** The <path>
is arbitrary but would typically be blocks
for block template files.
Example
my-module ├── blocks │ └── quotation.yaml ├── i18n │ └── my-module_en.properties └── templates └── blocks ├── quotation.ftl └── quotation.yaml
Properties
Block definition
Property | Description |
---|---|
|
optional required if using FTL templates The ID of the template definition in Using a headless approach?
If you’re in a headless environment where no FTL templates are being created, you don’t need the |
|
optional, default is icon-text-block The icon used by the block picker box. |
|
optional A custom i18n base name to generate a key for the block, for example the name By default the block’s name in the JCR is used. |
|
required A node containing a specification of the block. |
|
optional, default is Specifies the implementation used to create the block fields. For a block with a light rich text field, the |
|
optional An i18n label for the block, for example the value |
|
required A list of arbitrarily named nodes for the fields creating the block. Example:
|
Example
/module-name/blocks/richText.yaml
templateId: module-name:blocks/richText
icon: text-block
block:
implementationClass: info.magnolia.editor.field.LightRichTextFormView
label: Rich text
properties:
lightRichTextBox:
class: info.magnolia.editor.field.LightRichTextFieldDefinition
linkableApps:
- pages-app
- dam-chooser
Additional Content Editor field types
Besides the fields usable in the Composite field, you can use also the following fields:
-
LightRichTextFieldDefinition
- Creates a text field with simple text formatting capabilities. -
MultiBlockDefinition
- Creates a multi block. -
SlugFieldDefinition
- Creates a URL slug field, which the story editor can use to create a human-readable story title such aslost-and-found-in-swiss-alps
.
Block template definition
You can use the following properties in a block template definition:
Property | Description | ||
---|---|---|---|
|
required The renderer to be used. |
||
|
required Path to the template script in the following format:
See Resources for more information about script storage locations.
|