Content type definition
Use the Magnolia Content type definition to specify a content type.
A Magnolia content type is a formal definition for a type of content in Magnolia including the properties the type may contain and its relationships to other types of content. A content type is configured in a content type definition that includes the data source definition and model definition.
Content type items can be managed by a content app. The content can be embedded into web pages or served via REST in a headless approach.
The base interfaces for content type definition are agnostic of data source type. However, the |
The definition item can be supplied via any Magnolia Resource origin. You can create them in a light module, in a Magnolia Maven module or in the JCR configuration
workspace (see Location of content type definitions). New content type definition items are detected by the magnolia-content-types
module and registered in info.magnolia.types.ContentTypeRegistry using the name of the definition as the ID.
Follow the Content Types tutorial to learn how to use Magnolia content types, create content type definitions and corresponding apps. |
Properties
datasource: (1)
workspace: tourguides
namespaces:
mt: https://www.magnolia-travel.com/jcr/1.0/mt
autoCreate: true
model: (2)
nodeType: mt:tourGuide
properties:
- name: birthday (3)
type: Date
- name: gender
- name: shortBio
1 | datasource required Defines the data source. |
||||||||
2 | model required Defines the model of the content type. |
||||||||
3 | name optional The value of the name property is automatically assigned by the name of the resource which defines the content type (YAML file name without the suffix or JCR node name). Set the property in the content definition to override the automatically assigned value.
When you define a content type property, you should avoid using a 2-letter suffix. This is because Magnolia reads the suffix as a language such as
Example
|
Location of content type definitions
The definition item can be supplied via any Magnolia Resource origin.
You can create them:
-
in a light module
-
in a Magnolia Maven module
-
in the JCR
configuration
workspace.
|
Light module
Add the configuration to the /<module-name>/contentTypes
folder.
my-light-module/
└── contentTypes
└── my-content-type.yaml (1)
1 | Name of the definition: my-content-type |