Magnolia 5.7 reached extended end of life on May 31, 2022. Support for this branch is limited, see End-of-life policy. Please note that to cover the extra maintenance effort, this EEoL period is a paid extension in the life of the branch. Customers who opt for the extended maintenance will need a new license key to run future versions of Magnolia 5.7. If you have any questions or to subscribe to the extended maintenance, please get in touch with your local contact at Magnolia.

The Content editor is a special type of subapp designed to handle content in flexible ways. You need the Content Editor module to use this subapp.

Its definition class ContentEditorSubAppDescriptor extends ContentSubAppDescriptor , it therefore inherits all the properties from the Subapp descriptor. Additionally, ContentEditorSubApp defines the content of its subapp through the ContentDefinition property.

ContentEditorSubAppDescriptor

Here is a simplified example of a content editor subapp definition:

articles.yaml
subApps:
  editor:
    class: info.magnolia.editor.app.ContentEditorSubAppDescriptor
    contentConnector: <simplified>
    actions: <simplified>
    contentDefinition: <simplified>
Node nameValue

 editor


 class

info.magnolia.editor.app.ContentEditorSubAppDescriptor

 contentConnector


 actions


 contentDefinition


Note that the above definition is incomplete and would not work properly. See below for a complete app definition.

Properties:

<subapp-name>

required

Subapp node name. This is the internal ID of the subapp. In the above example it is editor .

class

required

Must be info.magnolia.editor.app.ContentEditorSubAppDescriptor or a subclass.

contentConnector

required

The content connector specifies the data source, see content connector definition for further details.

actions

required

The actions, see Action definition.

contentDefinition

required

A definition of content consisting of outline fields and a list of blocks (see below).

ContentDefinition

ContentDefinition is a property of the ContentEditorSubAppDescriptor which defines the outline fields and a list of blocks to be used by the subapp. Its definition class is ContentDefinition

Example:

editor.yaml
contentDefinition:
  outlineFields: <simplified>
  blocks: 
    - text
    - image
    - video
    - externalLink
  initialBlock: text
  defaultBlock: image
Node nameValue

 contentDefinition


 outlineFields


 blocks


 0

text

 1

image

 2

video

 3

externalLink

 initialBlock

text

 defaultBlock

image

Properties:

outlineFields

required

A list of FieldDefinition items. See Field definition for further information about how to configure a field.

The outline represents the structured part of the content item to be edited, such as the title, author, creation date and so on.

blocks

required

A list of blocks.

<block–name>

required

Specify the block by its name. You can only use the blocks which are known to the BlockRegistry .

initialBlock

required

The name of the block that will be created as the initial block when creating a new content item.

defaultBlock

required

The name of the block which will be selected by BlockPickerField .


A complete example

Below is a complete example of an app which contains one subapp of the ContentEditorSubAppDescriptor type. The content editor subapp starts at line 359.

Error rendering macro 'code-pro'

Error 401 retrieving server data from URL. User is not authorized to perform the request.