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 dialog, you usually want it to contain fields that build its core functionality for user tasks such entering a text into a field and sending it to the server upon hitting the SUBMIT button. Any field like that must be defined in a dialog definition through 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 include the following code in the configuration of the dialog:
form: tabs: - name: tabText fields: - name: title class: info.magnolia.ui.form.field.definition.TextFieldDefinition
Using the fieldType
property and with short field names
For legibility, ease of development, and to make field names easier to remember, Magnolia 5.7 changed this in two ways:
- You no longer need to specify the field type using the fully qualified class name. You need to set just the field name proper via the
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.
For the example with the text field this means that the configuration can look like as this:
form: tabs: - name: tabText fields: - name: title fieldType: text
To check you use correct field alias names, look in the Definitions app:
TODO
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 |