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.

#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))