The 5.7 branch of Magnolia reached End-of-Life on December 31, 2023, as specified in our End-of-life policy. This means the 5.7 branch is no longer maintained or supported. Please upgrade to the latest Magnolia release. By upgrading, you will get the latest release of Magnolia featuring significant improvements to the author and developer experience. For a successful upgrade, please consult our Magnolia 6.2 documentation. If you need help, please contact info@magnolia-cms.com.
This page describes two ways in which you may define the type of a field in a form.
When creating a form for a dialog's tab, you usually want it to contain some fields. The fields are the core building blocks of the form's functionality for user tasks such as entering a text and sending it to a server after the user hits the form's submit button. Fields are defined using a field definition, which must contain – at minimum – a property telling Magnolia what type of field it should render in the dialog.
Using the class
property
Until the release of Magnolia 5.7, the only way to specify the type of a field was to state its fully qualified class name. For example, to create a simple text field named title
in a dialog's tab called tabText
you had to create the following configuration:
form: tabs: - name: tabText fields: - name: title class: info.magnolia.ui.form.field.definition.TextFieldDefinition
Using the fieldType
property and short field names
For legibility, ease of development, and to make field names easier to remember, field type definition has changed in the Magnolia 5.7 branch:
- You no longer need to specify the field type using a fully qualified class name. Just provide the field's name as the value of the new
fieldType
property. - In selected modules (see the Short field names list below on this page), the field name does not even require the
-Field
or -FieldDefiniton
suffix.
Applied to the above example the configuration can now be as simple as this:
form: tabs: - name: tabText fields: - name: title fieldType: text
To verify that you use correct short field names, look in the Definitions app:
Relevance for custom fields extending or decorating Magnolia fields
Please note that the new short field naming affects:
- The origin of the definition. The fields defined previously as JCR nodes under
/modules/<module-name>/fieldTypes
folders are now defined from YAML files.
See the following example showing the definition ofdamUploadField
in Magnolia 5.6.6 and the correspondingdamUpload
definition in Magnolia 5.7: - The file names. If the field was previously defined via a YAML file, the new short name is now used as the filename. See for example the definition of the Expandable text field:
/content-editor/fieldTypes/expandingTextField.yaml
(in Magnolia 5.6.6)/content-editor/fieldTypes/expandingText.yaml
(in Magnolia 5.7)
If you have custom fields which reuse an existing Magnolia configuration via YAML include, YAML inherit, JCR extends or by decoration, your custom definition may be broken now if you reference a field which has changed its name.
Short field names
Old name | New name | Since |
---|---|---|
UI module | ||
basicTextCodeField Removed, previously deprecated. | code | 5.7 |
basicUploadField | basicUpload | 5.7 |
checkBoxField | checkbox | 5.7 |
compositeField | composite | 5.7 |
dateField | date | 5.7 |
hiddenField | hidden | 5.7 |
linkField | link | 5.7 |
linkFieldSelect | linkFieldSelection | 5.7 |
multiField | multiValue | 5.7 |
nodeTypeField | nodeTypeSelect | 5.7 |
optionsField | optionGroup | 5.7 |
passwordField | password | 5.7 |
selectField | select | 5.7 |
staticField | static | 5.7 |
switchableField | switchable | 5.7 |
textArea | richText | 5.7 |
textField | text | 5.7 |
twinColSelectField | twinColSelect | 5.7 |
workbenchField | workbench | 5.7 |
DAM module | ||
damUploadField | damUpload | 5.7 |
damWorkbenchField | damWorkbench | 5.7 |
Content tags module | ||
tagField | tag | 5.7 |
taggingAwareDependenciesField | taggingAwareDependencies | 5.7 |
Content dependencies module | ||
referenceField | dependencies | 5.7 |
Content editor module | ||
articleBlockPicker | blockPicker | 5.7 |
collapsibleCompositeField | collapsibleComposite | 5.7 |
expandingLinkField | expandingLink | 5.7 |
expandingTextField | expandingText | 5.7 |
peekField | peek | 5.7 |
placeholderText | placeholderText | 5.7 |
refreshableTextField | refreshableText | 5.7 |