TYPO3 Form 

Extension key

form

Package name

typo3/cms-form

Version

14.3

Language

en

Author

TRITUM GmbH & TYPO3 contributors

License

This document is published under the Open Content License.

Rendered

Wed, 22 Apr 2026 06:26:36 +0000


This is a flexible TYPO3 frontend form framework that allows editors, integrators and developers alike to create all kinds of forms.


Table of Contents:

Introduction 

What does it do? 

The typo3/cms-form extension is a system extension that provides a flexible, extendable, and easy-to-use form framework. It incorporates interfaces and functionality that allow editors, integrators and developers to build forms.

Non-technical editors can use the Content > Forms backend module. They can create and manage forms using a simple drag and drop interface. Forms can be previewed instantly.

Experienced integrators can build ambitious forms which are stored in a site package. These forms can use powerful finishers and ship localization files.

Developers can use the PHP API to create interfaces with conditional form elements, register new validators and finishers, as well as create custom form elements. Plenty of hooks allow form creation and processing to be manipulated.

The form creation wizard

Form editor displaying a new form in the abstract view

Features list 

Here are some of the features of the form framework:

  • form editor

    • fully customizable editor for building complex forms
    • replaceable and extendable form editor components
    • JS API to extend form editor
  • PHP API

    • entire forms via API
    • own renderers for form and/ or form elements
    • conditional steps, form elements and validators based on other form elements
  • configuration

    • YAML as configuration and definition language including inheritance and overrides
    • file based
    • behaviour and design of the frontend, plugin, and form editor can be adapted for individual forms
    • 'prototypes' can be used as boilerplate
  • form elements

    • own form elements possible
    • uploads handled as FAL objects
  • finishers

    • ships built-in finishers, like email, redirect, and save-to-database
    • own finishers possible
    • finisher configuration can be overridden in the form plugin
  • validators

    • own validators possible
  • miscellaneous

    • multiple languages support
    • multiple steps support
    • multiple forms on one page
    • built-in spam protection (honeypot)

Installation 

This extension is part of the TYPO3 Core, but not installed by default.

Table of contents

Installation with Composer 

Check whether you are already using the extension with:

composer show | grep form
Copied!

This should either give you no result or something similar to:

typo3/cms-form       v12.4.11
Copied!

If it is not installed yet, use the composer require command to install the extension:

composer require typo3/cms-form
Copied!

The given version depends on the version of the TYPO3 Core you are using.

Installation without Composer 

In an installation without Composer, the extension is already shipped but might not be activated yet. Activate it as follows:

  1. In the backend, navigate to the System > Extensions module.
  2. Click the Activate icon for the Form extension.
Extension manager showing Form extension

Extension manager showing Form extension

Quick Start for Editors 

Are you an editor, the form extension has already been installed by your admin and you want to get started quickly? Follow these steps:

  1. Create a new form

    Go to the Forms module and build a form using the form editor. With the form editor you can quickly build appealing forms.

  2. Insert the form on a page

    The next step is inserting the form on the desired page(s).

    1. Open the page module in the backend.
    2. Go to your desired page.
    3. Create a new content element of type "Form". You can find this under the "Form Elements" tab.
    4. Select your form on the "Plugin" tab.
    5. Save the form content element.
    6. Repeat steps 2 to 5 to insert the form on further pages.

View your form on your web site. Enjoy!

Quick Start for Integrators 

Are you an integrator, you or your admin have already installed the form extension and you want to get started quickly? Just follow these steps:

  1. Include a site set

    New in version 13.3

    EXT:form contains a site set that can be included as described here. Legacy TypoScript includes are still possible for compability reasons but not recommended anymore.

    Include the "Form Framework" site set in the site configuration or as a dependency in a custom site package.

    Add the site set "Form Framework"

  2. Create a new form

    Go to the Forms module and create a new form using the form editor. With the form editor you can quickly build appealing forms.

  3. Move the form definition

    If required, move the form definition into a dedicated extension.

  4. Provide a translation

    Create a translation of your form if required by registering the .xlf file in your YAML configuration.

  5. Insert your form on a page

    The final step is inserting the form on the desired page(s).

    1. Open the page module in the backend.
    2. Go to the desired page.
    3. Create a new content element of type "Form". You can find this on the "Form Elements" tab.
    4. Select your new form on the "Plugin" tab.
    5. Select "Override finisher settings" on the "Plugin" tab if necessary. Save the form content element.
    6. Repeat steps 2 to 5 to insert the form on further pages.

View your form in the frontend. Enjoy!

Legacy TypoScript includes 

Changed in version 13.3

It is recommended to include the TypoScript via site set. The legacy way of using TypoScript includes, in the past also called "TypoScript sets" is still possible for compatibility reasons but not recommended anymore.

Open the TypoScript module in the backend and edit your root TypoScript record. Under the tab "Includes", ensure that "Fluid Content Elements" (fluid_styled_content) and "Form" (form) are among the selected items. Save the record.

Then continue with the steps above.

PSR-14 Events 

EXT:form dispatches PSR-14 events at key points in the lifecycle of a form – both in the backend form editor and during frontend rendering. These events are the recommended extension point for developers; the legacy $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'] hooks have been removed.

Backend events (form editor / manager) 

These events are dispatched when an editor creates, saves, duplicates or deletes a form definition in the TYPO3 backend.

Event When / what can be modified
BeforeFormIsCreatedEvent Modify the form definition array and/or the persistence identifier before a new form is created in the backend.
BeforeFormIsSavedEvent Modify the form definition array and/or the persistence identifier before a form is saved in the backend.
BeforeFormIsDuplicatedEvent Modify the form definition array and/or the persistence identifier of the copy before a form is duplicated.
BeforeFormIsDeletedEvent Dispatched before a form is deleted. Set $event->preventDeletion = true to abort the deletion (the event implements StoppableEventInterface).

Frontend events (form rendering / runtime) 

These events are dispatched during form rendering in the frontend.

Event When / what can be modified
AfterFormIsBuiltEvent Modify the FormDefinition object after the form factory has finished building the complete form.
BeforeRenderableIsAddedToFormEvent Modify or replace a renderable (page, section or element) before it is added to the form tree.
BeforeRenderableIsRemovedFromFormEvent Dispatched before a renderable is removed from the form tree. Set $event->preventRemoval = true to abort the removal (the event implements StoppableEventInterface).
AfterCurrentPageIsResolvedEvent Override $event->currentPage after the current page has been resolved from the request, e.g. to implement conditional page-skip logic.
BeforeRenderableIsValidatedEvent Modify $event->value before property-mapping and validation run for each submitted form element.
BeforeRenderableIsRenderedEvent Modify the renderable or the FormRuntime just before a renderable is output to the browser.
BeforeEmailFinisherInitializedEvent Modify the options used by the EmailFinisher (e.g. recipients, subject) before they are applied.
AfterFormDefinitionLoadedEvent Dispatched by FormPersistenceManager after a YAML form definition has been loaded from disk. Modify the definition globally before it reaches the form factory.

Registering an event listener 

Register a listener via the #[AsEventListener] PHP attribute:

EXT:my_extension/Classes/EventListener/MyFormEventListener.php
<?php

declare(strict_types=1);

namespace MyVendor\MyExtension\EventListener;

use TYPO3\CMS\Core\Attribute\AsEventListener;
use TYPO3\CMS\Form\Event\BeforeFormIsSavedEvent;

#[AsEventListener(
    identifier: 'my-extension/before-form-is-saved',
)]
final readonly class MyFormEventListener
{
    public function __invoke(BeforeFormIsSavedEvent $event): void
    {
        // Enrich the form definition before it is persisted
        $event->form['renderingOptions']['myCustomOption'] = 'value';
    }
}
Copied!

Legacy hooks (still supported) 

The following $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'] hooks are still active in the current codebase. They have not yet been replaced by PSR-14 events. Avoid using them in new code if a PSR-14 alternative exists.

afterFormStateInitialized 

Dispatched by FormRuntime after the FormState has been restored from the request. At this point both the form state (submitted values) and the static form definition are available, which makes it suitable for enriching components that need runtime data.

Implement \TYPO3\CMS\Form\Domain\Runtime\FormRuntime\Lifecycle\AfterFormStateInitializedInterface and register the class:

EXT:my_extension/ext_localconf.php
<?php

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/form']['afterFormStateInitialized'][1700000000]
    = \MyVendor\MyExtension\Hooks\MyAfterFormStateInitializedHook::class;
Copied!
EXT:my_extension/Classes/Hooks/MyAfterFormStateInitializedHook.php
<?php

declare(strict_types=1);

namespace MyVendor\MyExtension\Hooks;

use TYPO3\CMS\Form\Domain\Runtime\FormRuntime;
use TYPO3\CMS\Form\Domain\Runtime\FormRuntime\Lifecycle\AfterFormStateInitializedInterface;

final class MyAfterFormStateInitializedHook implements AfterFormStateInitializedInterface
{
    public function afterFormStateInitialized(FormRuntime $formRuntime): void
    {
        // Access $formRuntime->getFormState() here
    }
}
Copied!

buildFormDefinitionValidationConfiguration 

Used when a custom form editor inspector editor does not declare its writable property paths via the standard YAML configuration (e.g. propertyPath). Implement addAdditionalPropertyPaths() to return additional ValidationDto objects that tell the backend form editor which properties may be written.

Register the hook class:

EXT:my_extension/ext_localconf.php
<?php

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/form']['buildFormDefinitionValidationConfiguration'][]
    = \MyVendor\MyExtension\Hooks\MyValidationConfigurationHook::class;
Copied!
EXT:my_extension/Classes/Hooks/MyValidationConfigurationHook.php
<?php

declare(strict_types=1);

namespace MyVendor\MyExtension\Hooks;

use TYPO3\CMS\Form\Domain\Configuration\FormDefinition\Validators\ValidationDto;

final class MyValidationConfigurationHook
{
    /**
     * @return ValidationDto[]
     */
    public function addAdditionalPropertyPaths(ValidationDto $validationDto): array
    {
        $textDto = $validationDto->withFormElementType('Text');
        return [
            $textDto->withPropertyPath('properties.my.custom.property'),
        ];
    }
}
Copied!

Form editor 

Stage 

Common abstract view form element templates 

The basic idea of the abstract view is to give a quick overview of the configuration of form elements, without having to click them in order to view the detailed configuration in the Inspector. The form editor requires for each form element an inline HTML template and the corresponding JavaScript code. Information matching inline HTML templates to the appropriate form elements must be configured within prototypes.prototypeIdentifier.formeditor.formEditorPartials. At this point, the key identifying the form element follows a convention: FormElement-<formElementTypeIdentifier>. The value for the key tells the form editor which inline HTML template should be loaded for the respective form element. This template is then cloned via JavaScript, brought to life using the form element configuration and shown in the Stage component.

You can read about how particular form elements are mapped to inline HTML templates and how the corresponding JavaScript code are executed here.

The form element inline HTML templates and the corresponding JavaScript code are configured for reuse. In this way, most form elements you create should be able to access the components delivered in EXT:form, without requiring separate. The recommended approach for custom form elements is to omit formEditorPartials entirely. The form editor will then automatically render the element using the built-in <typo3-form-form-element-stage-item> web component, which handles labels, validators, select options, allowed MIME types and the toolbar out of the box without any additional JavaScript code.

If you need fully custom stage rendering, you can still provide a Fluid template via formEditorPartials and handle the view/stage/abstract/render/template/perform event in a custom JavaScript module to manipulate the cloned template element. EXT:form's own stage templates are located under Resources/Private/Backend/Partials/FormEditor/Stage/.

The following two legacy inline HTML templates are still shipped by EXT:form for backwards compatibility, but their associated JavaScript rendering helpers are deprecated since TYPO3 v14.2 (see below).

Stage/SimpleTemplate 

This template displays the label property of the form element. Depending on the JavaScript rendering method used, a validator icon will be shown on the right as soon as a validator is added to the form element. In this case, the used validator labels are likewise displayed, if the form element is selected and/ or the cursor hovers over the form element. This template should generally be enough for all possible, self-defined form elements.

The Stage/SimpleTemplate can then be rendered with the method getFormEditorApp().getViewModel().getStage().renderSimpleTemplateWithValidators().

Deprecated since version 14.2

renderSimpleTemplateWithValidators() is deprecated and will be removed in TYPO3 v15. Use the built-in <typo3-form-form-element-stage-item> web component by omitting formEditorPartials, or implement custom DOM manipulation in the view/stage/abstract/render/template/perform subscriber instead.

Stage/SelectTemplate 

This template behaves like the Stage/SimpleTemplate except that it also shows the chosen options labels of the form elements. This is naturally only possible for form elements that have properties.options.* values, e.g. MultiCheckbox:

type: MultiCheckbox
identifier: multicheckbox-1
label: 'Multi checkbox'
properties:
  options:
    value1: label1
    value2: label2
Copied!

The template will now list 'label1' and 'label2'.

You can copy this template variant for your own form element, if that form- element template also lists array values, which, however, are not found under properties.options.*. For this purpose, the 'Stage/FileUploadTemplate' is an example. It is basically the 'Stage/SelectTemplate' template, with one altered property.

In the FileUpload form element, multiple property values are available under properties.allowedMimeTypes.* as an array.

type: FileUpload
identifier: fileupload-1
label: 'File upload'
properties:
  saveToFileMount: '1:/user_upload/'
  allowedMimeTypes:
    - application/msexcel
    - application/pdf
Copied!

Stage/SelectTemplate

<div data-identifier="multiValueContainer" data-template-property="properties.options">
Copied!

Stage/FileUploadTemplate

<div data-identifier="multiValueContainer" data-template-property="properties.allowedMimeTypes">
Copied!

data-template-property contains the path to the property, which is to be read out of the form element and then shown in the template.

The Stage/SelectTemplate can then be rendered with the method getFormEditorApp().getViewModel().getStage().renderSelectTemplates().

Deprecated since version 14.2

renderSelectTemplates() is deprecated and will be removed in TYPO3 v15. Use the built-in <typo3-form-form-element-stage-item> web component by omitting formEditorPartials, or implement custom DOM manipulation in the view/stage/abstract/render/template/perform subscriber instead.

Basic JavaScript Concepts 

Events 

EXT:form implements the publish/subscribe pattern to put the event handling into effect. To learn more about this pattern, you should read https://addyosmani.com/resources/essentialjsdesignpatterns/book/. Note that the order of the subscriber is not manipulable and that information flow between the subscribers does not exist. All events must be asynchronously designed.

Publish an event:

getPublisherSubscriber().publish('eventname', [argumentToPublish1, argumentToPublish2, ...]);
Copied!

Subscribe to an event:

var subscriberToken = getPublisherSubscriber().subscribe('eventname', function(topic, args) {
    // args[0] = argumentToPublish1
    // args[1] = argumentToPublish2
    // ...
});
Copied!

Unsubscribe an event subscriber:

getPublisherSubscriber().unsubscribe(subscriberToken);
Copied!

EXT:form itself publishes and subscribes to the following events:

ajax/beforeSend 

Each Ajax request is called before this event is sent. EXT:form uses this event to display the spinner icon on the save button.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 * @return void
 */
getPublisherSubscriber().subscribe('ajax/beforeSend', function(topic, args) {
});
Copied!

ajax/complete 

Each Ajax request is called after the end of this event. EXT:form uses this event to remove the spinner icon on the save button.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 * @return void
 */
getPublisherSubscriber().subscribe('ajax/complete', function(topic, args) {
});
Copied!

core/ajax/error 

This event is called if the Ajax request, which is used to save the form or to render the current page of the form in the preview view, fails. EXT:form uses this event to show an error message as a flash message and to show the received error text in the preview view.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 *              args[0] = jqXHR
 *              args[1] = textStatus
 *              args[2] = errorThrown
 * @return void
 */
getPublisherSubscriber().subscribe('core/ajax/error', function(topic, args) {
});
Copied!

core/ajax/renderFormDefinitionPage/success 

This event is called if the Ajax request that is used to render the current page of the form in the preview view was successful. EXT:form uses this event to display the rendered form in the preview view.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 *              args[0] = html
 *              args[1] = pageIndex
 * @return void
 */
getPublisherSubscriber().subscribe('core/ajax/renderFormDefinitionPage/success', function(topic, args) {
});
Copied!

core/ajax/saveFormDefinition/success 

This event is called if the Ajax request that is used to save the form was successful. EXT:form uses this event to display a success message as a flash message. The form editor is also informed that no unsaved content currently exists.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 *              args[0] = html
 * @return void
 */
getPublisherSubscriber().subscribe('core/ajax/saveFormDefinition/success', function(topic, args) {
});
Copied!

core/applicationState/add 

The addition/ deletion and movement of form elements und property collection elements (validators/ finishers) is saved in an internal stack so that the undo/ redo function can be implemented. This event is called whenever the current state is added to the stack. EXT:form uses this event to reset the enabled/ disabled state of the undo/ redo buttons.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 *              args[0] = applicationState
 *              args[1] = stackPointer
 *              args[2] = stackSize
 * @return void
 */
getPublisherSubscriber().subscribe('core/applicationState/add', function(topic, args) {
});
Copied!

core/currentlySelectedFormElementChanged 

The method getFormEditorApp().setCurrentlySelectedFormElement() tells the form editor which form element should currently be dealt with. This method calls this event at the end.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 *              args[0] = formElement
 * @return void
 */
getPublisherSubscriber().subscribe('core/currentlySelectedFormElementChanged', function(topic, args) {
});
Copied!

core/formElement/somePropertyChanged 

Each FormElement model can write properties into the FormElement model through the methods get and set. Each property path can register an event name for the publisher through the method on. This event is then always called when a property path is written via set. Read FormElement model for more information. EXT:form automatically registers for all known property paths of a form element the event core/formElement/somePropertyChanged. This means that every property written via set calls this event. Among other things, EXT:form uses this event for, for example, updating the label of a form element in other components (e.g. Tree component ) when this label is changed. Furthermore, any validation errors from form element properties are indicated by this event in the Tree component.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 *              args[0] = propertyPath
 *              args[1] = value
 *              args[2] = oldValue
 *              args[3] = formElementIdentifierPath
 * @return void
 */
getPublisherSubscriber().subscribe('core/formElement/somePropertyChanged', function(topic, args) {
});
Copied!

view/collectionElement/moved 

The method getFormEditorApp().getViewModel().movePropertyCollectionElement() calls this event at the end. EXT:form uses this event to re-render the Inspector component as soon as a property collection element (validator/ finisher) is moved.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 *              args[0] = movedCollectionElementIdentifier
 *              args[1] = previousCollectionElementIdentifier
 *              args[2] = nextCollectionElementIdentifier
 *              args[3] = collectionName
 * @return void
 */
getPublisherSubscriber().subscribe('view/collectionElement/moved', function(topic, args) {
});
Copied!

view/collectionElement/new/added 

The method getFormEditorApp().getViewModel().createAndAddPropertyCollectionElement() calls this event at the end. EXT:form uses this event to re-render the Inspector component as soon as a property collection element (validator/ finisher) is created and added.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 *              args[0] = collectionElementIdentifier
 *              args[1] = collectionName
 *              args[2] = formElement
 *              args[3] = collectionElementConfiguration
 *              args[4] = referenceCollectionElementIdentifier
 * @return void
 */
getPublisherSubscriber().subscribe('view/collectionElement/new/added', function(topic, args) {
});
Copied!

view/collectionElement/removed 

The method getFormEditorApp().getViewModel().removePropertyCollectionElement() calls this event at the end. EXT:form uses this event to re-render the Inspector component as soon as a property collection element (validator/ finisher) is removed.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 *              args[0] = collectionElementIdentifier
 *              args[1] = collectionName
 *              args[2] = formElement
 * @return void
 */
getPublisherSubscriber().subscribe('view/collectionElement/removed', function(topic, args) {
});
Copied!

view/formElement/inserted 

The method getFormEditorApp().getViewModel().createAndAddFormElement() and the event view/insertElements/perform/after call this event at the end. EXT:form uses this event to set the current to-be-processed form element (getFormEditorApp().setCurrentlySelectedFormElement()) and to re-render the Tree, Stage and Inspector components.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 *              args[0] = newFormElement
 * @return void
 */
getPublisherSubscriber().subscribe('view/formElement/inserted', function(topic, args) {
});
Copied!

view/formElement/moved 

The method getFormEditorApp().getViewModel().moveFormElement() calls this event at the end.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 *              args[0] = movedFormElement
 * @return void
 */
getPublisherSubscriber().subscribe('view/formElement/moved', function(topic, args) {
});
Copied!

view/formElement/removed 

The method getFormEditorApp().getViewModel().removeFormElement() calls this event at the end. EXT:form uses this event to set the current to-be-processed form element (getFormEditorApp().setCurrentlySelectedFormElement()) and to re-render the Tree, Stage and Inspector components.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 *              args[0] = parentFormElement
 * @return void
 */
getPublisherSubscriber().subscribe('view/formElement/removed', function(topic, args) {
});
Copied!

view/header/button/close/clicked 

The onClick event of the "Close" button in the form editor's header section calls this event. EXT:form uses this event to display a warning message in case there are unsaved changes.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 * @return void
 */
getPublisherSubscriber().subscribe('view/header/button/close/clicked', function(topic, args) {
});
Copied!

view/header/button/newPage/clicked 

The onClick event of the "new page" button in the form editor's header section calls this event. EXT:form uses this event to display the "new page" dialog box.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 *              args[0] = targetEvent
 * @return void
 */
getPublisherSubscriber().subscribe('view/header/button/newPage/clicked', function(topic, args) {
});
Copied!

view/header/button/save/clicked 

The onClick event of the "save" button in the form editor's header section calls this event. EXT:form uses this event either to display a dialog box with the element in question (if there are validation errors) or to save the `form definition` (if there are no validation errors).

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 * @return void
 */
getPublisherSubscriber().subscribe('view/header/button/save/clicked', function(topic, args) {
});
Copied!

view/header/formSettings/clicked 

The onClick event of the "settings" button in the form editor's header section calls this event. EXT:form uses this event to select the root form element.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 * @return void
 */
getPublisherSubscriber().subscribe('view/header/formSettings/clicked', function(topic, args) {
});
Copied!

view/insertElements/perform/after 

This event is called from the "new element" dialog box upon selection of a form element:

  • if "After" in the "Create new element" split button in the form-element toolbar for composite elements (e.g. fieldset) is clicked.
  • if the "Create new element" button in the form-element toolbar for non-composite elements is clicked.

EXT:form uses this event to create a new form element (getFormEditorApp().getViewModel().createAndAddFormElement()) and then move (getFormEditorApp().getViewModel().moveFormElement()) it below the currently selected element (sibling). At the end of this event, the event view/formElement/inserted is called. The event view/formElement/inserted in getFormEditorApp().getViewModel().createAndAddFormElement() was previously deactivated.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 *              args[0] = formElementType
 * @return void
 */
getPublisherSubscriber().subscribe('view/insertElements/perform/after', function(topic, args) {
});
Copied!

view/insertElements/perform/bottom 

This event is called from the "new element" dialog box upon selection of a form element:

  • if, in the abstract view mode, the "Create new element" button at the end of the Stage component is clicked.

EXT:form uses this event to create a new form element (getFormEditorApp().getViewModel().createAndAddFormElement()). This element is always created as the last element of the currently selected page.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 *              args[0] = formElementType
 * @return void
 */
getPublisherSubscriber().subscribe('view/insertElements/perform/bottom', function(topic, args) {
});
Copied!

view/insertElements/perform/inside 

This event is called from the "new element" dialog box upon selection of a form element:

  • if "Inside" in the "Create new element" split button in the form-element toolbar for composite elements (e.g. fieldset) is clicked.

EXT:form uses this event to create a new form element as a child element of the currently selected element (getFormEditorApp().getViewModel().createAndAddFormElement()).

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 *              args[0] = formElementType
 * @return void
 */
getPublisherSubscriber().subscribe('view/insertElements/perform/inside', function(topic, args) {
});
Copied!

view/insertPages/perform 

This event is called from the "new element" dialog box upon selection of a page element:

  • if the "Create new page" icon in the header section is clicked.
  • if the "Create new page" button in the Tree component is clicked.

EXT:form uses this event to create a new page after the currently selected page (getFormEditorApp().getViewModel().createAndAddFormElement()).

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 *              args[0] = formElementType
 * @return void
 */
getPublisherSubscriber().subscribe('view/insertPages/perform', function(topic, args) {
});
Copied!

view/inspector/collectionElement/existing/selected 

The inspector editors ValidatorsEditor and FinishersEditor are used to display the available validators/ finishers for a form element as a select box. Furthermore, these inspector editors indicate that in the form definition, validators/ finishers for the currently selected element already exist. This occurs through the event view/inspector/collectionElement/existing/selected. EXT:form uses this event to render these validators/ finishers and their tentatively configured inspector editors (getFormEditorApp().getViewModel().renderInspectorCollectionElementEditors()).

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 *              args[0] = collectionElementIdentifier
 *              args[1] = collectionName
 * @return void
 */
getPublisherSubscriber().subscribe('view/inspector/collectionElement/existing/selected', function(topic, args) {
});
Copied!

view/inspector/collectionElement/new/selected 

The inspector editors ValidatorsEditor and FinishersEditor are used to display the available validators/ finishers for a form element as a select box. The onChange event of the select box then calls this event. In addition, the inspector editor RequiredValidatorEditor calls this event when a checkbox is chosen. EXT:form uses this event to add and render the validator/ finisher of the form definition via getFormEditorApp().getViewModel().createAndAddPropertyCollectionElement().

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 *              args[0] = collectionElementIdentifier
 *              args[1] = collectionName
 * @return void
 */
getPublisherSubscriber().subscribe('view/inspector/collectionElement/new/selected', function(topic, args) {
});
Copied!

view/inspector/collectionElements/dnd/update 

EXT:form uses the library 'SortableJS' for the drag-and-drop functionality. The 'end' event from 'SortableJS' calls the view/inspector/collectionElements/dnd/update event if a property collection element in the Inspector component is sorted. EXT:form uses this event to move the validator/ finisher in the form definition via the method getFormEditorApp().getViewModel().movePropertyCollectionElement().

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 *              args[0] = movedCollectionElementIdentifier
 *              args[1] = previousCollectionElementIdentifier
 *              args[2] = nextCollectionElementIdentifier
 *              args[3] = collectionName
 * @return void
 */
getPublisherSubscriber().subscribe('view/inspector/collectionElements/dnd/update', function(topic, args) {
});
Copied!

view/inspector/editor/insert/perform 

The methods getFormEditorApp().getViewModel().renderInspectorEditors() (to render all inspector editors for a form element) and getFormEditorApp().getViewModel().renderInspectorCollectionElementEditors() (to render the inspector editors for a validator/ finisher) call this event at the end. Strictly speaking, the Inspector component in the method _renderEditorDispatcher() calls this event. Each inspector editor has the property templateName, which gives the form editor two pieces of information. On the one hand the templateName must match with a key within the prototypes.prototypeIdentifier.formeditor.formEditorPartials. The form editor can consequently load a corresponding inline HTML template for the inspector editor. On the other hand, the Inspector component must be told which JavaScript code should be executed for the inspector editor. For the inspector editors delivered with EXT:form, this occurs within the method _renderEditorDispatcher(). An existing hard-coded list of known inspector editors determines, by means of the property templateName, which corresponding JavaScript method should be executed for the inspector editor. At the end, the event view/inspector/editor/insert/perform is called. If you wish to implement your own inspector editor, you can use this event to execute in your own JavaScript module. the corresponding JavaScript code, with the help of the property templateName.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 *              args[0] = editorConfiguration
 *              args[1] = editorHtml
 *              args[2] = collectionElementIdentifier
 *              args[3] = collectionName
 * @return void
 */
getPublisherSubscriber().subscribe('view/inspector/editor/insert/perform', function(topic, args) {
});
Copied!

A simple example that registers a custom inspector editor called 'Inspector-MyCustomInspectorEditor' and adds it to text form elements:

prototypes:
  standard:
    formEditor:
      dynamicJavaScriptModules:
        additionalViewModelModules:
          10: 'TYPO3/CMS/MySitePackage/Backend/FormEditor/ViewModel'
      formEditorFluidConfiguration:
        partialRootPaths:
          100: 'EXT:my_site_package/Resources/Private/Backend/Partials/FormEditor/'
      formEditorPartials:
        Inspector-MyCustomInspectorEditor: 'Inspector/MyCustomInspectorEditor'
    formElementsDefinition:
      Text:
        formEditor:
          editors:
            600:
              templateName: 'Inspector-MyCustomInspectorEditor'
              ...
Copied!
/**
 * Module: @typo3/my-site-package/backend/form-editor/view-model
 */
define(['jquery',
        'TYPO3/CMS/Form/Backend/FormEditor/Helper'
        ], function($, Helper) {
        'use strict';

    return (function($, Helper) {

        /**
         * @private
         *
         * @var object
         */
        var _formEditorApp = null;

        /**
         * @private
         *
         * @return object
         */
        function getFormEditorApp() {
            return _formEditorApp;
        };

        /**
         * @private
         *
         * @return object
         */
        function getPublisherSubscriber() {
            return getFormEditorApp().getPublisherSubscriber();
        };

        /**
         * @private
         *
         * @return object
         */
        function getUtility() {
            return getFormEditorApp().getUtility();
        };

        /**
         * @private
         *
         * @param object
         * @return object
         */
        function getHelper() {
            return Helper;
        };

        /**
         * @private
         *
         * @return object
         */
        function getCurrentlySelectedFormElement() {
            return getFormEditorApp().getCurrentlySelectedFormElement();
        };

        /**
         * @private
         *
         * @param mixed test
         * @param string message
         * @param int messageCode
         * @return void
         */
        function assert(test, message, messageCode) {
            return getFormEditorApp().assert(test, message, messageCode);
        };

        /**
         * @private
         *
         * @return void
         * @throws 1491643380
         */
        function _helperSetup() {
            assert('function' === $.type(Helper.bootstrap),
                'The view model helper does not implement the method "bootstrap"',
                1491643380
            );
            Helper.bootstrap(getFormEditorApp());
        };

        /**
         * @private
         *
         * @return void
         */
        function _subscribeEvents() {
            /**
             * @private
             *
             * @param string
             * @param array
             *              args[0] = editorConfiguration
             *              args[1] = editorHtml
             *              args[2] = collectionElementIdentifier
             *              args[3] = collectionName
             * @return void
             */
            getPublisherSubscriber().subscribe('view/inspector/editor/insert/perform', function(topic, args) {
                if (args[0]['templateName'] === 'Inspector-MyCustomInspectorEditor') {
                    renderMyCustomInspectorEditor(
                        args[0],
                        args[1],
                        args[2],
                        args[3]
                    );
                }
            });
        };

        /**
         * @private
         *
         * @param object editorConfiguration
         * @param object editorHtml
         * @param string collectionElementIdentifier
         * @param string collectionName
         * @return void
         */
        function renderMyCustomInspectorEditor(editorConfiguration, editorHtml, collectionElementIdentifier, collectionName) {
            // do cool stuff
        });

        /**
         * @public
         *
         * @param object formEditorApp
         * @return void
         */
        function bootstrap(formEditorApp) {
            _formEditorApp = formEditorApp;
            _helperSetup();
            _subscribeEvents();
        };

        /**
         * Publish the public methods.
         * Implements the "Revealing Module Pattern".
         */
        return {
            bootstrap: bootstrap
        };
    })($, Helper);
});
Copied!

view/inspector/removeCollectionElement/perform 

The inspector editor RequiredValidatorEditor calls this event, if the checkbox is deselected. EXT:form uses this event to remove the configured required validator ('NotEmpty') from the `form definition`` through the method ``getFormEditorApp().getViewModel().removePropertyCollectionElement()`.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 *              args[0] = collectionElementIdentifier
 *              args[1] = collectionName
 *              args[2] = formElement
 * @return void
 */
getPublisherSubscriber().subscribe('view/inspector/removeCollectionElement/perform', function(topic, args) {
});
Copied!

view/modal/close/perform 

If you try to close the form editor with unsaved content, a dialog box appears, asking whether you really wish to close it. If you confirm it, this event is called in the check box component. EXT:form uses this event to close the form editor and return to the form manager.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 * @return void
 */
getPublisherSubscriber().subscribe('view/modal/close/perform', function(topic, args) {
});
Copied!

view/modal/removeCollectionElement/perform 

If you try to remove a validator/ finisher by clicking the remove icon, a dialog box appears, asking you to confirm this action. If confirmed, this event is called in the check box component. EXT:form uses this event to remove the validator/ finisher from the form definition through the method getFormEditorApp().getViewModel().removePropertyCollectionElement().

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 *              args[0] = collectionElementIdentifier
 *              args[1] = collectionName
 *              args[2] = formElement
 * @return void
 */
getPublisherSubscriber().subscribe('view/modal/removeCollectionElement/perform', function(topic, args) {
});
Copied!

view/modal/removeFormElement/perform 

If you try to remove a form element by clicking the remove icon, a dialog box appears, asking you to confirm this action. If confirmed, this event is called in the check box component. EXT:form uses this event to remove the form element from the form definition via the method getFormEditorApp().getViewModel().removeFormElement().

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 *              args[0] = formElement
 * @return void
 */
getPublisherSubscriber().subscribe('view/modal/removeFormElement/perform', function(topic, args) {
});
Copied!

view/modal/validationErrors/element/clicked 

If a form element contains a validation error and you try to save the form, a dialog box appears, listing all form elements with validation errors. One such form element can be clicked in this dialog box. This event is called by clicking a form element in the dialog box. EXT:form uses this event to select and show this form element.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 *              args[0] = formElementIdentifierPath
 * @return void
 */
getPublisherSubscriber().subscribe('view/modal/validationErrors/element/clicked', function(topic, args) {
});
Copied!

view/paginationNext/clicked 

This event is called if the 'pagination next' button in the Stage component's header section is clicked. EXT:form uses this event to render the next page of the form.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 * @return void
 */
getPublisherSubscriber().subscribe('view/paginationNext/clicked', function(topic, args) {
});
Copied!

view/paginationPrevious/clicked 

This event is called, if the 'pagination previous' button in the Stage component's header section is clicked. EXT:form uses this event to render the previous page of the form.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 * @return void
 */
getPublisherSubscriber().subscribe('view/paginationPrevious/clicked', function(topic, args) {
});
Copied!

view/ready 

EXT:form makes it possible to load your own JavaScript module. If all modules are loaded, the view-model method _loadAdditionalModules calls this event. EXT:form uses this event to remove the preloader icon and finally initialize the form editor.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 * @return void
 */
getPublisherSubscriber().subscribe('view/ready', function(topic, args) {
});
Copied!

view/redoButton/clicked 

This event is called if the redo button in the form editor header is clicked. The addition/ deletion and movement of form elements and property collection elements (validators/ finishers) is saved in an internal stack in order to reset the undo/ redo functionality. EXT:form uses this event to reset this stack to the previous state.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 * @return void
 */
getPublisherSubscriber().subscribe('view/redoButton/clicked', function(topic, args) {
});
Copied!

view/stage/abstract/button/newElement/clicked 

This event is called if the "Create new element" button at the end of the Stage component in the abstract view mode is clicked. EXT:form uses this event to display the "new element" dialog box.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 *              args[0] = targetEvent
 *              args[1] = configuration
 * @return void
 */
getPublisherSubscriber().subscribe('view/stage/abstract/button/newElement/clicked', function(topic, args) {
});
Copied!

view/stage/abstract/dnd/change 

EXT:form uses the library 'SortableJS' for the drag-and-drop functionality. The 'change' event from 'SortableJS' calls the view/stage/abstract/dnd/change event in the Stage component in the abstract view mode if form elements are sorted. EXT:form uses this event to set various CSS classes during the drag-and-drop process.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 *              args[0] = placeholderDomElement
 *              args[1] = parentFormElementIdentifierPath
 *              args[2] = enclosingCompositeFormElement
 * @return void
 */
getPublisherSubscriber().subscribe('view/stage/abstract/dnd/change', function(topic, args) {
});
Copied!

view/stage/abstract/dnd/start 

EXT:form uses the library 'SortableJS' for the drag-and-drop functionality. The 'start' event from 'SortableJS' calls the view/stage/abstract/dnd/start event in the Stage component in the abstract view mode if form elements are sorted. EXT:form uses this event to set various CSS classes at the start of the drag-and-drop process.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 *              args[0] = draggedFormElementDomElement
 *              args[1] = draggedFormPlaceholderDomElement
 * @return void
 */
getPublisherSubscriber().subscribe('view/stage/abstract/dnd/start', function(topic, args) {
});
Copied!

view/stage/abstract/dnd/stop 

EXT:form uses the library 'SortableJS' for the drag-and-drop functionality. The 'end' event from 'SortableJS' calls the view/stage/abstract/dnd/stop event in the Stage component in the abstract view mode if form elements are sorted. EXT:form uses this event to to re-render the Tree, Stage and Inspector components at the end of the drag-and-drop process and to select the moved form element.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 *              args[0] = draggedFormElementIdentifierPath
 * @return void
 */
getPublisherSubscriber().subscribe('view/stage/abstract/dnd/stop', function(topic, args) {
});
Copied!

view/stage/abstract/dnd/update 

EXT:form uses the library 'SortableJS' for the drag-and-drop functionality. The 'end' event from 'SortableJS' calls the view/stage/abstract/dnd/update event in the Stage component in the abstract view mode if form elements are sorted. EXT:form uses this event to move the form element in the form definition accordingly at the end of the drag-and-drop process.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 *              args[0] = movedDomElement
 *              args[1] = movedFormElementIdentifierPath
 *              args[2] = previousFormElementIdentifierPath
 *              args[3] = nextFormElementIdentifierPath
 * @return void
 */
getPublisherSubscriber().subscribe('view/stage/abstract/dnd/update', function(topic, args) {
});
Copied!

view/stage/abstract/elementToolbar/button/newElement/clicked 

This event is called if the "Create new element" button in the form-element toolbar or "Inside" or "After" in the split button is clicked. EXT:form uses this event to display the "New element" dialog box.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 *              args[0] = targetEvent
 *              args[1] = configuration
 * @return void
 */
getPublisherSubscriber().subscribe('view/stage/abstract/elementToolbar/button/newElement/clicked', function(topic, args) {
});
Copied!

view/stage/abstract/render/postProcess 

This event is called after the abstract view of the Stage component has been rendered. EXT:form uses this event to render the undo/ redo buttons.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 * @return void
 */
getPublisherSubscriber().subscribe('view/stage/abstract/render/postProcess', function(topic, args) {
});
Copied!

view/stage/abstract/render/preProcess 

This event is called before the abstract view of the Stage component is rendered.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 * @return void
 */
getPublisherSubscriber().subscribe('view/stage/abstract/render/preProcess', function(topic, args) {
});
Copied!

view/stage/abstract/render/template/perform 

This event is dispatched by the Stage component during rendering of the abstract stage area. It is only dispatched for form elements that have a formEditorPartials entry (e.g. FormElement-<formElementTypeIdentifier>) in the prototype configuration. Form elements without a formEditorPartials entry are automatically rendered using the built-in <typo3-form-form-element-stage-item> web component — no JavaScript subscriber is needed for those.

If you provide a formEditorPartials entry for your custom form element, subscribe to this event in your JavaScript module to populate the cloned Fluid template with the form element's data. The subscriber receives the FormElement object and the cloned HTMLElement template as arguments.

Subscribe to the event:

getPublisherSubscriber().subscribe('view/stage/abstract/render/template/perform', function(topic, args) {
    const formElement = args[0]; // FormElement object
    const template    = args[1]; // cloned HTMLElement from the Fluid partial
});
Copied!

A minimal example for a custom form element MyCustomElement with a dedicated stage template. The template is a plain HTML partial; the subscriber populates it via DOM manipulation.

Fluid partial (EXT:my_extension/Resources/Private/Backend/Partials/FormEditor/Stage/MyCustomElement.html):

<div class="formeditor-element-body">
    <div class="formeditor-element-info">
        <div data-identifier="elementLabel"></div>
        <div data-identifier="elementSummary"></div>
    </div>
</div>
Copied!

Extension importmap (EXT:my_extension/Configuration/JavaScriptModules.php):

The JavaScript module must be registered.

<?php
return [
    'dependencies' => ['form',],
    'imports' => [
        '@vendor/my-extension/' =>
            'EXT:my_extension/Resources/Public/JavaScript/',
    ],
];
Copied!

Prototype YAML configuration:

prototypes:
  standard:
    formEditor:
      dynamicJavaScriptModules:
        additionalViewModelModules:
          10: '@vendor/my-extension/backend/form-editor/view-model.js'
      formEditorPartials:
        FormElement-MyCustomElement: 'Stage/MyCustomElement'
Copied!

JavaScript module (EXT:my_extension/Resources/Public/JavaScript/backend/form-editor/view-model.js):

let _formEditorApp = null;

export function bootstrap(formEditorApp) {
    _formEditorApp = formEditorApp;

    _formEditorApp.getPublisherSubscriber().subscribe(
        'view/stage/abstract/render/template/perform',
        function (topic, args) {
            const [formElement, template] = args;
            if (formElement.get('type') !== 'MyCustomElement') {
                return;
            }

            const labelEl = template.querySelector('[data-identifier="elementLabel"]');
            if (labelEl) {
                labelEl.textContent = formElement.get('label') || formElement.get('identifier');
            }

            const summaryEl = template.querySelector('[data-identifier="elementSummary"]');
            if (summaryEl) {
                summaryEl.textContent = formElement.get('properties.myCustomProperty') ?? '';
            }
        }
    );
}
Copied!

view/stage/element/clicked 

This event is called from the Stage component when a form element is clicked. EXT:form uses this event to select this element and to display the form-element toolbar. In addition, the Tree and Inspector components are re-rendered.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 *              args[0] = formElementIdentifierPath
 * @return void
 */
getPublisherSubscriber().subscribe('view/stage/element/clicked', function(topic, args) {
});
Copied!

view/stage/panel/clicked 

This event is called if the header section of the Stage component is clicked.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 * @return void
 */
getPublisherSubscriber().subscribe('view/stage/panel/clicked', function(topic, args) {
});
Copied!

view/stage/preview/render/postProcess 

This event is called after the preview view of the Stage component has been rendered. EXT:form uses this event to render the undo/ redo buttons.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 * @return void
 */
getPublisherSubscriber().subscribe('view/stage/preview/render/postProcess', function(topic, args) {
});
Copied!

view/structure/button/newPage/clicked 

This event is called from the onClick event of the Tree component's "Create new page" button. EXT:form uses this event to display the "new page" dialog box.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 *              args[0] = targetEvent
 * @return void
 */
getPublisherSubscriber().subscribe('view/structure/button/newPage/clicked', function(topic, args) {
});
Copied!

view/structure/renew/postProcess 

This event is called from the view-model after the Tree component has been re-rendered. EXT:form uses this event to display potential validation errors from form elements in the Tree component.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 * @return void
 */
getPublisherSubscriber().subscribe('view/structure/renew/postProcess', function(topic, args) {
});
Copied!

view/structure/root/selected 

This event is called if the root form element in the Tree component is clicked. EXT:form uses this event to re-render the Stage, Inspector and Tree components.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 * @return void
 */
getPublisherSubscriber().subscribe('view/structure/root/selected', function(topic, args) {
});
Copied!

view/tree/dnd/change 

EXT:form uses the library 'SortableJS' for the drag-and-drop functionality. The 'change' event from 'SortableJS' calls the view/tree/dnd/change event in der Tree component if form elements are sorted. EXT:form uses this event to set various CSS classes during the drag -and-drop process.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 *              args[0] = placeholderDomElement
 *              args[1] = parentFormElementIdentifierPath
 *              args[2] = enclosingCompositeFormElement
 * @return void
 */
getPublisherSubscriber().subscribe('view/tree/dnd/change', function(topic, args) {
});
Copied!

view/tree/dnd/stop 

EXT:form uses the library 'SortableJS' for the drag-and-drop functionality. The 'end' event from 'SortableJS' calls the view/tree/dnd/stop event in the Tree component if form elements are sorted. EXT:form uses this event to re-render Tree, Stage and Inspector components at the end of the drag-and-drop process and to select the moved form element.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 *              args[0] = draggedFormElementIdentifierPath
 * @return void
 */
getPublisherSubscriber().subscribe('view/tree/dnd/stop', function(topic, args) {
});
Copied!

view/tree/dnd/update 

EXT:form uses the library 'SortableJS' for the drag-and-drop functionality. The 'end' event from 'SortableJS' calls the view/tree/dnd/update event in der Tree component if form elements are sorted. EXT:form uses this event to move the form element in the `form definition` accordingly at the end of the drag-and-drop process.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 *              args[0] = movedDomElement
 *              args[1] = movedFormElementIdentifierPath
 *              args[2] = previousFormElementIdentifierPath
 *              args[3] = nextFormElementIdentifierPath
 * @return void
 */
getPublisherSubscriber().subscribe('view/tree/dnd/update', function(topic, args) {
});
Copied!

view/tree/node/clicked 

This event is called from the Tree component if a form element is clicked. EXT:form uses this event to re-render the Stage and Inspector components and select the form element.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 *              args[0] = formElementIdentifierPath
 * @return void
 */
getPublisherSubscriber().subscribe('view/tree/node/clicked', function(topic, args) {
});
Copied!

view/tree/render/listItemAdded 

This event is called by the Tree component for each form element as soon as it is added to the tree.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 *              args[0] = listItem
 *              args[1] = formElement
 * @return void
 */
getPublisherSubscriber().subscribe('view/tree/render/listItemAdded', function(topic, args) {
});
Copied!

view/undoButton/clicked 

This event is called when the undo button is clicked in the form editor header. The history of adding / deleting and moving form elements and property collection elements (validators/ finishers) is stored in an internal stack to implement the undo / redo functionality. EXT:form uses this event to set this stack to the next state.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 * @return void
 */
getPublisherSubscriber().subscribe('view/undoButton/clicked', function(topic, args) {
});
Copied!

view/viewModeButton/abstract/clicked 

This event is called when the abstract view button is clicked in the header area of the Stage component. EXT:form uses this event to render the abstract view in the Stage component.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 * @return void
 */
getPublisherSubscriber().subscribe('view/viewModeButton/abstract/clicked', function(topic, args) {
});
Copied!

view/viewModeButton/preview/clicked 

This event is called when the preview button is clicked in the header area of the Stage component. EXT:form uses this event to render the `preview view`` in the ``Stage` component.

Subscribe to the event:

/**
 * @private
 *
 * @param string
 * @param array
 * @return void
 */
getPublisherSubscriber().subscribe('view/viewModeButton/preview/clicked', function(topic, args) {
});
Copied!

FormElement model 

Property: __parentRenderable 

__parentRenderable includes the parent element as FormElement model.

Property: __identifierPath 

Internally, all form elements are identified by their 'identifier' property, which must be unique for each form. The __identifierPath property contains the path to the element (as seen from the first element), separated by a /. Using this path, you can access the element directly through an API method.

Method: get() 

Each property of the FormElement model can be accessed by the get() method through the property path (separated by .). Prerequisite for this is that all levels up to the target property are objects.

Example of a FormElement model:

{
  "identifier": "name",
  "defaultValue": "",
  "label": "Name",
  "type": "Text",
  "properties": {
    "fluidAdditionalAttributes": {
      "placeholder": "Name"
    }
  },
  "__parentRenderable": "example-form/page-1 (filtered)",
  "__identifierPath": "example-form/page-1/name",
  "validators": [
    {
      "identifier": "NotEmpty"
    }
  ]
}
Copied!

Access to properties.fluidAdditionalAttributes.placeholder:

// value = 'Name'
var value = getFormEditorApp().getFormElementByIdentifierPath('example-form/page-1/name').get('properties.fluidAdditionalAttributes.placeholder');
Copied!

Two exceptions are the two arrays of "finishers" / "validators" (`property collections``) and the ``renderables`.

Accessing property collection properties 

Property collection are identified as form elements through the property identifier. Because property collection properties are in an array and their positions in the array are potentially unknown, the getFormEditorApp().buildPropertyPath() method exists. This can be used to access a property of a property collection item via its identifier.

Example of a FormElement model:

{
  "identifier": "name",
  "defaultValue": "",
  "label": "Name",
  "type": "Text",
  "properties": {
    "fluidAdditionalAttributes": {
      "placeholder": "Name"
    }
  },
  "__parentRenderable": "example-form/page-1 (filtered)",
  "__identifierPath": "example-form/page-1/name",
  "validators": [
    {
      "identifier": "StringLength"
      "options": {
        "minimum": "1",
        "maximum": "2"
      }
    }
  ]
}
Copied!

Access to options.minimum of the validator StringLength:

var formElement = getFormEditorApp().getFormElementByIdentifierPath('example-form/page-1/name');
var propertyPath = getFormEditorApp().buildPropertyPath('options.minimum', 'StringLength', 'validators', formElement);
// value = 1
var value = formElement.get(propertyPath);
Copied!
Accessing renderables 

Like property collections, renderables (the child elements) are also in an array and their position in the array is potentially unknown. Direct access to child elements through the get() method is impossible. formElement.get('renderables') supplies an array with the `FormElement models` of the child elements. You must then loop over this array. Access to a specific child element should be done using getFormEditorApp().getFormElementByIdentifierPath().

Method: set() 

Any property of the FormElement model can be written using the set() method by means of the property path (separated by .).

Example of a FormElement model:

{
  "identifier": "name",
  "defaultValue": "",
  "label": "Name",
  "type": "Text",
  "properties": {
    "fluidAdditionalAttributes": {
      "placeholder": "Name"
    }
  },
  "__parentRenderable": "example-form/page-1 (filtered)",
  "__identifierPath": "example-form/page-1/name",
  "validators": [
    {
      "identifier": "NotEmpty"
    }
  ]
}
Copied!

Set the property properties.fluidAdditionalAttributes.placeholder:

getFormEditorApp().getFormElementByIdentifierPath('example-form/page-1/name').set('properties.fluidAdditionalAttributes.placeholder', 'New Placeholder');
Copied!

Example of the FormElement model after the set() operation:

{
  "identifier": "name",
  "defaultValue": "",
  "label": "Name",
  "type": "Text",
  "properties": {
    "fluidAdditionalAttributes": {
      "placeholder": "New Placeholder"
    }
  },
  "__parentRenderable": "example-form/page-1 (filtered)",
  "__identifierPath": "example-form/page-1/name",
  "validators": [
    {
      "identifier": "NotEmpty"
    }
  ]
}
Copied!

Two exceptions are the two arrays of "finishers" / "validators" (`property collections``) and the ``renderables`.

Setting property collection properties 

In principle, the same applies here as for get property collection properties.

Set the property options.minimum of the validator StringLength:

var formElement = getFormEditorApp().getFormElementByIdentifierPath('example-form/page-1/name');
var propertyPath = getFormEditorApp().buildPropertyPath('options.minimum', 'StringLength', 'validators', formElement);
formElement.set(propertyPath, '2');
Copied!
Setting renderables 

To add child form elements to a FormElement model, the appropriate API methods should be used:

  • getFormEditorApp().createAndAddFormElement()
  • getFormEditorApp().addFormElement()
  • getFormEditorApp().moveFormElement()
  • getFormEditorApp().removeFormElement()

Method: unset() 

Any property of the FormElement model can be deleted using the method unset() by means of the property path (separated by .).

Example of a FormElement model:

{
  "identifier": "name",
  "defaultValue": "",
  "label": "Name",
  "type": "Text",
  "properties": {
    "fluidAdditionalAttributes": {
      "placeholder": "Name"
    }
  },
  "__parentRenderable": "example-form/page-1 (filtered)",
  "__identifierPath": "example-form/page-1/name",
  "validators": [
    {
      "identifier": "NotEmpty"
    }
  ]
}
Copied!

Delete the property properties.fluidAdditionalAttributes.placeholder:

// value = 'Name'
var value = getFormEditorApp().getFormElementByIdentifierPath('example-form/page-1/name').unset('properties.fluidAdditionalAttributes.placeholder');
Copied!

Example of the FormElement model after the unset() operation:

{
  "identifier": "name",
  "defaultValue": "",
  "label": "Name",
  "type": "Text",
  "properties": {
    "fluidAdditionalAttributes": {}
  },
  "__parentRenderable": "example-form/page-1 (filtered)",
  "__identifierPath": "example-form/page-1/name",
  "validators": [
    {
      "identifier": "NotEmpty"
    }
  ]
}
Copied!

Two exceptions are the two arrays of "finishers" / "validators" (`property collections``) and the ``renderables`.

Remove property collection properties 

In principle, the same applies here as for get property collection properties.

Delete the property options.minimum of the validator StringLength:

var formElement = getFormEditorApp().getFormElementByIdentifierPath('example-form/page-1/name');
var propertyPath = getFormEditorApp().buildPropertyPath('options.minimum', 'StringLength', 'validators', formElement);
formElement.unset(propertyPath);
Copied!
Remove renderables 

To delete a FormElement model, the corresponding API method getFormEditorApp().removeFormElement() should be used.

Method: on() 

Any number of Publisher/Subscriber events can be assigned to any property path of a FormElement model. Each set() operation on this property path will then call these events. By default, EXT:form registers the event core/formElement/somePropertyChanged for each property path.

Example:

getFormEditorApp().getFormElementByIdentifierPath('example-form/page-1/name').on('properties.fluidAdditionalAttributes.placeholder', 'my/custom/event');
getFormEditorApp().getFormElementByIdentifierPath('example-form/page-1/name').set('properties.fluidAdditionalAttributes.placeholder', 'New Placeholder');
// now, the event 'my/custom/event' will be published
Copied!

Method: off() 

Any event registered via on() can be removed with off().

Example:

getFormEditorApp().getFormElementByIdentifierPath('example-form/page-1/name').off('properties.fluidAdditionalAttributes.placeholder', 'my/custom/event');
Copied!

Method: getObjectData() 

All FormElement model properties are private and cannot be manipulated directly from the outside. They can only be accessed via set() or get(). This method is used internally to obtain all data of a `FormElement model` in object form so that they can be used in, for example, Ajax requests. getObjectData() returns a dereferenced object of the FormElement model with all internal data, thus allowing read access to all data set via set().

Method: toString() 

A method that was implemented for debugging purposes. Returns the object data supplied by getObjectData() in string form.

console.log(formElement.toString());
Copied!

Method: clone() 

If necessary, a form element can be cloned. Returns a dereferenced clone of the original FormElement model.

var dolly = formElement.clone();
Copied!

Building and rendering forms 

This chapter explains how EXT:form renders forms in the frontend and how developers can build forms programmatically or customize the rendering pipeline.

For the complete PHP API of every class mentioned here, see EXT:form API on api.typo3.org.

Template resolution (FluidFormRenderer) 

The FluidFormRenderer resolves Fluid templates, layouts and partials through rendering options defined in the prototype configuration. All options are read from \TYPO3\CMS\Form\Domain\Model\FormDefinition::getRenderingOptions().

templateRootPaths 

Defines one or more paths to Fluid templates. Paths are searched in reverse order (bottom to top); the first match wins.

Only the root form element (type Form) must be a template file. All child elements are resolved as partials.

EXT:my_sitepackage/Configuration/Form/CustomPrototype.yaml
prototypes:
  standard:
    formElementsDefinition:
      Form:
        renderingOptions:
          templateRootPaths:
            10: 'EXT:form/Resources/Private/Frontend/Templates/'
            20: 'EXT:my_sitepackage/Resources/Private/Forms/Frontend/Templates/'
Copied!

With the default type Form the renderer expects a file named Form.html inside the first matching path.

layoutRootPaths 

Defines one or more paths to Fluid layouts, searched in reverse order.

EXT:my_sitepackage/Configuration/Form/CustomPrototype.yaml
prototypes:
  standard:
    formElementsDefinition:
      Form:
        renderingOptions:
          layoutRootPaths:
            10: 'EXT:form/Resources/Private/Frontend/Layouts/'
            20: 'EXT:my_sitepackage/Resources/Private/Forms/Frontend/Layouts/'
Copied!

partialRootPaths 

Defines one or more paths to Fluid partials, searched in reverse order.

Within these paths the renderer looks for a file named after the form element type (e.g. Text.html for a Text element). Use templateName to override this convention.

EXT:my_sitepackage/Configuration/Form/CustomPrototype.yaml
prototypes:
  standard:
    formElementsDefinition:
      Form:
        renderingOptions:
          partialRootPaths:
            10: 'EXT:form/Resources/Private/Frontend/Partials/'
            20: 'EXT:my_sitepackage/Resources/Private/Forms/Frontend/Partials/'
Copied!

templateName 

By default the element type is used as the partial file name (e.g. type TextText.html). Set templateName to use a different file instead:

EXT:my_sitepackage/Configuration/Form/CustomPrototype.yaml
prototypes:
  standard:
    formElementsDefinition:
      Foo:
        renderingOptions:
          templateName: 'Text'
Copied!

The element of type Foo now renders using Text.html.

The render ViewHelper 

Use <formvh:render> in a Fluid template to render a form. The ViewHelper accepts the following arguments:

persistenceIdentifier 

Path to a YAML form definition. This is the most common way to render a form:

EXT:my_sitepackage/Resources/Private/Templates/ContactPage.html
<formvh:render
    persistenceIdentifier="EXT:my_sitepackage/Resources/Private/Forms/Contact.yaml"
/>
Copied!

overrideConfiguration 

A configuration array that is merged on top of the loaded form definition (or passed directly to the factory when no persistenceIdentifier is given). This allows adjusting a form per usage without duplicating the YAML file.

factoryClass 

A fully qualified class name implementing FormFactoryInterface . Defaults to ArrayFormFactory . Set a custom factory to build forms programmatically.

EXT:my_sitepackage/Resources/Private/Templates/ContactPage.html
<formvh:render
    factoryClass="Vendor\MySitePackage\Domain\Factory\CustomFormFactory"
/>
Copied!

prototypeName 

Name of the prototype the factory should use (e.g. standard). If omitted the framework looks for the prototype name inside the form definition; if none is found, standard is used.

Building forms programmatically 

Instead of writing YAML, you can create a form entirely in PHP by implementing a custom FormFactory.

  1. Create a FormFactory

    Extend AbstractFormFactory and implement build(). Use FormDefinition::createPage() to add pages, Page::createElement() to add elements, and FormDefinition::createFinisher() to attach finishers.

    EXT:my_sitepackage/Classes/Domain/Factory/CustomFormFactory.php
    <?php
    
    declare(strict_types=1);
    
    namespace Vendor\MySitePackage\Domain\Factory;
    
    use Psr\Http\Message\ServerRequestInterface;
    use TYPO3\CMS\Core\Utility\GeneralUtility;
    use TYPO3\CMS\Form\Domain\Configuration\ConfigurationService;
    use TYPO3\CMS\Form\Domain\Factory\AbstractFormFactory;
    use TYPO3\CMS\Form\Domain\Model\FormDefinition;
    use TYPO3\CMS\Form\Domain\Model\FormElements\AbstractFormElement;
    
    final class CustomFormFactory extends AbstractFormFactory
    {
        public function build(
            array $configuration,
            ?string $prototypeName = null,
            ?ServerRequestInterface $request = null,
        ): FormDefinition {
            $prototypeName ??= 'standard';
            $configurationService = GeneralUtility::makeInstance(
                ConfigurationService::class,
            );
            $prototypeConfiguration = $configurationService->getPrototypeConfiguration(
                $prototypeName,
            );
    
            $form = GeneralUtility::makeInstance(
                FormDefinition::class,
                'ContactForm',
                $prototypeConfiguration,
            );
            $form->setRenderingOption('controllerAction', 'index');
    
            // Page 1 – personal data
            $page1 = $form->createPage('page1');
    
            /** @var AbstractFormElement $name */
            $name = $page1->createElement('name', 'Text');
            $name->setLabel('Name');
            $name->createValidator('NotEmpty');
    
            /** @var AbstractFormElement $email */
            $email = $page1->createElement('email', 'Text');
            $email->setLabel('Email');
    
            // Page 2 – message
            $page2 = $form->createPage('page2');
    
            /** @var AbstractFormElement $message */
            $message = $page2->createElement('message', 'Textarea');
            $message->setLabel('Message');
            $message->createValidator('StringLength', ['minimum' => 5, 'maximum' => 500]);
    
            // Radio buttons
            /** @var AbstractFormElement $subject */
            $subject = $page2->createElement('subject', 'RadioButton');
            $subject->setProperty('options', [
                'general' => 'General inquiry',
                'support' => 'Support request',
            ]);
            $subject->setLabel('Subject');
    
            // Finisher – send email
            $form->createFinisher('EmailToSender', [
                'subject' => 'Contact form submission',
                'recipients' => [
                    'info@example.com' => 'My Company',
                ],
                'senderAddress' => 'noreply@example.com',
            ]);
    
            $this->triggerFormBuildingFinished($form);
    
            return $form;
        }
    }
    
    Copied!
  2. Render the form

    Reference your factory in a Fluid template:

    EXT:my_sitepackage/Resources/Private/Templates/ContactPage.html
    <formvh:render
        factoryClass="Vendor\MySitePackage\Domain\Factory\CustomFormFactory"
    />
    
    Copied!

Key classes and their responsibilities 

The following table lists the most important classes you work with when building or manipulating forms programmatically. Use your IDE's autocompletion or the API documentation for the full method reference.

Class Purpose
FormDefinition The complete form model. Create pages ( createPage()), attach finishers ( createFinisher()), look up elements ( getElementByIdentifier()), and bind to a request ( bind()).
FormRuntime A bound form instance (created by FormDefinition::bind()). Provides access to the current page, submitted values ( getElementValue()), and the request/response objects. This is the object available inside finishers and event listeners.
Page One page of a multi-step form. Add elements with createElement(), reorder them with moveElementBefore() / moveElementAfter().
Section A grouping element inside a page. Same API as Page for managing child elements.
AbstractFormElement Base class of all concrete elements. Most element types use GenericFormElement ; specialized subclasses include DatePicker and FileUpload . Set properties ( setProperty()), add validators ( createValidator()), define default values ( setDefaultValue()).
ConfigurationService Reads the merged prototype configuration. Call getPrototypeConfiguration('standard') to obtain the full array for a prototype.

Initializing elements at runtime 

Override initializeFormElement() in a custom form element class to populate data (e.g. from a database) when the element is added to the form. At that point the prototype defaults have already been applied; properties from the YAML definition are applied afterwards.

Working with finishers 

Custom finishers extend AbstractFinisher and place their logic in executeInternal(). The base class provides:

parseOption(string $optionName)
Resolves a finisher option, applying form-element variable replacements and TypoScript-style option overrides. Always prefer this over direct array access.

The FinisherContext passed to execute() gives access to:

getFormRuntime()
The FormRuntime for the current submission.
getFormValues()
All submitted values (after validation and property mapping).
getFinisherVariableProvider()

A key/value store to share data between finishers within the same request. The returned FinisherVariableProvider offers:

add(string $finisherIdentifier, string $key, mixed $value)
Store a value under a finisher-specific namespace.
get(string $finisherIdentifier, string $key, mixed $default = null)
Retrieve a previously stored value (returns $default if not set).
exists(string $finisherIdentifier, string $key)
Check whether a value has been stored.
remove(string $finisherIdentifier, string $key)
Remove a stored value.
cancel()
Stops execution of any remaining finishers.

Runtime manipulation 

EXT:form dispatches PSR-14 events at every important step of the rendering lifecycle. Use them to modify the form, redirect page flow, or adjust submitted values – without subclassing framework internals.

Concepts 

Within this chapter, you will learn the basic concepts of the form framework. It addresses your concerns as backend editor and integrator. Some of the chapters also cover topics for developers.

Target groups and main principles 

As we saw in the introduction, the form extension is a framework where editors, integrators, and developers can create and manage forms with different interfaces and functionality.

The most important part of EXT:form is the backend form editor. Different types of users can use the form editor for different things. Integrators can manage HTML class attributes, developers can create complex form definitions and editors can edit properties.

The form extension tries to find a compromise between these things. The form editor is mainly designed for editors, so simple, easy-to-edit properties are displayed. However, the form editor can be easily extended by YAML configuration.

And should this is not enough for your specific project, you can integrate your own JavaScript code using the JavaScript API.

You can create and define forms globally in the Web->Forms module or you can load forms from inside extensions, for example, the Mail form content element.

Some parts of a form can be overridden in the form plugin. This means you can reuse the same form on different pages with a different configuration.

The information in this chapter will show you that there are many ways to customize the form framework, depending on your use case. Be creative and share your solution with the TYPO3 community!

This chapter describes the basics of the form framework. Check out the reference and the examples to get a deeper understanding of the framework.

Configuration 

A lot of configuration. Why? 

Building forms in a declarative and programmatic way is complex. Dynamic forms need program code that is as generic as possible. But generic program code means a lot of configurative overhead.

Having so much configuration may seem overwhelming, but it has a lot of advantages. Many aspects of EXT:form can be manipulated purely by configuration and without having to involve a developer.

The configuration in EXT:form is mainly located in places which make sense to a user. However, this means that certain settings have to be defined in multiple places in order to avoid unpredictable behaviour. There is no magic in the form framework - it is all about configuration.

Why YAML? 

Previous versions of EXT:form used a subset of TypoScript to describe form definitions and form element behavior. This led to a lot of confusion among integrators because the definition language looked like TypoScript but did not behave like TypoScript.

Form and form element definitions had to be declarative, so YAML was chosen as it is a declarative language.

YAML registration 

YAML configuration files are discovered automatically — no PHP or TypoScript registration is required.

Place your YAML files in EXT:my_extension/Configuration/Form/<SetName>/ and add a config.yaml with a unique set name. TYPO3 scans all active extensions and loads the files automatically for both frontend and backend.

Auto-discovery directory convention 

EXT:my_extension/
  Configuration/
    Form/
      MyFormSet/
        config.yaml
Copied!

The sub-directory name (MyFormSet) is arbitrary. An extension may ship multiple sets in separate sub-directories.

EXT:my_extension/Configuration/Form/MyFormSet/config.yaml
name: my-vendor/my-form-set
label: 'My Custom Form Set'
# Load order: lower = loaded first. Core base set uses priority 10.
# Extension sets should use > 10 (default: 100) to overlay the base.
priority: 200

# Form configuration goes directly below the metadata:
persistenceManager:
  allowedExtensionPaths:
    10: 'EXT:my_extension/Resources/Private/Forms/'
Copied!

YAML loading 

TYPO3 uses a 'YAML loader' for handling YAML, based on the Symfony YAML package. This YAML loader is able to resolve environment variables. In addition, EXT:form comes with its own YAML loader, but it has some restrictions, especially when resolving environment variables. This is for security reasons.

EXT:form differentiates between form configuration and form definition. A form definition can be stored in the file system (FAL) or can be shipped with an extension. The type of YAML loader used depends on the setup.

YAML file

YAML loader

YAML configuration

TYPO3 core

YAML definition stored in file system (default when using the form editor)

TYPO3 Form Framework

YAML definition stored in an extension

TYPO3 core

Configuration aspects 

Four things can be configured in EXT:form:

  • frontend rendering,
  • the form editor,
  • the form manager, and
  • the form plugin.

All configuration is placed in a single config.yaml per form set and is loaded for both frontend and backend. It is up to you whether you want to keep all configuration in one set or spread it across multiple form sets with different priorities.

Inheritance 

The final YAML configuration does not produce one huge file. Instead, it is a sequential compilation process:

  • Registered configuration files are parsed as YAML and are combined according to their order.
  • The __inheritances operator is applied. It is a unique operator introduced by the form framework.
  • Finally, all configuration entries with a value of null are deleted.

Instead of inheritance, you can also extend/override the frontend configuration using TypoScript:

plugin.tx_form {
    settings {
        yamlSettingsOverrides {
            ...
        }
    }
}
Copied!

An example of overriding the EXT:form Fluid templates. Place the configuration in EXT:my_site_package/Configuration/Form/SitePackage/config.yaml (auto-discovered, no PHP or TypoScript registration required):

prototypes:
  standard:
    formElementsDefinition:
      Form:
        renderingOptions:
          templateRootPaths:
            20: 'EXT:my_site_package/Resources/Private/Templates/Form/Frontend/'
          partialRootPaths:
            20: 'EXT:my_site_package/Resources/Private/Partials/Form/Frontend/'
          layoutRootPaths:
            20: 'EXT:my_site_package/Resources/Private/Layouts/Form/Frontend/'
Copied!

The values in your own configuration file will be merged on top of the EXT:form base set (EXT:form/Configuration/Form/Base/config.yaml).

Prevent duplication 

You can avoid duplication in your YAML files by using anchors (&), aliases (*) and overrides (<<:).

customEditor: &customEditor
  1761226183:
    identifier: custom
    templateName: Inspector-TextEditor
    label: Custom editor
    propertyPath: custom

otherCustomEditor: &otherCustomEditor
  identifier: otherCustom
  templateName: Inspector-TextEditor
  label: Other custom editor
  propertyPath: otherCustom

prototypes:
  standard:
    formElementsDefinition:
      Text:
        formEditor:
          editors:
            <<: *customEditor
            1761226184: *otherCustomEditor
Copied!

__inheritances operator 

Deprecated since version 14.0

The __inheritances operator has been marked as deprecated. Support will be removed in TYPO3 v15. Use native YAML syntax to prevent duplication

The __inheritances behaves similar to the < operator in TypoScript. That is, the definition of the source object is copied to the target object. The configuration can be inherited from several parent objects and can be overridden afterwards. The following example will show you the usage and behaviour of the __inheritances operator.

Form:
  part01:
    key01: value
    key02:
      key03: value
  part02:
    __inheritances:
      10: Form.part01
Copied!

The configuration above results in:

Form:
  part01:
    key01: value
    key02:
      key03: value
  part02:
    key01: value
    key02:
      key03: value
Copied!

As you can see, part02 inherited all of part01's properties.

Form:
  part01:
    key: value
  part02:
    __inheritances:
      10: Form.part01
    key: 'value override'
Copied!

The configuration above results in:

Form:
  part01:
    key: value
  part02:
    key: 'value override'
Copied!

Prototypes 

Most of the form framework configuration is defined in prototypes. standard is the default prototype in EXT:form. Prototypes contain form element definitions - including frontend rendering, form editor and form plugin. When you create a new form, your form definition references a prototype configuration.

This allows you to do a lot of clever stuff. For example:

  • depending on which prototype is referenced, the same form can load different

    • ...templates
    • ...form editor configurations
    • ...form plugin finisher overrides
  • in the form manager, depending on the selected prototype

    • ...different form editor configurations can be loaded
    • ...different pre-configured form templates (boilerplates) can be chosen
  • prototypes can define different/ extended form elements and display them in the frontend/ form editor

The following use case illustrates the prototype concept. Imagine that two prototypes are defined: "noob" and "poweruser".

Prototype "noob"

Prototype "poweruser"

Form elements in the ``form editor``

Just Text, Textarea

No changes. Default behaviour.

Finisher in the ``form editor``

Only the email finisher is available. It has a field for setting the subject of the email. The rest of the fields are hidden and filled with default values.

No changes. Default behaviour.

Finisher overrides in the ``form plugin``

It is not possible to override the finisher configuration.

No changes. Default behaviour.

Form configuration vs. form definition 

Up to this point, we have mainly looked at form framework configuration. In short, form configuration is based on prototypes and allows you to define:

  • which form elements, finishers, and validators are available to the system,
  • how they are pre-configured,
  • how they are displayed in the frontend and backend.

However, a second important part of the form framework is form definition, which is configuration but for specific forms, for example the ones users define. Form definition includes:

  • form elements and their validators,
  • the order of the form elements on the form
  • the finishers that are fired when the form is submitted
  • values of form element properties.

In other words, a Text form element would be defined in form configuration but a Text form element located on page 1 at position 1 of a specific form would be defined in a form definition. A form definition might also define a placeholder (HTML attribute) with a value of "Your name here" in a form element. Form definitions are created by the backend form editor.

Example form definition (for a specific form) 

identifier: ext-form-simple-contact-form-example
label: 'Simple Contact Form'
prototype: standard
type: Form

finishers:
  -
    identifier: EmailToReceiver
    options:
      subject: 'Your message'
      recipients:
        your.company@example.com: 'Your Company name'
        ceo@example.com: 'CEO'
      senderAddress: '{email}'
      senderName: '{name}'

renderables:
  -
    identifier: page-1
    label: 'Contact Form'
    type: Page

    renderables:
      -
        identifier: name
        label: 'Name'
        type: Text
        properties:
          fluidAdditionalAttributes:
            placeholder: 'Name'
        defaultValue: ''
        validators:
          -
            identifier: NotEmpty
      -
        identifier: subject
        label: 'Subject'
        type: Text
        properties:
          fluidAdditionalAttributes:
            placeholder: 'Subject'
        defaultValue: ''
        validators:
          -
            identifier: NotEmpty
      -
        identifier: email
        label: 'Email'
        type: Text
        properties:
          fluidAdditionalAttributes:
            placeholder: 'Email address'
        defaultValue: ''
        validators:
          -
            identifier: NotEmpty
          -
            identifier: EmailAddress
      -
        identifier: message
        label: 'Message'
        type: Textarea
        properties:
          fluidAdditionalAttributes:
            placeholder: ''
        defaultValue: ''
        validators:
          -
            identifier: NotEmpty
      -
        identifier: hidden
        label: 'Hidden Field'
        type: Hidden
  -
    identifier: summarypage
    label: 'Summary page'
    type: SummaryPage
Copied!

Form/ File storage 

Form definitions are stored in the file system (FAL) so EXT:form needs write access to the file system. Form definitions are stored in the form_definitions file mount by default. You can configure a different and/ or an additional file mount for storing and reading form definitions.

A backend user will only see form definitions that are stored in file mounts where they have at least read access. The form editor and form plugin respect these access rights, meaning you can implement ACLs. If you have configured more than one file mount and a backend user has access, the form manager will allow the user to choose their preferred storage.

Form definitions can also be stored in and shipped with your own extensions and backend users can then embed your forms. Furthermore, you can configure that your form definitions:

  • can be edited in the form editor,
  • can be deleted with the form manager.

By default, all these options are turned off because dynamic content inside an extension - possibly version-controlled - is not a good idea. There is also no ACL system available.

File uploads are saved in file mounts. They are handled as FAL objects. The file mounts for file uploads can be configured. When adding/ editing a file upload element, backend users can select the storage for the uploads.

Configure additional file mounts for form definitions as follows:

persistenceManager:
  allowedFileMounts:
    # default file mount, no need to redeclare it again
    # just to show you the structure
    # 10: 1:/form_definitions/
    # additional file mounts
    100: 1:/custom/forms/
    110: 2:/cloudstorage/forms/
Copied!

Add your extension path as an additional file mount for form definitions as follows:

persistenceManager:
  allowedExtensionPaths:
    10: EXT:my_site_package/Resources/Private/Forms/
Copied!

Allow backend users to edit forms stored in your extension as follows:

persistenceManager:
  allowSaveToExtensionPaths: true
Copied!

Allow backend users to delete forms stored in your extension as follows:

persistenceManager:
  allowDeleteFromExtensionPaths: true
Copied!

The following YAML shows the default file mount setup for file (and image) uploads.

prototypes:
  standard:
    formElementsDefinition:
      FileUpload:
        formEditor:
          predefinedDefaults:
            properties:
              saveToFileMount: '1:/user_upload/'
          editors:
            400:
              selectOptions:
                10:
                  value: '1:/user_upload/'
                  label: '1:/user_upload/'
        properties:
          saveToFileMount: '1:/user_upload/'
      ImageUpload:
        formEditor:
          predefinedDefaults:
            properties:
              saveToFileMount: '1:/user_upload/'
          editors:
            400:
              selectOptions:
                10:
                  value: '1:/user_upload/'
                  label: '1:/user_upload/'
Copied!

Frontend rendering 

Templates 

Fluid templates in the form framework are based on Bootstrap.

Custom templates 

In order to use your own Fluid templates for frontend forms, register your own template paths via YAML in the form configuration (here under the default standard prototype).

prototypes:
  standard:
    formElementsDefinition:
      Form:
        renderingOptions:
          templateRootPaths:
            100: 'EXT:my_site_package/Resources/Private/Frontend/Templates/'
          partialRootPaths:
            100: 'EXT:my_site_package/Resources/Private/Frontend/Partials/'
          layoutRootPaths:
            100: 'EXT:my_site_package/Resources/Private/Frontend/Layouts/'
Copied!

If your form definition then references the standard prototype, the form framework will look for Fluid templates in EXT:my_site_package/Resources/Private/Frontend/[*].

The Form element is the 'main' element. The framework will look for Form.html in templateRootPaths. For all other elements, it will look in partialRootPaths. A partial has the same name as the formElementTypeIdentifier property, for example, a Text template will be in a partial named Text.html in partialRootPaths.

Form element values in finisher templates 

Use the RenderFormValueViewHelper to access form element values in your finisher templates. This ViewHelper accepts a single form element and renders it. The following example shows the RenderFormValueViewHelper being called with two parameters (renderable and as) to output the value of a message field. The value {formValue.processedValue} can then be manipulated with Fluid, styled, etc.

<formvh:renderFormValue renderable="{form.formDefinition.elements.message}" as="formValue">
    {formValue.processedValue}
</formvh:renderFormValue>
Copied!

Names of your form elements can be found in your form definition (in your individual YAML files or in the System > Configuration module if you have the lowlevel extension installed). Or use the debug ViewHelper in Fluid to list all the form elements.

<f:debug>{page.rootForm.elements}</f:debug>
Copied!

Translation 

Translate form definition 

Translation of form definitions works differently to the usual translation of the backend. Currently, there is no graphical user interface for this translation process.

If form definition properties were translated in the same way as the rest of the backend, a backend editor using the form editor to edit a form they would see long unwieldy translation keys. In order to avoid this, form element properties are translated instead of their values. The form framework does not look for translation keys in a translation file. Instead, the system searches for translations of the form element properties independent of their property values. The property values are ignored if an entry is found in a translation file. The form element property values are overridden by the translated values.

This approach is a compromise between two scenarios: creating forms using the form editor or creating form definitions (which could later be edited in the form editor). An editor can create forms just using the form editor where form element property values are displayed in the default language. An integrator can provide additional language files which translate the form depending on the prototype.

Add additional translation files to the form configuration as follows:

prototypes:
  standard:
    formElementsDefinition:
      Form:
        renderingOptions:
          translation:
            translationFiles:
              # custom translation file
              20: 'EXT:my_site_package/Resources/Private/Language/Form/locallang.xlf'
Copied!

The translationFiles array is processed from the highest key to the lowest, i.e. your translation file with key 20 is processed before translation files with key '10' in EXT:form. If no key is found in the translation files, a property value will be displayed unmodified.

The following properties can be translated:

  • label
  • defaultValue (scalar values only; array values, e.g. for MultiCheckbox, are not translated)
  • properties.[*]
  • properties.options.[*]
  • properties.fluidAdditionalAttributes.[*]
  • renderingOptions.[*]

The translation keys are put together based on a specific pattern and there is a order (fallback chain) for the translations that depends on translation scenarios. These are the translation scenarios:

  • translation of a form element property for a specific form (formDefinitionIdentifier) and form element (ElementIdentifier`)
  • translation of a form element property for a specific form element (formElementIdentifier) and various forms
  • translation of a form element property for an element type (elementType) and various forms, e.g. the Page element

The look-up process searches for translation keys in all given translation files based on the following order (the same order as the translation scenarios above):

  • <formDefinitionIdentifier>.element.<elementIdentifier>.properties.<propertyName>
  • element.<formElementIdentifier>.properties.<propertyName>
  • element.<elementType>.properties.<propertyName>

Translation of options (properties.options) in form elements, like the Select element, have the following look-up order:

  • <formDefinitionIdentifier>.element.<elementIdentifier>.properties.options.<propertyValue>
  • element.<elementIdentifier>.properties.options.<propertyValue>

Example Form Definition 

identifier: ApplicationForm
type: Form
prototypeName: standard
label: 'Application form'

renderables:
  -
    identifier: GeneralInformation
    type: Page
    label: 'General information'

    renderables:
      -
        identifier: LastName
        type: Text
        label: 'Last name'
        properties:
          placeholder: 'Please enter your last name.'
        defaultValue: ''
      -
        identifier: Software
        type: MultiSelect
        label: 'Known software'
        properties:
          options:
            value1: TYPO3
            value2: Neos
Copied!

In order to translate the form element LastName, the process will look for the following translation keys in the translation files:

  • ApplicationForm.element.LastName.properties.label (<formDefinitionIdentifier>.element.<elementIdentifier>.properties.<propertyName>)
  • element.LastName.properties.label (element.<formElementIdentifier>.properties.<propertyName>)
  • element.Text.properties.label (element.<elementType>.properties.<propertyName>)

If none of these keys exist, 'Last name' will be displayed.

The defaultValue of LastName can be translated with the same fallback chain, using properties.defaultValue as the property name:

  • ApplicationForm.element.LastName.properties.defaultValue
  • element.LastName.properties.defaultValue
  • element.Text.properties.defaultValue

In order to translate the form element Software, the process will look for the following translation keys in the translation files:

  • ApplicationForm.element.Software.properties.label (<formDefinitionIdentifier>.element.<elementIdentifier>.properties.<propertyName>)
  • element.Software.properties.label (element.<formElementIdentifier>.properties.<propertyName>)
  • element.MultiSelect.properties.label (element.<elementType>.properties.<propertyName>)

If none of the these keys exist, 'Known software' will be displayed. The option properties lookup process is as the following:

  • ApplicationForm.element.Software.properties.options.value1 (<formDefinitionIdentifier>.element.<elementIdentifier>.properties.options.<propertyValue>)
  • element.Software.properties.options.value1 (element.<elementIdentifier>.properties.options.<propertyValue>)
  • ApplicationForm.element.Software.properties.options.value2 (<formDefinitionIdentifier>.element.<elementIdentifier>.properties.options.<propertyValue>)
  • element.Software.properties.options.value2 (element.<elementIdentifier>.properties.options.<propertyValue>)

If none of the these keys exist, 'TYPO3' will be displayed as label for the first option and 'Neos' for the second option.

Translation of validation messages 

The translation of validation messages is similar to the translation of form definitions abpve. The same translation files can be used. If the look-up process does not find a key within the files, an Extbase message will be displayed. EXT:form translates validators by default.

The same as for form definitions, the translation keys are put together based on a specific pattern. There is also a fallback chain.

The following translation scenarios are possible:

  • translation of validation messages for a specific validator of a specific form element (elementIdentifier) and specific form (formDefinitionIdentifier)
  • translation of validation messages for a specific validator of various form elements within a specific form (formDefinitionIdentifier)
  • translation of validation messages for a specific validator of a specific form element (elementIdentifier) in various forms
  • translation of validation messages for a specific validator in various forms

In Extbase, validation messages are identified by numerical codes (UNIX timestamps). Different codes can be used for the same validator. Read more about concrete validator configurations.

The look-up process searches for translation keys in the translation files in the following order (the same order as the translation scenarios above):

  • <formDefinitionIdentifier>.validation.error.<elementIdentifier>.<validationErrorCode>
  • <formDefinitionIdentifier>.validation.error.<validationErrorCode>
  • validation.error.<elementIdentifier>.<validationErrorCode>
  • validation.error.<validationErrorCode>

Example Form Definition with Validator 

identifier: ContactForm
type: Form
prototypeName: standard
label: 'Contact us'

renderables:
  -
    identifier: Page1
    type: Page
    label: 'Page 1'

    renderables:
      -
        identifier: LastName
        type: Text
        label: 'Last name'
        properties:
          fluidAdditionalAttributes:
            required: required
        validators:
          -
            identifier: NotEmpty
Copied!

If a user submits this form without providing a last name, the NotEmpty validator (at the bottom of the example above) fails and sends 1221560910 as a <validationErrorCode>. The system looks through the translation keys in the following order searching for the NotEmpty validator for form element LastName:

  • ContactForm.validation.error.LastName.1221560910 (<formDefinitionIdentifier>.validation.error.<elementIdentifier>.<validationErrorCode>)
  • ContactForm.validation.error.1221560910 (<formDefinitionIdentifier>.validation.error.<validationErrorCode>)
  • validation.error.LastName.1221560910 (validation.error.<elementIdentifier>.<validationErrorCode>)
  • validation.error.1221560910 (validation.error.<validationErrorCode>)

As mentioned above, if no translation key is available, a default Extbase framework message is displayed.

Translation of finisher options 

The translation of finisher options is similar to the translation of form definitions above. The same translation files can be used. If the look-up process does not find a key in the provided translation files, the property value will be displayed unmodified.

The same as for form definitions, the translation keys are put together based on a specific pattern. There is also a fallback chain.

The following translation scenarios are possible:

  • translation of finisher options for a specific finisher (finisherIdentifier) of a specific form (formDefinitionIdentifier below)
  • translation of finisher options for a specific finisher (finisherIdentifier) of various forms

The look-up process searches for translation keys in all the translation files based on the following order (the same order as the translation scenarios above):

  • <formDefinitionIdentifier>.finisher.<finisherIdentifier>.<optionName>
  • finisher.<finisherIdentifier>.<optionName>

The translation order is as follows:

  1. Default value from form definition
  2. Overridden value from a FlexForm (if any)
  3. Localized value provided by translation files (if any)

The translation.propertiesExcludedFromTranslation option skips the third step so that the translation resolves to a FlexForm value if one exists. For an example see Skip translation of overridden form finisher options.

Example Form Definition with Finisher 

identifier: ContactForm
type: Form
prototypeName: standard
label: 'Contact us'

finishers:
  -
    identifier: Confirmation
    options:
      message: 'Thank you for your inquiry.'

renderables:
  ...
Copied!

The look-up process searches for the following translation keys for the 'Confirmation' finisher message option:

  • ContactForm.finisher.Confirmation.message (<formDefinitionIdentifier>.finisher.<finisherIdentifier>.<optionName>)
  • finisher.Confirmation.message (finisher.<finisherIdentifier>.<optionName>)

If no translation key exists, the message 'Thank you for your inquiry.' will be displayed.

Form element translation arguments 

Form element property translations and finisher option translations can have placeholders to output translation arguments. Translations can be enriched with variable values by passing arguments to form element properties. This feature was introduced in forge#81363.

Form element properties 

In the YAML form configuration you can add simple literal values:

renderables:
  - identifier: field-with-translation-arguments
    type: Checkbox
    label: This is a %s feature
    renderingOptions:
      translation:
        translationFiles:
          10: path/to/locallang.xlf
        arguments:
          label:
            - useful
Copied!

This will produce the label: This is a useful feature.

Alternatively, you can use formDefinitionOverrides in TypoScript to set translation arguments. One use case is a checkbox for user confirmation which links to further information. Here it makes sense to use YAML hashes (key value pairs) instead of YAML lists so that sections have keys. This simplifies references in TypoScript since named keys are easy to read and can easily be reordered. With lists and numeric keys the TypoScript setup would also need to be updated in this case.

In the following form configuration example the list of renderables has been replaced with a hash of renderables, and the field field-with-translation-arguments now has a named key fieldWithTranslationArguments. This key can be anything as long as it is unique at its level in the YAML - here just the identifier in another form:

renderables:
  fieldWithTranslationArguments:
    identifier: field-with-translation-arguments
    type: Checkbox
    label: I agree to the <a href="%s">terms and conditions</a>
    renderingOptions:
      translation:
        translationFiles:
          10: path/to/locallang.xlf
Copied!

If the label contains HTML markup - like in the above example - it must be wrapped in CDATA tags in the path/to/locallang.xlf translation file, to prevent analysis of character data by the parser. Also, the label should be rendered using the <f:format.raw> ViewHelper in fluid templates, to prevent escaping of HTML tags:

<trans-unit id="<form-id>.element.field-with-translation-arguments.properties.label">
    <source><![CDATA[I agree to the <a href="%s">terms and conditions</a>]]></source>
</trans-unit>
Copied!

The TypoScript below can use the fieldWithTranslationArguments key to refer to the field and adds a page URL as a translation argument for the link in the label:

plugin.tx_form {
  settings {
    formDefinitionOverrides {
      <form-id> {
        renderables {
          0 {
            # Page
              renderables {
                fieldWithTranslationArguments {
                  renderingOptions {
                    translation {
                      arguments {
                        label {
                          0 = TEXT
                          0.typolink {
                            # Terms and conditions page, could be
                            # set also via TypoScript constants
                            parameter = 42
                            returnLast = url
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
   }
}
Copied!

The Page element of the form definition is not registered with a named key so a numeric key 0 is used which, as mentioned above, is prone to errors when more pages are added or reordered.

Finishers 

The same mechanism (YAML, YAML + TypoScript) works for finisher options:

finishers:
  finisherWithTranslationArguments:
    identifier: EmailToReceiver
    options:
      subject: My %s subject
      recipients:
        your.company@example.com: 'Your Company name'
        ceo@example.com: 'CEO'
      senderAddress: bar@example.org
      translation:
        translationFiles:
          10: path/to/locallang.xlf
        arguments:
          subject:
            - awesome
Copied!

This will produce My awesome subject.

Basic code components 

Basic code components

Basic code components

TYPO3\CMS\Form\Domain\Model\FormDefinition 

The class \TYPO3\CMS\Form\Domain\Model\FormDefinition encapsulates a complete form definition, with all of its

  • pages,
  • form elements,
  • validation rules, and
  • finishers which are executed when the form is submitted.

The FormDefinition domain model is not modified when the form is executed.

The anatomy of a form 

A FormDefinition domain model consists of multiple Page objects. When a form is displayed, only one Page is visible at a time. However, you can navigate back and forth between the pages. A Page consists of multiple FormElements which represent input fields, textareas, checkboxes, etc, on a page. The FormDefinition domain model, Page and FormElement objects have identifiers which must be unique for each <formElementTypeIdentifier>, i.e. the FormDefinition domain model and a FormElement object may have the same identifier but two FormElement objects cannot have the same identifier.

Example 

You can create a FormDefinition domain model by calling the API methods on it, or you can use a FormFactory to build the form from a different representation format such as YAML. The example below calls API methods to add a page to a FormDefinition and then to add an element to the page:

$formDefinition = GeneralUtility::makeInstance(FormDefinition::class, 'myForm');

$page1 = GeneralUtility::makeInstance(Page::class, 'page1');
$formDefinition->addPage($page);

// second argument is the <formElementTypeIdentifier> of the form element
$element1 = GeneralUtility::makeInstance(GenericFormElement::class, 'title', 'Text');
$page1->addElement($element1);
Copied!

Creating a form using abstract form element types 

You can use the TYPO3\CMS\Form\Domain\Model\FormDefinition::addPage() and TYPO3\CMS\Form\Domain\Model\FormElements\Page::addElement() methods as above and create the Page and FormElement objects manually, but it is often better to use the corresponding create methods ( TYPO3\CMS\Form\Domain\Model\FormDefinition::createPage() and TYPO3\CMS\Form\Domain\Model\FormElements\Page::createElement()). You only need to pass them an abstract <formElementTypeIdentifier> such as Text or Page and EXT:form will resolve the classname and set default values.

The simple example shown above can then be rewritten as follows:

// we will come back to this later on
$prototypeConfiguration = [];

$formDefinition = GeneralUtility::makeInstance(FormDefinition::class, 'myForm', $prototypeConfiguration);
$page1 = $formDefinition->createPage('page1');
$element1 = $page1->addElement('title', 'Text');
Copied!

You might wonder how the system knows that the element Text is implemented with a GenericFormElement. This is configured in the $prototypeConfiguration. To make the example from above actually work, we need to add some meaningful values to $prototypeConfiguration:

$prototypeConfiguration = [
    'formElementsDefinition' => [
        'Page' => [
            'implementationClassName' => 'TYPO3\CMS\Form\Domain\Model\FormElements\Page'
        ],
        'Text' => [
            'implementationClassName' => 'TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement'
        ],
    ],
];
Copied!

For each abstract <formElementTypeIdentifier>, we have to add some configuration. In the snippet above, we only define the implementation class name. Apart from that, it is always possible to set default values for all configuration options of such elements, as the following example shows:

$prototypeConfiguration = [
    'formElementsDefinition' => [
        'Page' => [
            'implementationClassName' => 'TYPO3\CMS\Form\Domain\Model\FormElements\Page',
            'label' => 'This is the label of the page if nothing else is specified'
        ],
        'Text' => [
            'implementationClassName' => 'TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement',
            'label' = >'Default Label',
            'defaultValue' => 'Default form element value',
            'properties' => [
                'placeholder' => 'Text that is shown if element is empty'
            ],
        ],
    ],
];
Copied!

Using pre-configured $prototypeConfiguration 

Often, it does not make sense to manually create the $prototypeConfiguration array. Bigger parts of this array are pre-configured in the extensions's YAML settings. The \TYPO3\CMS\Form\Domain\Configuration\ConfigurationService contains helper methods which return the ready-to-use :php$prototypeConfiguration.

Rendering a FormDefinition 

To trigger the rendering of a FormDefinition domain model, the current \TYPO3\CMS\Extbase\Mvc\Web\Request needs to be bound to the FormDefinition. This binding results in a \TYPO3\CMS\Form\Domain\Runtime\FormRuntime object which contains the Runtime State of the form. Among other things, this object includes the currently inserted values:

// $currentRequest needs to be available.
// Inside a controller, you would use $this->request
$form = $formDefinition->bind($currentRequest);
// now, you can use the $form object to get information about the currently entered values, etc.
Copied!

TYPO3\CMS\Form\Domain\Runtime\FormRuntime 

This class implements the runtime logic of a form, i.e. the class

  • decides which page is currently shown,
  • determines the current values of the form
  • triggers validation and property mappings.

You generally receive an instance of this class by calling TYPO3\CMS\Form\Domain\Model\FormDefinition::bind().

Rendering a form 

Rendering a form is easy. Just call render() on the FormRuntime:

$form = $formDefinition->bind($request);
$renderedForm = $form->render();
Copied!

Accessing form values 

In order to get the values the user has entered into the form, you can access the FormRuntime object like an array. If a form element with the identifier firstName exists, you can use $form['firstName'] to retrieve its current value. You can set values the same way.

Rendering internals 

The FormRuntime inquires the FormDefinition domain model regarding the configured renderer ( TYPO3\CMS\Form\Domain\Model\FormDefinition::getRendererClassName()) and then triggers render() on this Renderer.

This allows you to declaratively define how a form should be rendered.

prototypes:
  standard:
    formElementsDefinition:
      Form:
        rendererClassName: 'TYPO3\CMS\Form\Domain\Renderer\FluidFormRenderer'
Copied!

TYPO3\CMS\Form\Domain\Renderer\FluidFormRenderer 

This class is a \TYPO3\CMS\Form\Domain\Renderer\RendererInterface implementation which used to render a FormDefinition domain model. It is the default EXT:form renderer.

Learn more about the FluidFormRenderer Options.

Custom form element implementations 

PSR-14 events are available at crucial points in the life cycle of a FormElement. Most of the time, own class implementations are therefore unnecessary. A custom form element can be defined by:

  • writing some configuration, and
  • utilizing the standard implementation of \TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement .
prototypes:
  standard:
    formElementsDefinition:
      CustomFormElementIdentifier:
        implementationClassName: 'TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement'
Copied!

With the provided PSR-14 events, this FormElement can now be manipulated at runtime.

If you insist on your own implementation, the abstract class \TYPO3\CMS\Form\Domain\Model\FormElements\AbstractFormElement offers a perfect entry point. In addition, we recommend checking-out \TYPO3\CMS\Form\Domain\Model\Renderable\AbstractRenderable . All of your own form element implementations must be programmed to the interface \TYPO3\CMS\Form\Domain\Model\Renderable\RenderableInterface . It is a good idea to derive your implementation from \TYPO3\CMS\Form\Domain\Model\FormElements\AbstractFormElement .

"render" viewHelper 

The RenderViewHelper is the actual starting point for form rendering and not the typical Extbase Controller as you may know it.

For more technical insights read more about the viewHelper's arguments.

Render through FLUIDTEMPLATE (without controller) 

tt_content.custom_content_element = COA_INT
tt_content.custom_content_element {
  20 = FLUIDTEMPLATE
  20 {
    file = EXT:my_site_package/Resources/Private/Templates/CustomContentElement.html
    settings {
      persistenceIdentifier = EXT:my_site_package/Resources/Private/Forms/MyForm.yaml
    }
    extbase.pluginName = Formframework
    extbase.controllerExtensionName = Form
    extbase.controllerName = FormFrontend
    extbase.controllerActionName = perform
  }
}
Copied!

my_site_package/Resources/Private/Templates/CustomContentElement.html:

<formvh:render persistenceIdentifier="{settings.persistenceIdentifier}" />
Copied!

Render within your own Extbase extension 

It is straight forward. Use the RenderViewHelper like this and you are done:

<formvh:render persistenceIdentifier="EXT:my_site_package/Resources/Private/Forms/MyForm.yaml"/>
Copied!

Point the property controllerAction to the desired action name and provide values for the other parameters displayed below (you might need those).

type: Form
identifier: 'example-form'
label: 'TYPO3 is cool'
prototypeName: standard
renderingOptions:
  controllerAction: perform
  addQueryString: false
  argumentsToBeExcludedFromQueryString: []
  additionalParams: []

renderables:
  ...
Copied!

Build forms programmatically 

To learn more about this topic, head to the chapter 'Build forms programmatically' which is part of the API reference section.

Runtime manipulation 

EXT:form implements a decent amount of events that allow the manipulation of your forms during runtime. In this way, it is possible to, for example,

  • ... prefill form elements with values from your database,
  • ... skip a whole page based on the value of a certain form element,
  • ... mark a form element as mandatory depending of the chosen value of another form element.

Please check out the PSR-14 events overview for more details.

TypoScript overrides 

Each and every form definition can be overridden via TypoScript if the FormFrontendController of EXT:form is used to render the form. Normally, this is the case if the form has been added to the page using the form plugin or when rendering the form via FLUIDTEMPLATE.

The overriding of settings with TypoScript's help takes place after the custom finisher settings of the form plugin have been loaded. In this way, you are able to manipulate the form definition for a single page. In doing so, the altered form definition is passed to the RenderViewHelper which then generates the form programmatically. At this point, you can still change the form elements using the above-mentioned concept of hooks.

plugin.tx_form {
  settings {
    formDefinitionOverrides {
      <formDefinitionIdentifier> {
        renderables {
          0 {
            renderables {
              0 {
                label = TEXT
                label.value = Overridden label
              }
            }
          }
        }
      }
    }
  }
}
Copied!

Variants 

Basics 

A variant is an "alternative" form definition section that allows you to change properties of form elements, validators, and finishers. Variants are activated by conditions. This allows you to:

  • translate form element values depending on the frontend language
  • set and remove validators from one form element depending on the value of another form element
  • hide entire steps (form pages) depending on the value of a form element
  • set finisher options depending on the value of a form element
  • hide a form element in particular finishers and on the summary step

Form element variants can be defined statically in form definitions or created programmatically through an API. The variants defined in a form definition are applied to a form based on their conditions at runtime. Programmatically defined variants can be applied at any time.

Variant conditions can be evaluated programmatically at any time. However, some conditions are only available at runtime, for example, checking a form element value.

Custom conditions and operators can be easily added.

Only the form element properties listed in a variant are applied to the form element, all other properties are retained. An exception to this rule are finishers and validators. If finishers or validators are not defined in a variant, the original finishers and validators will be used. If at least one finisher or validator is defined in a variant, the original finishers and validators are overwritten by the finishers and validators in the variant.

Variants defined in a form definition are all processed and applied in the order of their matching conditions. This means if variant 1 sets the label of a form element to "X" and variant 2 sets the label to "Y", then variant 2 is applied, i.e. the label will be "Y".

Rendering option enabled 

The rendering option enabled is available for all finishers and form elements except the root form element and the first form page. The option accepts a boolean value ( true or false).

Setting a form element to enabled: true renders it in the frontend and enables processing of its values, including property mapping and validation. Setting enabled: false disables it in the frontend. All form elements and finishers except the root form element and the first form page can be enabled or disabled.

Setting a finisher to enabled: true executes it when the form is submitted. Setting enabled: false skips the finisher.

By default, enabled is set to true.

See examples below to learn more.

Definition of variants 

Variants are defined at the form element level in YAML. Here is an example of a text form element variant:

type: Text
identifier: text-1
label: Foo
variants:
  -
    identifier: variant-1
    condition: 'traverse(formValues, "checkbox-1") == 1'
    # If the condition matches, the label property of the form
    # element is set to the value 'Bar'
    label: Bar
Copied!

The identifier must be unique at the form element level.

Each variant has a single condition which applies the variant if the condition is satisfied. The properties in the variant are applied to the form element. In the example above the label of text-1 is changed to Bar if the checkbox checkbox-1 is checked.

The following properties can be overwritten by Form (the topmost element) variants:

  • label
  • renderingOptions
  • finishers
  • rendererClassName

The following properties can be overwritten by all other form element variants:

  • enabled
  • label
  • defaultValue
  • properties
  • renderingOptions
  • validators

Conditions 

The form framework uses the Symfony component expression language for conditions. An expression is a one-liner that returns a boolean value, for example, applicationContext matches "#Production/Local#". For further information see the Symfony docs. The form framework extends the expression language with variables to access form values and environment settings.

formRuntime (object) 

You can access every public method of \TYPO3\CMS\Form\Domain\Runtime\FormRuntime . Learn more here.

For example:

formRuntime.getIdentifier() == "test".

renderable (VariableRenderableInterface) 

renderable contains the instance of renderable that the condition is applied to. This can be used e.g. to access the identifier of the current renderable without having to duplicate it.

For example:

traverse(formValues, renderable.getIdentifier()) == "special value".

formValues (array) 

formValues holds all the submitted form element values. Each key in the array represents a form element identifier.

For example:

traverse(formValues, "text-1") == "yes".

stepIdentifier (string) 

stepIdentifier is set to the identifier of the current step.

For example:

stepIdentifier == "page-1".

stepType (string) 

stepType is set to the type of the current step.

For example:

stepType == "SummaryPage".

finisherIdentifier (string) 

finisherIdentifier is set to the identifier of the current finisher or an empty string (if no finishers are executed).

For example:

finisherIdentifier == "EmailToSender".

site (object) 

You can access every public method in \TYPO3\CMS\Core\Site\Entity\Site . The following are the most important ones:

  • getSettings() / The site settings array
  • getDefaultLanguage() / The default language object for the current site
  • getConfiguration() / The whole configuration of the current site
  • getIdentifier() / The identifier of the current site
  • getBase() / The base URL of the current site
  • getRootPageId() / The ID of the root page of the current site
  • getLanguages() / An array of available languages for the current site
  • getSets() / Configured site sets of a site (new in TYPO3 v13+)

For example:

site("settings").get("myVariable") == "something". site("rootPageId") == "42".

More details on the Site object can be found in Using site configuration in conditions.

siteLanguage (object) 

You can access every public method in \TYPO3\CMS\Core\Site\Entity\SiteLanguage . The most important ones are:

  • getLanguageId() / The sys_language_uid.
  • getLocale() / The language locale, for example 'en_US.UTF-8'.
  • getTypo3Language() / The language key for XLF files, for example, 'de' or 'default'.
  • getTwoLetterIsoCode() / Returns the ISO-639-1 language ISO code, for example, 'de'.

For example:

siteLanguage("locale").getName() == "de-DE".

applicationContext (string) 

applicationContext is set to the application context (@see GeneralUtility::getApplicationContext()).

For example:

applicationContext matches "#Production/Local#".

contentObject (array) 

contentObject contains the data of the current content object or an empty array if no content object is available.

For example:

contentObject["pid"] in [23, 42].

Working with variants programmatically 

Create a variant with conditions through the PHP API:

/** @var TYPO3\CMS\Form\Domain\Model\Renderable\RenderableVariantInterface $variant */
$variant = $formElement->createVariant([
    'identifier' => 'variant-1',
    'condition' => 'traverse(formValues, "checkbox-1") == 1',
    'label' => 'foo',
]);

Copied!

Get all the variants of a form element:

/** @var TYPO3\CMS\Form\Domain\Model\Renderable\RenderableVariantInterface[] $variants */
$variants = $formElement->getVariants();

Copied!

Apply a variant to a form element regardless of its conditions:

$formElement->applyVariant($variant);

Copied!

Examples 

Here are some more complex examples to show you what is possible with the form framework.

Translation of form elements 

In this example, form, page and text elements have variants so that they are translated differently depending on the frontend language (whether it is German or English).

type: Form
prototypeName: standard
identifier: contact-form
label: Kontaktformular
renderingOptions:
  submitButtonLabel: Senden
variants:
  -
    identifier: language-variant-1
    condition: 'siteLanguage("locale").getName() == "en-US"'
    label: Contact form
    renderingOptions:
      submitButtonLabel: Submit
renderables:
  -
    type: Page
    identifier: page-1
    label: Kontaktdaten
    renderingOptions:
      previousButtonLabel: zurück
      nextButtonLabel: weiter
    variants:
      -
        identifier: language-variant-1
        condition: 'siteLanguage("locale").getName() == "en-US"'
        label: Contact data
        renderingOptions:
          previousButtonLabel: Previous step
          nextButtonLabel: Next step
    renderables:
      -
        type: Text
        identifier: text-1
        label: Vollständiger Name
        properties:
          fluidAdditionalAttributes:
            placeholder: Ihre vollständiger Name
        variants:
          -
            identifier: language-variant-1
            condition: 'siteLanguage("locale").getName() == "en-US"'
            label: Full name
            properties:
              fluidAdditionalAttributes:
                placeholder: Your full name
Copied!

Adding validators dynamically 

In this example, the email-address field has a variant that adds validators if checkbox-1 is checked.

type: Form
prototypeName: standard
identifier: newsletter-subscription
label: Newsletter Subscription
renderables:
  -
    type: Page
    identifier: page-1
    label: General data
    renderables:
      -
        type: Text
        identifier: email-address
        label: Email address
        defaultValue:
        variants:
          -
            identifier: validation-1
            condition: 'traverse(formValues, "checkbox-1") == 1'
            properties:
              fluidAdditionalAttributes:
                required: required
            validators:
              -
                identifier: NotEmpty
              -
                identifier: EmailAddress
      -
        type: Checkbox
        identifier: checkbox-1
        label: Check this and email will be mandatory
Copied!

Hide form elements 

In this example, the form element email-address has been enabled explicitly but this can be left out as this is the default state. The form element text-3 has been disabled to (temporarily) remove it from the form. The field text-1 has a variant that hides it in all finishers and on the summary step. The EmailToSender finisher contains form values ( email-address and name). The EmailToSender finisher is only enabled if checkbox-1 has been checked by the user, otherwise it is skipped.

type: Form
prototypeName: standard
identifier: hidden-field-form
label: Hidden field form
finishers:
  -
    identifier: EmailToReceiver
    options:
      subject: Yes, I am ready
      recipients:
        your.company@example.com: 'Your Company name'
      senderAddress: tritum@example.org
      senderName: tritum@example.org
  -
    identifier: EmailToSender
    options:
      subject: This is a copy of the form data
      recipients:
        {email-address}: '{name}'
      senderAddress: tritum@example.org
      senderName: tritum@example.org
      renderingOptions:
        enabled: '{checkbox-1}'
renderables:
  -
    type: Page
    identifier: page-1
    label: General data
    renderables:
      -
        type: Text
        identifier: text-1
        label: A field hidden on confirmation step and in all mails (finishers)
        variants:
          -
            identifier: hide-1
            renderingOptions:
              enabled: false
            condition: 'stepType == "SummaryPage" || finisherIdentifier in ["EmailToSender", "EmailToReceiver"]'
      -
        type: Text
        identifier: email-address
        label: Email address
        properties:
          fluidAdditionalAttributes:
            required: required
        renderingOptions:
          enabled: true
      -
        type: Text
        identifier: text-3
        label: A temporarily disabled field
        renderingOptions:
          enabled: false
      -
        type: Checkbox
        identifier: checkbox-1
        label: Check this and the sender gets an email
  -
    type: SummaryPage
    identifier: summarypage-1
    label: Confirmation
Copied!

Hide steps 

In this example, the second step ( page-2) has a variant that disables it if checkbox-1 is checked. checkbox-1 has a variant which disables it on the summary step.

type: Form
prototypeName: standard
identifier: multi-step-form
label: Muli step form
renderables:
  -
    type: Page
    identifier: page-1
    label: First step
    renderables:
      -
        type: Text
        identifier: text-1
        label: A field
      -
        type: Checkbox
        identifier: checkbox-1
        label: Check this and the next step will be skipped
        variants:
          -
            identifier: variant-1
            condition: 'stepType == "SummaryPage"'
            renderingOptions:
              enabled: false
  -
    type: Page
    identifier: page-2
    label: Second step
    variants:
      -
        identifier: variant-2
        condition: 'traverse(formValues, "checkbox-1") == 1'
        renderingOptions:
          enabled: false
    renderables:
      -
        type: Text
        identifier: text-2
        label: Another field
  -
    type: SummaryPage
    identifier: summarypage-1
    label: Confirmation
Copied!

Set finisher values dynamically 

In this example, the form has a variant so that the finisher has different values depending on the application context.

type: Form
prototypeName: standard
identifier: finisher-condition-example
label: Finishers under condition
finishers:
  -
    identifier: Confirmation
    options:
      message: I am NOT a local environment.
variants:
  -
    identifier: variant-1
    condition: 'applicationContext matches "#Production/Local#"'
    finishers:
      -
        identifier: Confirmation
        options:
          message: I am a local environment.
renderables:
  -
    type: Page
    identifier: page-1
    label: General data
    renderables:
      -
        type: Text
        identifier: text-1
        label: A field
Copied!

Remove select options 

In this example, a select form element has a variant which removes an option for a specific locale.

type: Form
prototypeName: standard
identifier: option-remove-example
label: Options removed under condition
renderables:
  -
    type: Page
    identifier: page-1
    label: Step
    renderables:
      -
        identifier: salutation
        type: SingleSelect
        label: Salutation
        properties:
          options:
            '': '---'
            mr: Mr.
            mrs: Mrs.
            miss: Miss
        defaultValue: ''
        variants:
          -
            identifier: salutation-variant
            condition: 'siteLanguage("locale").getName() == "zh-CN"'
            properties:
              options:
                miss: __UNSET
Copied!

Adding your own expression language providers 

You can extend the expression language with your own custom functions. For more information see the official docs and the appropriate TYPO3 implementation details.

Register your own expression language provider class in Configuration/ExpressionLanguage.php and create it, making sure it implements \Symfony\Component\ExpressionLanguage\ExpressionFunctionProviderInterface.

EXT:some_extension/Configuration/ExpressionLanguage.php
return [
    'form' => [
        Vendor\MyExtension\ExpressionLanguage\CustomExpressionLanguageProvider::class,
    ],
];
Copied!

Adding your own expression language variables 

You can extend the expression language with your own variables. These variables can be used in conditions.

Register your own expression language provider class in Configuration/ExpressionLanguage.php as above and and create it as follows:

EXT:some_extension/Classes/ExpressionLanguage/CustomExpressionLanguageProvider.php
class CustomExpressionLanguageProvider extends AbstractProvider
{
    public function __construct()
    {
        $this->expressionLanguageVariables = [
            'variableA' => 'valueB',
        ];
    }
}
Copied!

Validators 

The form framework ships a set of server-side validators (derived from Extbase validators) which you can use in form elements. Some validators can only be used for certain elements, e.g. the "Date range validator" can only be used for "Date" elements. Some form elements (like "Email") come with validators.

You can define your own validation error messages using the validationErrorMessages property. These error messages can also be set in the form editor.

Client-side validation 

In the form framework, HTML 5-based frontend validation can be added to form elements, but JavaScript validation is not included. The TYPO3 core have no plans to add this functionality at the current time. However, you can add it yourself if required. Examples of reliable and well-maintained projects are Parsley and jQuery Validation.

Localization of client side validation 

Display of validation messages is browser-specific and not generated by TYPO3 so these messages cannot easily be changed. However, you can use JavaScript to change validation messages. See Stack Overflow for more information.

Server-side validation 

Alphanumeric validator ( Alphanumeric) 

The "Alphanumeric validator" checks for alphanumeric strings. Alphanumeric is defined as a combination of alphabetic and numeric characters [A-Z + 0-9].

Number of submitted values validator ( Count) 

The "Number of submitted values validator" checks if a value contains a specific number of elements. The validator has two options:

  • Minimum [ options.minimum]: The minimum count to accept.
  • Maximum [ options.maximum]: The maximum count to accept.

Date range validator ( DateRange) 

The "Date range validator" checks if a value is a valid DateTime object and within a specified date range. The range can be defined by providing a minimum and/or maximum date. The validator has two options:

  • Format [ options.format]: The format of the minimum and maximum option. Default: [ Y-m-d].
  • Minimum date [ options.minimum]: The minimum date formatted as Y-m-d.
  • Maximum date [ options.maximum]: The maximum date formatted as Y-m-d.

The options minimum and maximum must have the format 'Y-m-d' which represents the RFC 3339 'full-date' format.

The input must be a DateTime object. This input can be tested against a minimum date and a maximum date. The minimum date and the maximum date are strings. The minimum and maximum date can be configured through the validator options.

Date/time validator ( DateTime) 

The "Date/time validator" checks if a value is a valid DateTime object. The date string is expected to be formatted according to the W3C standard which is YYYY-MM-DDT##:##:##+##:##, for example 2005-08-15T15:52:01+00:00.

Email validator ( EmailAddress) 

The "Email validator" checks if a value is a valid email address. The format of a valid email address is defined in RFC 3696. This standard allows international characters and multiple @ signs.

File size validator ( FileSize) 

The "File size validator" validates the size of a file resource. The validator has two options:

  • Minimum [ options.minimum]: The minimum file size. Use the format <size>B|K|M|G. For example: 10M is 10 Megabytes.
  • Maximum [ options.maximum]: The maximum file size. Use the format <size>B|K|M|G. For example: 10M is 10 Megabytes.

Use the format <size>B|K|M|G for file size, for example, 10M is 10 megabytes. Note: the maximum file size also depends on the php.ini settings of your environment.

Floating-point number validator ( Float) 

The "Floating-point number validator" checks if a value is of type float or a string matching the regular expression [0-9.e+-].

Integer number validator ( Integer) 

The "Integer number validator" checks if a value is a valid integer.

Empty validator ( NotEmpty) 

The "Empty validator" checks if a value is not empty (i.e. equal to NULL, empty string, empty array or empty object).

Number validator ( Number) 

The "Number validator" checks if a value is a number.

Number range validator ( NumberRange) 

The "Number range validator" checks if a value is a number in a specified range. The validator has two options:

  • Minimum [ options.minimum]: The minimum value.
  • Maximum [ options.maximum]: The maximum value.

Regular expression validator ( RegularExpression) 

The "Regular expression validator" checks if a value matches a specified regular expression. Delimiters or modifiers are not supported. The validator has one option:

  • Regular expression [ options.regularExpression]: The regular expression to use for validation, used as given.

As an example, a user submits a domain name and the submitted value should only contain the second and the top level domain, i.e. "typo3.org" instead of "https://typo3.org". The regular expression for this would be /^[-a-z0-9]+.[a-z]{2,6}$/.

String length validator ( StringLength) 

The "String length validator" checks if a value is a valid string and its length is within a specified range. The validator has two options:

  • Minimum [ options.minimum]: The minimum length of a valid string.
  • Maximum [ options.maximum]: The maximum length of a valid string.

Non-XML text validator ( Text) 

The "Non-XML text validator" checks if a value is a valid piece of text (containing no XML tags). This basically means that tags are stripped out. In this special case quotes are not encoded (see filter_var() for more information.

Be aware that the value of this check entirely depends on the output context. The validated text is not expected to be secure. If you want to be sure of that, use a customized regular expression or filter on output.

Translation of validation messages 

To learn more about this topic, see here.

Custom validator implementations 

Validators belong to configuration prototypes in a validatorsDefinition. Set the implementationClassName property of the prototype to your own validator classes.

prototypes:
  standard:
    validatorsDefinition:
      Custom:
        implementationClassName: 'VENDOR\MySitePackage\Domain\Validation\CustomValidator'
Copied!

Add options to your validator and provide a default value yourCustomOption:

prototypes:
  standard:
    validatorsDefinition:
      Custom:
        implementationClassName: 'VENDOR\MySitePackage\Domain\Validation\CustomValidator'
        options:
          yourCustomOption: 'Jurian'
Copied!

You can override the default value in your form definition:

identifier: sample-form
label: 'Simple Contact Form'
prototype: standard
type: Form

renderables:
  -
    identifier: subject
    label: 'Name'
    type: Text
    validators:
      -
        identifier: Custom
        options:
          yourCustomOption: 'Mathias'
Copied!

As mentioned above, EXT:form uses Extbase validators. That said, your own validators should extend \TYPO3\CMS\Extbase\Validation\Validator\AbstractValidator . Read more in "TYPO3 Explained": Custom Extbase validator implementation.

Finishers: post-submission actions for forms 

When a form has been submitted in TYPO3, finishers decide what happens next - sending an email, redirecting to another page, or showing a confirmation message. This page gives you a quick tour of built-in finishers. For more details, see Finisher Options.

There is also a dedicated chapter on translations of finisher options.

Finisher execution order 

If you are using the redirect finisher, make sure it is the last finisher that is executed. The redirect finisher stops the execution of all subsequent finishers in order to perform a redirect. Finishers that are defined after a redirect finisher will be ignored.

identifier: contact
type: Form
prototypeName: standard
finishers:
  -
    identifier: EmailToSender
    options:
      subject: 'Your Message: {message}'
      ## ...
  -
    identifier: DeleteUploads
  -
    # Attention! The Redirect finisher stops the execution of all finishers
    identifier: Redirect
    options:
      pageUid: 1
      additionalParameters: 'param1=value1&param2=value2'
Copied!

Ready-to-use finishers 

The TYPO3 Form Framework provides several built-in finishers that can be used out of the box. These handle common post submission tasks such as sending emails, showing confirmation messages, and saving data.

In addition, third-party extensions may provide further finishers, which can be found in the TYPO3 Extension Repository (TER).

Closure finisher 

Executes a custom PHP closure after a successful submission—use for ad-hoc logic without creating a full class.

Confirmation finisher 

Renders a confirmation/thank-you message (or view) once the form is submitted.

DeleteUploads finisher 

Removes files uploaded during the submission—useful if after emailing them you don’t want to keep the files on the server.

Email finisher 

Sends an email with the submitted data; supports Fluid templates and placeholders for field values.

Flash message finisher 

Shows a flash message to the user after submit (e.g., success or info notice).

Redirect finisher 

Redirects to another page or route after submit; must be last finisher since it stops subsequent finishers.

SaveToDatabase finisher 

Persists submitted form values to a database table according to your mapping/configuration.

Closure finisher 

The "Closure finisher" can only be used in programmatically-created forms. It allows you to execute your own finisher code without implementing/ declaring a finisher.

Closure finisher option 

closure

closure
Type
?Closure
Required

true

Default
null

The name of the field as shown in the form.

Using the closure finisher programmatically 

This finisher can only be used in programmatically-created forms. It allows you to execute your own finisher code without implementing/ declaring a finisher.

Code example:

<?php

use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Form\Domain\Finishers\ClosureFinisher;
use TYPO3\CMS\Form\Domain\Model\FormDefinition;

class SomeClass
{
    private function addClosureFinisher(FormDefinition $formDefinition)
    {

        $closureFinisher = GeneralUtility::makeInstance(ClosureFinisher::class);
        $closureFinisher->setOption('closure', function ($finisherContext)
        {
            $formRuntime = $finisherContext->getFormRuntime();
            // ...
        });
        $formDefinition->addFinisher($closureFinisher);
    }
}
Copied!

This finisher is implemented in \TYPO3\CMS\Form\Domain\Finishers\ClosureFinisher .

Confirmation finisher 

A basic finisher that outputs a text or content element.

Confirmation finisher options 

This finisher outputs a text or a content element after the form has been submitted.

The settings of the finisher are:

message

message
Type
string
Default
The form has been submitted.

Displays this text if the contentElementUid is not set.

contentElementUid

contentElementUid
Type
int
Default
0

Renders the content element with the supplied ID.

translation.propertiesExcludedFromTranslation

translation.propertiesExcludedFromTranslation
Type
array
Default
[]

Defines a list of finisher option properties that should be excluded from translation.

When specified, the listed properties are not processed by the TranslationService during translation of finisher options. This prevents their values from being replaced by translated equivalents, even if translations exist for those options.

This option is usually generated automatically as soon as FlexForm overrides are in place and normally does not need to be set manually in the form definition.

See Skip translation of overridden form finisher options for an example.

Confirmation finisher in the YAML form definition 

A basic finisher that outputs text or a content element.

Outputs text message:

public/fileadmin/forms/my_form.yaml
identifier: example-form
label: 'example'
type: Form

finishers:
  -
    identifier: Confirmation
    options:
      message: 'Thx for using TYPO3'
  # ...
Copied!

Outputs content element with id 42:

public/fileadmin/forms/my_form.yaml
identifier: example-form
label: 'example'
type: Form

finishers:
  -
    identifier: Confirmation
    options:
      contentElementUid: 42
  #...
Copied!

Skip translation of overridden form finisher options 

The following is an example of the translation.propertiesExcludedFromTranslation option being used to exclude three properties (subject, recipients and format) from translation.

Using this translation option, the properties can only be overridden by a FlexForm, not by the TranslationService .

This option is automatically generated as soon as FlexForm overrides are in place.

The following syntax is only documented for completeness. Nonetheless, it can also be added to a form definition YAML file.

public/fileadmin/forms/my_form.yaml
identifier: example-form
label: 'example'
type: Form

finishers:
  -
    options:
      identifier: EmailToSender
      subject: 'Email to sender'
      recipients:
        recipient@example.org: 'Some Name'
      translation:
        propertiesExcludedFromTranslation:
          - subject
          - recipients
          - format
  # ...
Copied!

Using the confirmation finisher in PHP code 

Developers can use the finisher key Confirmation to create confirmation finishers in their own classes:

<?php

use TYPO3\CMS\Form\Domain\Model\FormDefinition;

class SomeClass
{
    private function addConfirmationnFinisherWithMessage(FormDefinition $formDefinition, string $message)
    {
        $formDefinition->createFinisher('Confirmation', [
            'message' => $message,
        ]);
    }
    private function addConfirmationnFinisherWithContentElement(FormDefinition $formDefinition, int $contentElementUid)
    {
        $formDefinition->createFinisher('Confirmation', [
            'contentElementUid' => $contentElementUid,
        ]);
    }
}
Copied!

Th confirmation finisher is implemented in \TYPO3\CMS\Form\Domain\Finishers\ConfirmationFinisher .

DeleteUploads finishers 

The "DeleteUploads finisher" removes files that have been submitted. You can use this finisher after the email finisher if you do not want to keep the files in your TYPO3 installation.

DeleteUploads finisher in the YAML form definition 

Use this finisher after the email finisher if you do not want to keep the files in your TYPO3 installation.

Finishers are executed in the order they are listed in the form definition YAML file:

public/fileadmin/forms/my_form.yaml
identifier: example-form
label: 'example'
type: Form

finishers:
  -
    identifier: EmailToSender
    options:
      subject: 'Your Message: {message}'
  -
    identifier: DeleteUploads
    # Define the delete uploads finisher AFTER the email finisher
# ...
Copied!

Using the DeleteUploads finisher in PHP code 

Developers can use the finisher key DeleteUploads to create deleteuploads finishers in their own classes:

<?php

use TYPO3\CMS\Form\Domain\Model\FormDefinition;

class SomeClass
{
    private function addDeleteUploadsFinisherWithMessage(FormDefinition $formDefinition, string $message)
    {
        $formDefinition->createFinisher('DeleteUploads');
    }
}
Copied!

This finisher is implemented in \TYPO3\CMS\Form\Domain\Finishers\DeleteUploadsFinisher .

Email finisher 

The EmailFinisher sends an email to one recipient. EXT:form has two EmailFinishers with the identifiers EmailToReceiver and EmailToSender.

Using email finishers in the backend form editor 

Editors can use two email finishers in the backend form editor:

Email to sender (form submitter)
This finisher sends an email with the contents of the form to the user submitting the form .
Email to receiver (you)
This finisher sends an email with the contents of the form to the owner of the website. The settings of this finisher are the same as the "Email to sender" finisher

Options of the email finisher 

Subject [subject]

Subject [subject]
Type
string
Required

true

Subject of the email.

Recipients [recipients]

Recipients [recipients]
Type
array
Required

true

Email addresses and names of the recipients (To).

Email Address
Email address of a recipient, e.g. "some.recipient@example.com" or "{email-1}".
Name
Name of a recipient, e.g. "Some Recipient" or "{text-1}".

Sender address [senderAddress]

Sender address [senderAddress]
Type
string
Required

true

Email address of the sender, for example "your.company@example.org".

If smtp is used, this email address needs to be allowed by the SMTP server. Use replyToRecipients if you want to enable the receiver to reply to the message.

Sender name [senderName]

Sender name [senderName]
Type
string
Default
''

Name of the sender, for example "Your Company".

Reply-to Recipients [replyToRecipients]

Reply-to Recipients [replyToRecipients]
Type
array
Default
[]

Email address which will be used when someone replies to the email.

Email Address:
Email address for reply-to.
Name
Name for reply-to.

CC Recipient [carbonCopyRecipients]

CC Recipient [carbonCopyRecipients]
Type
array
Default
[]

Email address to which a copy of the email is sent. The information is visible to all other recipients.

Email Address:
Email address for CC.
Name
Name for CC.

BCC Recipients [blindCarbonCopyRecipients]

BCC Recipients [blindCarbonCopyRecipients]
Type
array
Default
[]

Email address to which a copy of the email is sent. The information is not visible to any of the recipients.

Email Address:
Email address for BCC.
Name
Name for BCC.

Add HTML part [addHtmlPart]

Add HTML part [addHtmlPart]
Type
bool
Default
true

If set, emails will contain plaintext and HTML, otherwise only plaintext. In this way, HTML can be disabled and plaintext-only emails enforced.

Attach uploads [attachUploads]

Attach uploads [attachUploads]
Type
bool
Default
true

If set, all uploaded items are attached to the email.

Title [title]

Title [title]
Type
string
Default
undefined

The title shown in the email.

Translation language [translation.language]

Translation language [translation.language]
Type
string
Default
undefined

If not set, the finisher options are translated depending on the current frontend language (if translations exist). This option allows you to force translations for a given language isocode, e.g. da or de. See Translate finisher options.

Additional email finisher options 

Additional options can be set in the form definition YAML and programmatically in the options array but not in the backend editor:

Properties excluded from translation [translation.propertiesExcludedFromTranslation]

Properties excluded from translation [translation.propertiesExcludedFromTranslation]
Type
array
Default
undefined

If not set, the finisher options are translated depending on the current frontend language (if translations exists). This option allows you to force translations for a given language isocode, e.g 'da' or 'de'. See Translate finisher options. It will be skipped for all specified finisher options.

translation.translationFiles

translation.translationFiles
Type
array
Default
undefined

If set, this translation file(s) will be used for finisher option translations. If not set, the translation file(s) from the Form element will be used. Read Translate finisher options.

layoutRootPaths

layoutRootPaths
Type
array
Default
undefined

Fluid layout paths.

partialRootPaths

partialRootPaths
Type
array
Default
undefined

Fluid partial paths.

templateRootPaths

templateRootPaths
Type
array
Default
undefined

Fluid template paths; all templates get the current FormRuntime assigned as form and the FinisherVariableProvider assigned as finisherVariableProvider.

variables

variables
Type
array
Default
undefined

Associative array of variables which are available inside the Fluid template.

Email finishers in the YAML form definition 

This finisher sends an email to one recipient. EXT:form has two email finishers with identifiers EmailToReceiver and EmailToSender.

public/fileadmin/forms/my_form.yaml
identifier: example-form
label: 'example'
type: Form

finishers:
  -
    identifier: EmailToReceiver
    options:
      subject: 'Your message'
      recipients:
        your.company@example.com: 'Your Company name'
        ceo@example.com: 'CEO'
      senderAddress: 'form@example.com'
      senderName: 'form submitter'
Copied!

Using Email finishers in PHP code 

Developers can create a confirmation finisher by using the key EmailToReceiver or EmailToSender.

<?php

use TYPO3\CMS\Form\Domain\Model\FormDefinition;

class SomeClass
{
    private function addEmailToReceiverFinisher(FormDefinition $formDefinition)
    {
        $formDefinition->createFinisher('EmailToReceiver', [
            'subject' => 'Your message',
            'recipients' => [
                'your.company@example.com' => 'Your Company name',
                'ceo@example.com' => 'CEO'
            ],
            'senderAddress' => $GLOBALS['TYPO3_CONF_VARS']['MAIL']['defaultMailFromAddress'],
            'senderName' => $GLOBALS['TYPO3_CONF_VARS']['MAIL']['defaultMailFromName'],
        ]);
    }
}
Copied!

This finisher is implemented in \TYPO3\CMS\Form\Domain\Finishers\EmailFinisher .

Working with BCC recipients 

Email finishers can work with different recipient types, including Carbon Copy (CC) and Blind Carbon Copy (BCC). Depending on the configuration of your server and TYPO3 instance, it may not be possible to send emails to BCC recipients. The $GLOBALS['TYPO3_CONF_VARS']['MAIL']['transport_sendmail_command'] configuration value is important here. As documented in CORE API, TYPO3 recommends using the parameter -bs (instead of -t -i) with sendmail. The parameter -bs tells TYPO3 to use the SMTP standard so that BCC recipients are properly set. Symfony also mentions the -t parameter problem. Since TYPO3 7.5 (#65791) the transport_sendmail_command is automatically set from the PHP runtime configuration and saved. If you have problems sending emails to BCC recipients, this could be the solution.

About FluidEmail 

Changed in version 12.0

The EmailFinisher always sends email via FluidEmail.

The FluidEmail finisher allows emails to be sent in a standardized way.

The finisher has an option property title that adds an email title to the default FluidEmail template. Variables can be used in options using the bracket syntax. These variables can be overwritten by FlexForm configuration in the form plugin

Use these options to customize the fluid templates:

  • templateName: The template name (for both HTML and plaintext, without the extension)
  • templateRootPaths: The paths to the templates
  • partialRootPaths: The paths to the partials
  • layoutRootPaths: The paths to the layouts

Here is an example finisher configuration:

public/fileadmin/forms/my_form_with_email_finisher.yaml
identifier: contact
type: Form
prototypeName: standard
finishers:
  -
    identifier: EmailToSender
    options:
      subject: 'Your Message: {message}'
      title: 'Hello {name}, your confirmation'
      templateName: ContactForm
      templateRootPaths:
        100: 'EXT:my_site_package/Resources/Private/Templates/Email/'
      partialRootPaths:
        100: 'EXT:my_site_package/Resources/Private/Partials/Email/'
      addHtmlPart: true
Copied!

These template files must exist:

  • EXT:my_site_package/Resources/Private/Templates/Email/ContactForm.html
  • EXT:my_site_package/Resources/Private/Templates/Email/ContactForm.txt

FlashMessage finisher 

The "FlashMessage finisher" is a basic finisher that adds a message to the FlashMessageContainer.

FlashMessage finisher options 

The following options can be set (in the form definition YAML or programmatically):

messageBody

messageBody
Type
string
Required

true

The flash message. May contain placeholders like %s that are replaced with messageArguments.

messageTitle

messageTitle
Type
string
Default
''

If set, is the flash message title.

messageArguments

messageArguments
Type
array
Default
[]

If messageBody contains placeholders (like %s), they will be replaced by these.

messageCode

messageCode
Type
?int
Default
null

A unique code to identify the message. By convention, the unix time stamp at the time when the message is created is used, for example 1758455932.

severity

severity
Type
\TYPO3\CMS\Core\Type\ContextualFeedbackSeverity
Default
ContextualFeedbackSeverity::OK

The severity influences the display (color and icon) of the flash message.

translation.propertiesExcludedFromTranslation

translation.propertiesExcludedFromTranslation
Type
array
Default
[]

Defines a list of finisher option properties to be excluded from translation.

If set, these properties will not be processed by the TranslationService during translation of finisher options. This prevents their values from being replaced by translated equivalents, even if translations exist for those options.

This option is usually generated automatically as soon as FlexForm overrides are in place and normally does not need to be set manually in the form definition.

See Skip translation of overridden form finisher options for an example.

FlashMessage finisher in a YAML form definition 

public/fileadmin/forms/my_form.yaml
identifier: example-form
label: 'example'
type: Form

finishers:
  -
    identifier: FlashMessage
    options:
      messageTitle: 'Merci'
      messageCode: 201905041245
      messageBody: 'Thx for using %s'
      messageArguments:
        - 'TYPO3'
      severity: 0
Copied!

Using FlashMessage finishers in PHP code 

Developers can use the finisher key FlashMessage to create flash message finishers in their own classes:

<?php

use TYPO3\CMS\Core\Type\ContextualFeedbackSeverity;
use TYPO3\CMS\Form\Domain\Model\FormDefinition;

class SomeClass
{
    private function addFlashMessageFinisher(FormDefinition $formDefinition, string $message)
    {
        $formDefinition->createFinisher('FlashMessage', [
            'messageTitle' => 'Merci',
            'messageCode' => 201905041245,
            'messageBody' => 'Thx for using %s',
            'messageArguments' => ['TYPO3'],
            'severity' => ContextualFeedbackSeverity::OK,
        ]);
    }
}
Copied!

This finisher is implemented in \TYPO3\CMS\Form\Domain\Finishers\FlashMessageFinisher .

Redirect finisher 

This finisher redirects the user to a particular page after the form has been submitted. Parameters can be added to the URL.

Redirect finisher options 

Page: [pageUid]

Page: [pageUid]
Type
int
Required

true

Default
1

ID of the page to redirect to. Button Page can be used to select a page from the page tree.

Additional parameters: [additionalParameters]

Additional parameters: [additionalParameters]
Type
string
Default
''

URL parameters which will be appended to the URL.

URL fragment: [fragment]

URL fragment: [fragment]
Type
string
Default
''

ID of a content element identifier or a custom fragment identifier. This will be appended to the URL and used as section anchor.

Adds a fragment (e.g. #c9 or #foo) to the redirect link. The # character can be omitted.

Additional redirect finisher options 

These options can be set in the form definition YAML or programmatically in the options array. They cannot be set in the backend form editor:

delay

delay
Type
int
Default
0

The redirect delay in seconds.

statusCode

statusCode
Type
int
Default
303

The HTTP status code for the redirect. Default is "303 See Other".

translation.propertiesExcludedFromTranslation

translation.propertiesExcludedFromTranslation
Type
array
Default
[]

Defines a list of finisher option properties to be excluded from translation.

If set, these properties are not processed by the TranslationService during translation. This prevents their values from being replaced by translated equivalents, even if translations exist for those options.

This option is usually generated automatically shen FlexForm overrides are in place and normally does not need to be set manually in the form definition.

See Skip translation of overridden form finisher options for an example.

Redirect finisher in a YAML form definition 

public/fileadmin/forms/my_form.yaml
identifier: example-form
label: 'example'
type: Form

finishers:
  -
    identifier: Redirect
    options:
      pageUid: 1
      additionalParameters: 'param1=value1&param2=value2'
Copied!

Example: Load the redirect finisher last 

public/fileadmin/forms/my_form_with_multiple_finishers.yaml
identifier: contact
type: Form
prototypeName: standard
finishers:
  -
    identifier: EmailToSender
    options:
      subject: 'Your Message: {message}'
      ## ...
  -
    identifier: DeleteUploads
  -
    # Attention! The Redirect finisher stops the execution of all finishers
    identifier: Redirect
    options:
      pageUid: 1
      additionalParameters: 'param1=value1&param2=value2'
Copied!

Using a Redirect finisher in PHP code 

Developers can use the finisher key Redirect to create redirect finishers in their own classes:

<?php

use TYPO3\CMS\Form\Domain\Model\FormDefinition;

class SomeClass
{
    private function addRedirectFinisher(FormDefinition $formDefinition)
    {
        $formDefinition->createFinisher('Redirect', [
            'pageUid' => 1,
            'additionalParameters' => 'param1=value1&param2=value2',
        ]);
    }
}
Copied!

This finisher is implemented in \TYPO3\CMS\Form\Domain\Finishers\RedirectFinisher .

SaveToDatabase finisher 

The "SaveToDatabase finisher" saves data from a submitted form into a database table.

SaveToDatabase finisher options 

The finisher options can be set in the form definition YAML file or programmatically:

table

table
Type
string
Required

true

Insert or update values in this table.

mode

mode
Type
string
Default
'insert'
insert
will create a new database row with the values from the submitted form and/or some predefined values. See also elements and databaseColumnMappings.
update
will update a database row with the values from the submitted form and/or some predefined values. In this case whereClause is required.

whereClause

whereClause
Type
array
Required

true

Default
[]

The where clause for a database update action.

elements

elements
Type
array
Required

true

Use options.elements to map form element values to database columns (they must exist). Each key in options.elements has to match a form element identifier. The value of each key in options.elements is an array containing additional information.

elements.<formElementIdentifier>.mapOnDatabaseColumn

elements.<formElementIdentifier>.mapOnDatabaseColumn
Type
string
Required

true

The value from the submitted form element with the identifier <formElementIdentifier> will be written into this database column.

elements.<formElementIdentifier>.skipIfValueIsEmpty

elements.<formElementIdentifier>.skipIfValueIsEmpty
Type
bool
Default
false

Set this to true if the database column should not be written if the value from the submitted form element with the identifier <formElementIdentifier> is empty (e.g. for password fields). Empty means strings without content, whitespace is valid content.

elements.<formElementIdentifier>.hashed

elements.<formElementIdentifier>.hashed
Type
bool
Default
false

Set this to true if the value from the submitted form element should be hashed before writing into the database.

elements.<formElementIdentifier>.saveFileIdentifierInsteadOfUid

elements.<formElementIdentifier>.saveFileIdentifierInsteadOfUid
Type
bool
Default
false

By default, the uid of the FAL object will be written into the database column. Set this to true if you want to store the FAL identifier (e.g. 1:/user_uploads/some_uploaded_pic.jpg) instead.

This only applies for form elements which create a FAL object like FileUpload or ImageUpload.

elements.<formElementIdentifier>.dateFormat

elements.<formElementIdentifier>.dateFormat
Type
string
Default
'U'

If the internal datatype is \DateTime (true for the form element types DatePicker and Date), the object needs to be converted into a string. This option defines the format of the date. You can use any format accepted by the PHP date() function. Default is 'U' (Unix timestamp).

databaseColumnMappings

databaseColumnMappings
Type
array
Default
[]

Use this to map database columns to values. Each key within options.databaseColumnMappings has to match an existing database column. Each value in options.databaseColumnMappings is an array with additional information.

This mapping is done before elements are mapped. If you map both, the value from elements will override the databaseColumnMappings.<databaseColumnName>.value.

databaseColumnMappings.<databaseColumnName>.value

databaseColumnMappings.<databaseColumnName>.value
Type
string
Required

true

The value which will be written to the database column. You can also use the FormRuntime accessor feature to access properties from the FormRuntime, e.g. {<formElementIdentifier>}.

databaseColumnMappings.<databaseColumnName>.skipIfValueIsEmpty

databaseColumnMappings.<databaseColumnName>.skipIfValueIsEmpty
Type
bool
Default
false

Set this to true if the database column should not be written if the value from databaseColumnMappings.<databaseColumnName>.value is empty.

translation.propertiesExcludedFromTranslation

translation.propertiesExcludedFromTranslation
Type
array
Default
[]

Defines a list of finisher option properties to be excluded from translation.

If set, these properties are not processed by the TranslationService during translation. This prevents the values from being replaced by translated equivalents, even if translations exist for those options.

This option is usually generated when FlexForm overrides exist and normally does not need to be set manually in the form definition.

See Skip translation of overridden form finisher options for an example.

SaveToDatabase finisher in a YAML form definition 

This finisher saves data from a submitted form into a database table.

public/fileadmin/forms/my_form.yaml
identifier: example-form
label: 'example'
type: Form

finishers:
  -
    identifier: SaveToDatabase
    options:
      table: 'fe_users'
      mode: update
      whereClause:
        uid: 1
      databaseColumnMappings:
        tstamp:
          value: '{__currentTimestamp}'
        pid:
          value: 1
      elements:
        textfield-identifier-1:
          mapOnDatabaseColumn: 'first_name'
        textfield-identifier-2:
          mapOnDatabaseColumn: 'last_name'
        textfield-identifier-3:
          mapOnDatabaseColumn: 'username'
        advancedpassword-1:
          mapOnDatabaseColumn: 'password'
          skipIfValueIsEmpty: true
          hashed: true
Copied!

Using a SaveToDatabase finisher in PHP code 

Developers can use the finisher key SaveToDatabase to create flash message finishers in their own classes:

<?php

use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Form\Domain\Finishers\ClosureFinisher;
use TYPO3\CMS\Form\Domain\Model\FormDefinition;
class SomeClass
{
    private function addDeleteUploadsFinisherWithMessage(FormDefinition $formDefinition, string $message)
    {
        $formDefinition->createFinisher('SaveToDatabase', [
            'table' => 'fe_users',
            'mode' => 'update',
            'whereClause' => [
                'uid' => 1,
            ],
            'databaseColumnMappings' => [
                'pid' => ['value' => 1],
            ],
            'elements' => [
                'textfield-identifier-1' => ['mapOnDatabaseColumn' => 'first_name'],
                'textfield-identifier-2' => ['mapOnDatabaseColumn' => 'last_name'],
                'textfield-identifier-3' => ['mapOnDatabaseColumn' => 'username'],
                'advancedpassword-1' => [
                    'mapOnDatabaseColumn' => 'password',
                    'skipIfValueIsEmpty' => true,
                    'hashed' => true
                ],
            ],
        ]);
    }
}
Copied!

This finisher is implemented in \TYPO3\CMS\Form\Domain\Finishers\SaveToDatabaseFinisher .

Multiple database operations 

You can use options to perform multiple database operations.

Example form definition file (performs inserts):

public/fileadmin/forms/my_form_with_multiple_finishers.yaml
-
  identifier: SaveToDatabase
  options:
    -
      table: tx_news_domain_model_news
      mode: insert
      elements:
        my-field:
          mapOnDatabaseColumn: bodytext
        imageupload-1:
          mapOnDatabaseColumn: fal_media
        fileupload-1:
          mapOnDatabaseColumn: fal_related_files
      databaseColumnMappings:
        pid:
          value: 3
        tstamp:
          value: '{__currentTimestamp}'
        datetime:
          value: '{__currentTimestamp}'
        crdate:
          value: '{__currentTimestamp}'
        hidden:
          value: 1
    -
      table: sys_file_reference
      mode: insert
      elements:
        imageupload-1:
          mapOnDatabaseColumn: uid_local
          skipIfValueIsEmpty: true
      databaseColumnMappings:
        tablenames:
          value: tx_news_domain_model_news
        fieldname:
          value: fal_media
        tstamp:
          value: '{__currentTimestamp}'
        crdate:
          value: '{__currentTimestamp}'
        showinpreview:
          value: 1
        uid_foreign:
          value: '{SaveToDatabase.insertedUids.0}'
    -
      table: sys_file_reference
      mode: insert
      elements:
        fileupload-1:
          mapOnDatabaseColumn: uid_local
          skipIfValueIsEmpty: true
      databaseColumnMappings:
        tablenames:
          value: tx_news_domain_model_news
        fieldname:
          value: fal_related_files
        tstamp:
          value: '{__currentTimestamp}'
        crdate:
          value: '{__currentTimestamp}'
        uid_foreign:
          value: '{SaveToDatabase.insertedUids.0}'
    -
      table: sys_file_reference
      mode: update
      whereClause:
        uid_foreign: '{SaveToDatabase.insertedUids.0}'
        uid_local: 0
      databaseColumnMappings:
        pid:
          value: 0
        uid_foreign:
          value: 0
Copied!

Using PHP code (performs an update):

<?php

use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Form\Domain\Finishers\ClosureFinisher;
use TYPO3\CMS\Form\Domain\Model\FormDefinition;
class SomeClass
{
    private function addDeleteUploadsFinisherWithMessage(FormDefinition $formDefinition, string $message)
    {
        $formDefinition->createFinisher('SaveToDatabase', [
            'table' => 'fe_users',
            'mode' => 'update',
            'whereClause' => [
                'uid' => 1,
            ],
            'databaseColumnMappings' => [
                'pid' => ['value' => 1],
            ],
            'elements' => [
                'textfield-identifier-1' => ['mapOnDatabaseColumn' => 'first_name'],
                'textfield-identifier-2' => ['mapOnDatabaseColumn' => 'last_name'],
                'textfield-identifier-3' => ['mapOnDatabaseColumn' => 'username'],
                'advancedpassword-1' => [
                    'mapOnDatabaseColumn' => 'password',
                    'skipIfValueIsEmpty' => true,
                    'hashed' => true
                ],
            ],
        ]);
    }
}
Copied!

You can access inserted UIDs with '{SaveToDatabase.insertedUids.<theArrayKeyNumberInsideOptions>}'. If you perform an insert operation, the inserted values will be stored in the FinisherVariableProvider. <theArrayKeyNumberInOptions> references the numeric options.* key.

Custom finisher 

Write a custom finisher 

To make your finisher configurable by users in the backend form editor, see here.

Add a new finisher to the form configuration prototype by defining a finishersDefinition. Set the implementationClassName property to your new implementation class.

EXT:my_site_package/Configuration/Form/CustomFormSetup.yaml
prototypes:
  standard:
    finishersDefinition:
      CustomFinisher:
        implementationClassName: 'MyVendor\MySitePackage\Domain\Finishers\CustomFinisher'

Copied!

Register your custom form definition.

Add options to your finisher with the options property. Options are default values which can be overridden in the form definition.

Define default values 

EXT:my_site_package/Configuration/Form/CustomFormSetup.yaml
prototypes:
  standard:
    finishersDefinition:
      CustomFinisher:
        implementationClassName: 'MyVendor\MySitePackage\Domain\Finishers\CustomFinisher'
        options:
          yourCustomOption: 'Ralf'
Copied!

Override options using the form definition 

public/fileadmin/forms/my_form.yaml
identifier: sample-form
label: 'Simple Contact Form'
prototype: standard
type: Form

finishers:
  -
    identifier: CustomFinisher
    options:
      yourCustomOption: 'Björn'

renderables:
  # ...
Copied!

A finisher must implement FinisherInterface and should extend AbstractFinisher . In doing so, in the logic of the finisher the method executeInternal() will be called first.

Accessing finisher options 

If your finisher class extends AbstractFinisher , you can access the option values in the finisher using method parseOption():

$yourCustomOption = $this->parseOption('yourCustomOption');
Copied!

parseOption() looks for 'yourCustomOption' in your form definition.

EXT:my_site_package/Classes/Domain/Finishers/CustomFinisher.yaml
prototypes:
  standard:
    finishersDefinition:
      CustomFinisher:
        implementationClassName: 'MyVendor\MySitePackage\Domain\Finishers\CustomFinisher'
        options:
          yourCustomOption: 'Ralf'
Copied!

If it can't find it, parseOption() checks

  1. for a default value in the prototype configuration,
  2. for $defaultOptions inside your finisher class:

If it doesn't find anything, parseOption() returns null.

If it finds the option, the process checks whether the option value will access FormRuntime values. If the FormRuntime returns a positive result, it is checked whether the option value can access values of preceding finishers. At the end, it translates the finisher options.

Accessing form runtime values 

You can populate finisher options with submitted form values using the parseOption() method. You can access values of the FormRuntime and therefore values in every form element by encapsulating option values with {}. Below, if there is a form element with the identifier 'subject', you can access the value in the finisher configuration:

public/fileadmin/forms/my_form.yaml
identifier: simple-contact-form
label: 'Simple Contact Form'
prototype: standard
type: Form

finishers:
  -
    identifier: Custom
    options:
      yourCustomOption: '{subject}'

renderables:
  -
    identifier: subject
    label: 'Subject'
    type: Text
Copied!
// $yourCustomOption contains the value of the form element with the
// identifier 'subject'
$yourCustomOption = $this->parseOption('yourCustomOption');
Copied!

You can use {__currentTimestamp} as an option value to return the current UNIX timestamp.

Finisher Context 

The FinisherContext class takes care of transferring a finisher context to each finisher. If your finisher class extends AbstractFinisher the finisher context will be available via:

$this->finisherContext
Copied!

The cancel method prevents the execution of successive finishers:

$this->finisherContext->cancel();
Copied!

The method getFormValues returns the submitted form values.

$this->finisherContext->getFormValues();
Copied!

The method getFormRuntime returns the FormRuntime:

$this->finisherContext->getFormRuntime();
Copied!

Share data between finishers 

The method getFinisherVariableProvider returns an object ( FinisherVariableProvider ) which allows you to store data and transfer it to other finishers. The data can be easily accessed programmatically or inside your configuration:

$this->finisherContext->getFinisherVariableProvider();
Copied!

The data is stored in FinisherVariableProvider and is accessed by a user-defined 'finisher identifier' and a custom option value path. The name of the 'finisher identifier' should consist of the name of the finisher without the 'Finisher' appendix. If your finisher class extends AbstractFinisher , the finisher identifier name is stored in the following variable:

$this->shortFinisherIdentifier
Copied!

For example, if the name of your finisher class is 'CustomFinisher', this variable will contain 'Custom'.

There are 4 methods to access and manage data in the FinisherVariableProvider:

  • Add data:

    $this->finisherContext->getFinisherVariableProvider()->add(
        $this->shortFinisherIdentifier,
        'unique.value.identifier',
        $value
    );
    Copied!
  • Get data:

    $this->finisherContext->getFinisherVariableProvider()->get(
        $this->shortFinisherIdentifier,
        'unique.value.identifier',
        'default value'
    );
    Copied!
  • Check the existence of data:

    $this->finisherContext->getFinisherVariableProvider()->exists(
        $this->shortFinisherIdentifier,
        'unique.value.identifier'
    );
    Copied!
  • Delete data:

    $this->finisherContext->getFinisherVariableProvider()->remove(
        $this->shortFinisherIdentifier,
        'unique.value.identifier'
    );
    Copied!

In this way, finishers can access FinisherVariableProvider data programmatically. However, it is also possible to access FinisherVariableProvider data using form configuration.

Assuming that a finisher called 'Custom' adds data to a FinisherVariableProvider:

$this->finisherContext->getFinisherVariableProvider()->add(
    $this->shortFinisherIdentifier,
    'unique.value.identifier',
    'Wouter'
);
Copied!

other finishers can access the value 'Wouter' by setting {Custom.unique.value.identifier} in the form definition file.

public/fileadmin/forms/my_form.yaml
identifier: sample-form
label: 'Simple Contact Form'
prototype: standard
type: Form

finishers:
  -
    identifier: Custom
    options:
      yourCustomOption: 'Frans'

  -
    identifier: SomeOtherStuff
    options:
      someOtherCustomOption: '{Custom.unique.value.identifier}'
Copied!

Add finisher to backend UI 

After registering a new finisher in the yaml form definition file, you can also add it to the backend form editor for your backend users ( formEditor: section below) to work with in the GUI:

EXT:my_site_package/Configuration/Form/CustomFormSetup.yaml
prototypes:
  standard:
    formElementsDefinition:
      Form:
        formEditor:
          editors:
            900:
              # Extend finisher drop down
              selectOptions:
                35:
                  value: 'CustomFinisher'
                  label: 'Custom Finisher'
          propertyCollections:
            finishers:
              # add finisher fields
              25:
                identifier: 'CustomFinisher'
                editors:
                  100:
                    identifier: header
                    templateName: Inspector-CollectionElementHeaderEditor
                    label: "Custom Finisher"
                  # custom field (input, required)
                  110:
                    identifier: 'customField'
                    templateName: 'Inspector-TextEditor'
                    label: 'Custom Field'
                    propertyPath: 'options.customField'
                    propertyValidators:
                      10: 'NotEmpty'
                  # email field
                  120:
                    identifier: 'email'
                    templateName: 'Inspector-TextEditor'
                    label: 'Subscribers email'
                    propertyPath: 'options.email'
                    enableFormelementSelectionButton: true
                    propertyValidators:
                      10: 'NotEmpty'
                      20: 'FormElementIdentifierWithinCurlyBracesInclusive'
                  9999:
                    identifier: removeButton
                    templateName: Inspector-RemoveElementEditor
    finishersDefinition:
      CustomFinisher:
        formEditor:
          iconIdentifier: 'form-finisher'
          label: 'Custom Finisher'
          predefinedDefaults:
            options:
              customField: ''
              email: ''
        # displayed when overriding finisher settings
        FormEngine:
          label: 'Custom Finisher'
          elements:
            customField:
              label: 'Custom Field'
              config:
                type: 'text'
            email:
              label: 'Subscribers email'
              config:
                type: 'text'
Copied!

Configuration registration 

Place your YAML files in a form set directory — no PHP registration needed:

EXT:my_extension/
  Configuration/
    Form/
      MyFinisher/
        config.yaml
Copied!

Form manager 

What does it do? 

You will find the form manager in the backend Web > Forms backend module. Editors can use the form manager to administer forms stored on file mounts that they have access to. The form manager:

  • lists all forms
  • allows users to create, edit, duplicate, and delete forms
  • identifies the storage folder
  • gives an overview of which pages the forms are on.

Creation and duplication of forms is made easier by a form wizard. The wizard guides the editor through form creation and offers a variety of settings, such as the file mount, the prototype, and start templates.

The form manager

TYPO3 Backend with opened module 'Forms' displaying the form manager.

Start templates 

Editors can select a Start template when they are creating a new form. A Start template is a form definition which hasn't been assigned a prototypeName (the prototypeName property is normally used as the foundation of a new form).

An integrator can create as many Start templates as they wish for a particular prototype. After the Start templates have been defined the integrator can then:

  • open Web > Forms
  • create a new form by clicking on the appropriate button
  • enter the 'Form name' and click the 'Advanced settings' checkbox
  • select a Start template during the next steps

Integrators have to define Start templates so that they can be selected by editors. Also, the same Start template can be used for several prototypes. To do this, make sure the start template form elements are defined in the corresponding prototypes.

For example, imagine an integrator has configured a prototype called 'routing' which contains a form element of type <formElementTypeIdentifier> 'locationPicker'. The element is only defined in this prototype. The integrator has created a Start template which contains the 'locationPicker' form element. A backend editor could now select and use this Start template with the 'locationPicker' form element, as long as the prototype is 'routing'. If the integrator adds this form element to another prototype, the process would crash. The 'locationPicker' form element is only known to the 'routing' prototype.

The following example shows a Start template. A Start template requires at least the root form element ('Form') and a 'Page'.

type: 'Form'
identifier: 'blankForm'
label: '[Blank Form]'
renderables:
  -
    type: 'Page'
    identifier: 'page-1'
    label: 'Page'
Copied!

The form manager form wizard displays a list of all pre-configured Start templates.When a backend editor creates a form using a Start template, a new form definition is generated based on that Start template. The form definition propertyName will be that of the chosen prototype.The identifier of the root form element ('Form') is set to the entered "Form name". This name is also used for the property label of the 'Form' element. Finally, the form editor is loaded and displays the newly created form.

Translation of the form manager 

All option values below the form editor key in the form configuration can be translated:

formManager:
Copied!

The form manager translation files are loaded as follows:

formManager:
  translationFiles:
    # custom translation file
    20: 'EXT:my_site_package/Resources/Private/Language/Form/Database.xlf'
Copied!

The process searches for each option value within all of the defined translation files. If a translation is found, the translated option value will be used in preference.

For the following option value:

...
label: 'formManager.selectablePrototypesConfiguration.standard.label'
...
Copied!

the process searches for the translation key formManager.selectablePrototypesConfiguration.standard.label in the file under key 20 20: 'EXT:my_site_package/Resources/Private/Language/Form/Database.xlf' and then the file in EXT:form 10: 'EXT:form/Resources/Private/Language/Database.xlf' (loaded by default). If nothing is found, the option value will be displayed unmodified.

Form editor 

What does it do? 

The form editor is a powerful graphical user interface in the TYPO3 backend which allows editors to create form definitions without writing a single line of code. These form definitions are used by the frontend process to render beautiful forms.

The form editor is a modular interface which consists of the following components:

  • Stage: main visual component of the backend form editor where displaying form elements in an abstract view or a frontend preview (in the middle of the form editor)
  • Tree: displays the structure of the form as a tree (on the left)
  • Inspector: context specific toolbar which displays form element options and where options can be edited (on the right)
  • Core: core functionality of the form editor
  • ViewModel: defines and controls the visual display
  • Mediator: delegates component events
  • Modals: processes modals
  • FormEditor: provides API functions
  • Helper: helper functions for the manipulation of DOM elements

The Modals, Inspector, and Stage components can be modified by configuration. The Inspector component is modular and extremely flexible. Integrators can add inspector editors (input fields of different types) to allow backend editors to alter form element options.

The diagram below shows Javascript module interaction between the form editor and the core, viewmodel and mediator.

JavaScript module interaction

JavaScript module interaction

The form editor configuration is under the following configuration path:

prototypes:
  standard:
    formEditor:
Copied!

Here you can configure different aspects of the form editor under the following configuration paths:

prototypes:
  standard:
    formElementsDefinition:
      <formElementTypeIdentifier>:
        formEditor:
    finishersDefinition:
      <finisherIdentifier>
        formEditor:
    validatorsDefinition:
      <validatorIdentifier>
        formEditor:
Copied!

Form editor components in detail 

Stage 

The Stage is the central visual component of the form editor and it can display form elements in two different modes:

  • abstract view: all the form elements on a Page (a step) presented in an abstract way,
  • frontend preview: renders the form as it will be displayed in the frontend (to render the form exactly the same as in the frontend, make sure your frontend CSS is loaded in the backend)

By default, the frontend templates of EXT:form are based on Bootstrap. Since the backend of TYPO3 CMS also depends on Bootstrap, the corresponding CSS files will already loaded in the backend. Nevertheless, some CSS is overridden and extended in order to meet the specific needs of the TYPO3 backend, meaning frontend preview (in the backend) could differ compared to the "real" frontend.

If your frontend preview requires additional CSS or a CSS framework then go ahead and configure a specific prototype accordingly.

Beside the frontend templates, there are also templates for the abstract view, i.e. you can customize the rendering of the abstract view for each form element. If you have created your own form elements, in most cases you will fall back to the already existing Fluid templates. But remember, you are always able to create your own Fluid templates and adapt the abstract view to suit your needs.

For more information, read the following chapter: 'Common abstract view form element templates'.

Inspector 

The Inspector is on the right side of the form editor. It is a modular, flexible, and context-specific toolbar and depends on which form element is currently selected. The Inspector is where you can edit form element options using inspector editors. The interface is easily customized by YAML configuration. You can define form element properties and how they can be edited.

You can edit form element properties (like properties.placeholder) as well as property collections. They are defined at the form element level in the YAML configuration file. There are two types of property collections:

  • validators
  • finishers

Property collections are also configured by inspector editors and this allows you to do some cool stuff. Imagine that you have a "Number range" validator with two validator options "Minimum" and "Maximum" and two form elements, "Age spouse" and "Age infant". You could set the validator for both form elements, but make "Minimum" non-editable and pre-fill "Maximum" with a value for the "Age infant" form element only and not the "Age spouse" form element.

Translation of the form editor 

All option values below the following configuration keys can be translated:

prototypes:
  standard:
    formEditor:
    formElementsDefinition:
      <formElementTypeIdentifier>:
        formEditor:
    finishersDefinition:
      <finisherIdentifier>
        formEditor:
    validatorsDefinition:
      <validatorIdentifier>
        formEditor:
Copied!

The form editor translation files are loaded as follows:

prototypes:
  standard:
    formEditor:
      translationFiles:
        # custom translation file
        20: 'EXT:my_site_package/Resources/Private/Language/Database.xlf'
Copied!

Option values are searched for in the defined translation files. If a translation is found, the translated option value will be used.

As an example, if the following option is defined:

...
label: 'formEditor.elements.Form.editor.finishers.label'
...
Copied!

The translation key formEditor.elements.Form.editor.finishers.label is first searched for in the file 20: 'EXT:my_site_package/Resources/Private/Language/Database.xlf' and then in the file 10: 'EXT:form/Resources/Private/Language/Database.xlf' (loaded by default by EXT:form). If nothing is found, the option value will be displayed unmodified.

Customization of the form editor 

The form editor can be customized by YAML configuration in the configuration. The configuration is not stored in one central configuration file. Instead, configuration is defined for each form element (see EXT:form/form/Configuration/Yaml/FormElements/). In addition, the Form element itself (see EXT:form/Configuration/Yaml/FormElements/Form.yaml) has some basic configuration.

A common customization is to remove form elements from the form editor. Unlike other TYPO3 modules, the form editor cannot be configured using backend user groups and Access Lists - it can only be done by YAML configuration.

Quite often, integrators tend to unset form elements as shown below. In this example, the AdvancedPassword form element is completely removed from the form framework. Integrators and developers will no longer be able to use the AdvancedPassword element in their YAML form definitions or via API.

prototypes:
  standard:
    formElementsDefinition:
      AdvancedPassword: null
Copied!

The correct way is to unset the group property. This property defines which group in the form editor "new Element" modal the form element should belong in. Unsetting this property will remove the form element safely from the form editor:

prototypes:
  standard:
    formElementsDefinition:
      AdvancedPassword:
        formEditor:
          group: null
Copied!

Extending the form editor 

Learn here how to make finishers configurable in the backend form editor.

Basic JavaScript concepts 

The form framework was designed to be as extendable as possible. Sooner or later, you will want to customize form editor components using JavaScript. This is especially true if you want to create your own inspector editors. In order to achieve this, you can implement your own JavaScript modules. Those modules will include the required algorithms for the inspector editors and the abstract view as well as your own events.

Register custom JavaScript modules 

You can use the following configuration YAML to register your JavaScript module.

prototypes:
  standard:
    formEditor:
      dynamicJavaScriptModules:
        additionalViewModelModules:
          10: '@my-vendor/my-site-package/backend/form-editor/view-model.js'
Copied!
# Configuration/JavaScriptModules.php
<?php

return [
    'dependencies' => ['form'],
    'imports' => [
        '@myvendor/my-site-package/' => 'EXT:my_site_package/Resources/Public/JavaScript/',
    ],
];
Copied!

In the configuration above, the JavaScript files have to be in the folder my_site_package/Resources/Public/JavaScript/backend/form-editor/view-model.js.

The following example module is a template you can use containing the recommended setup.

/**
 * Module: @my-vendor/my-site-package/backend/form-editor/view-model.js
 */
import $ from 'jquery';
import * as Helper from '@typo3/form/backend/form-editor/helper.js'

/**
 * @private
 *
 * @var object
 */
let _formEditorApp = null;

/**
 * @private
 *
 * @return object
 */
function getFormEditorApp() {
    return _formEditorApp;
};

/**
 * @private
 *
 * @return object
 */
function getPublisherSubscriber() {
    return getFormEditorApp().getPublisherSubscriber();
};

/**
 * @private
 *
 * @return object
 */
function getUtility() {
    return getFormEditorApp().getUtility();
};

/**
 * @private
 *
 * @param object
 * @return object
 */
function getHelper() {
    return Helper;
};

/**
 * @private
 *
 * @return object
 */
function getCurrentlySelectedFormElement() {
    return getFormEditorApp().getCurrentlySelectedFormElement();
};

/**
 * @private
 *
 * @param mixed test
 * @param string message
 * @param int messageCode
 * @return void
 */
function assert(test, message, messageCode) {
    return getFormEditorApp().assert(test, message, messageCode);
};

/**
 * @private
 *
 * @return void
 * @throws 1491643380
 */
function _helperSetup() {
    assert('function' === $.type(Helper.bootstrap),
        'The view model helper does not implement the method "bootstrap"',
        1491643380
    );
    Helper.bootstrap(getFormEditorApp());
};

/**
 * @private
 *
 * @return void
 */
function _subscribeEvents() {
    getPublisherSubscriber().subscribe('some/eventName/you/want/to/handle', function(topic, args) {
        myCustomCode();
    });
};

/**
 * @private
 *
 * @return void
 */
function myCustomCode() {
};

/**
 * @public
 *
 * @param object formEditorApp
 * @return void
 */
export function bootstrap(formEditorApp) {
    _formEditorApp = formEditorApp;
    _helperSetup();
    _subscribeEvents();
};
Copied!

Events 

Event handling in EXT:form is based on the Publish/Subscribe Pattern. To learn more about this terrific pattern, see: https://addyosmani.com/resources/essentialjsdesignpatterns/book/. Please note that the processing sequence of the subscribers cannot be influenced. Furthermore, there is no information flow between the subscribers. All events are asynchronous.

For more information, head to the API reference and read the section about 'Events'.

FormElement model 

In the JavaScript code, each form element is represented by a FormElement model. This model can be seen as a copy of the form definition enriched with some additional data. The following example shows you a form definition and, below it, the debug output of FormElement model.

identifier: javascript-form-element-model
label: 'JavaScript FormElement model'
type: Form
finishers:
  -
    identifier: EmailToReceiver
    options:
      subject: 'Your message: {subject}'
      recipients:
        your.company@example.com: 'Your Company name'
        ceo@example.com: 'CEO'
      senderAddress: '{email}'
      senderName: '{name}'
      replyToRecipients:
        replyTo.company@example.com: 'Your Company name'
      carbonCopyRecipients:
        cc.company@example.com: 'Your Company name'
      blindCarbonCopyRecipients:
        bcc.company@example.com: 'Your Company name'
      addHtmlPart: true
      attachUploads: 'true'
      translation:
        language: ''
      title: ''
renderables:
  -
    identifier: page-1
    label: 'Contact Form'
    type: Page
    renderables:
      -
        identifier: name
        label: Name
        type: Text
        properties:
          fluidAdditionalAttributes:
            placeholder: Name
        defaultValue: ''
        validators:
          -
            identifier: NotEmpty
Copied!
{
  "identifier": "javascript-form-element-model",
  "label": "JavaScript FormElement model",
  "type": "Form",
  "prototypeName": "standard",
  "__parentRenderable": null,
  "__identifierPath": "example-form",
  "finishers": [
    {
      "identifier": "EmailToReceiver",
      "options": {
        "subject": "Your message: {subject}",
        "recipients": {
          "your.company@example.com": "Your Company name",
          "ceo@example.com": "CEO"
        },
        "senderAddress": "{email}",
        "senderName": "{name}",
        "replyToRecipients": {
          "replyTo.company@example.com": "Your Company name"
        },
        "carbonCopyRecipients": {
          "cc.company@example.com": "Your Company name"
        },
        "blindCarbonCopyRecipients": {
          "bcc.company@example.com": "Your Company name"
        },
        "addHtmlPart": true,
        "attachUploads": true,
        "translation": {
          "language": ""
        },
        "title": ""
      }
    }
  ],
  "renderables": [
    {
      "identifier": "page-1",
      "label": "Contact Form",
      "type": "Page",
      "__parentRenderable": "example-form (filtered)",
      "__identifierPath": "example-form/page-1",
      "renderables": [
        {
          "identifier": "name",
          "defaultValue": "",
          "label": "Name",
          "type": "Text",
          "properties": {
            "fluidAdditionalAttributes": {
              "placeholder": "Name"
            }
          },
          "__parentRenderable": "example-form/page-1 (filtered)",
          "__identifierPath": "example-form/page-1/name",
          "validators": [
            {
              "identifier": "NotEmpty"
            }
          ]
        }
      ]
    }
  ]
}
Copied!

For each form element which has child elements, there is a property called renderables. renderables are arrays of FormElement models of child elements.

The FormElement model is therefore a combination of the of form definition data and some additional information:

  • __parentRenderable
  • __identifierPath

The following methods can be used to access FormElement model data:

  • get()
  • set()
  • unset()
  • on()
  • off()
  • getObjectData()
  • toString()
  • clone()

Head to the API reference to read more about the FormElement model.

Form plugin 

What does it do? 

The form plugin allows you to assign a form to a page and view it in the frontend. The form can have been created via the form editor or shipped with your extension. Forms can be re-used throughout the TYPO3 installation and backend editors can override form definitions. At the moment, only finisher options can be overridden but the possibilities depend on the configuration of the underlying prototype.

Imagine that your form contains a redirect finisher. The redirect target is set globally and valid for the whole form definition. When they are adding the form to a page, a backend editor can define a redirect target that is different to the 'global' form definition. This setting is only valid on the page containing the plugin.

Read more about changing general and specific form plugin configuration.

Exclude options from overrides 

Sometimes it is useful to prevent options from being overridden by the form plugin. You can do this by unsetting the options in your general forms configuration YAML. To unset options use the YAML NULL ( ~) value.

In this example, four EmailToReceiver finisher fields are unset. The options will be removed from the form plugin but not the form editor.

prototypes:
  standard:
    finishersDefinition:
      EmailToReceiver:
        FormEngine:
          elements:
            senderAddress: ~
            senderName: ~
            replyToRecipients: ~
            translation: ~
Copied!

Translation of form plugin 

All option values under the following configuration keys can be translated:

prototypes:
  standard:
    finishersDefinition:
      <finisherIdentifier>
        formEngine:
Copied!

Form plugin translation files are loaded as follows:

prototypes:
  standard:
    formEngine:
      translationFiles:
        # custom translation file
        20: 'EXT:my_site_package/Resources/Private/Language/Database.xlf'
Copied!

Each option value is searched for in the defined translation files. If a translation is found, the translated option value will be used.

Imagine that the following option value is defined:

...
label: 'tt_content.finishersDefinition.EmailToReceiver.label'
...
Copied!

The translation key tt_content.finishersDefinition.EmailToReceiver.label is first searched for in the file 20: 'EXT:my_site_package/Resources/Private/Language/Database.xlf' and then in the file 10: 'EXT:form/Resources/Private/Language/Database.xlf' (loaded by EXT:form by default). If nothing is found, the option value will be displayed unmodified.

Autocomplete 

The Autocomplete select in the form editor can be used to define autocomplete properties for input fields. This extension predefines the most common of the input purposes that are widely recognized by assistive technologies and recommended by the W3C. The HTML standard allows arbitrary values.

If you need to provide additional fields, you can reconfigure the autocomplete field with additional select options:

Add Autocomplete options to the backend editor 

Create a form set in your extension and add a config.yaml with the additional autocomplete options. The file is auto-discovered — no PHP or TypoScript registration is required.

Required directory layout
EXT:my_sitepackage/
  Configuration/
    Form/
      SitePackage/
        config.yaml
Copied!
EXT:my_sitepackage/Configuration/Form/SitePackage/config.yaml
name: my-sitepackage/form
label: 'My Sitepackage — Form Configuration'
priority: 200

prototypes:
  standard:
    formElementsDefinition:
      Text:
        formEditor:
          editors:
            600:
              selectOptions:
                # Choose an index that is not in use yet
                12345:
                  value: 'cc-name'
                  label: 'cc-name - Full name as given on the payment instrument'

Copied!

Configuration Reference 

This chapter is a complete reference of the possible configuration settings. It addresses your concerns as and integrator and developer.

[persistenceManager] 

Properties 

allowedFileMounts 

Option path
persistenceManager.allowedFileMounts
Data type
array
Needed by
Frontend/ Backend (form manager/ form editor/ plugin)
Mandatory
Yes (if allowedExtensionPaths is not set)
Default value
persistenceManager:
  allowedFileMounts:
    10: '1:/form_definitions/'
Copied!
Good to know
Form/ File storages
Description
EXT:form stores the form definitions within the file system and thus needs write access to this storage. By default, the folder form_definitions is created and used. It is possible to configure a different and/ or an additional file mount which is then utilized for storing and reading forms.

allowSaveToExtensionPaths 

Option path
persistenceManager.allowSaveToExtensionPaths
Data type
bool
Needed by
Backend (form manager)
Mandatory
Yes
Default value
persistenceManager:
  allowSaveToExtensionPaths: false
Copied!
Good to know
Form/ File storages
Description
Set this to true if you want to allow backend users to edit forms stored within your own extension.

allowDeleteFromExtensionPaths 

Option path
persistenceManager.allowDeleteFromExtensionPaths
Data type
bool
Needed by
Backend (form manager)
Mandatory
Yes
Default value
persistenceManager:
  allowDeleteFromExtensionPaths: false
Copied!
Good to know
Form/ File storages
Description
Set this to true if you want to allow backend users to delete forms stored within your own extension.

sortByKeys 

Option path
persistenceManager.sortByKeys
Data type
array
Needed by
Backend (form manager)
Mandatory
Yes
Default value
persistenceManager:
   sortByKeys: ['name', 'fileUid']
Copied!
Good to know
Form/ File storages
Description

The keys by which the forms should be sorted in the Form module and in the form plugin select.

Valid keys, by which the forms can be sorted, are:

name
The forms name.
identifier
The filename.
fileUid
The files uid.
persistenceIdentifier

The files location.

Example: 1:/form_definitions/contact.form.yaml

readOnly
Is the form readonly?
removable
Is the form removable?
location
Either storage or extension
invalid
Does the form have an error?

sortAscending 

Option path
persistenceManager.sortAscending
Data type
bool
Needed by
Backend (form manager)
Mandatory
Yes
Default value
persistenceManager:
  sortAscending: true
Copied!
Good to know
Form/ File storages
Description
If set to true, the forms will be sorted in ascending, otherwise in descending order.

allowedExtensionPaths 

Option path
persistenceManager.allowedExtensionPaths
Data type
array
Needed by
Frontend/ Backend (form manager/ form editor/ plugin)
Mandatory
Yes (if allowedFileMounts is not set)
Default value
undefined
Good to know
Form/ File storages
Description

Define the paths to folders which contain forms within your own extension. For example:

allowedExtensionPaths:
  10: EXT:my_site_package/Resources/Private/Forms/
Copied!

[prototypes] 

Properties 

prototypes 

Option path
prototypes
Data type
array
Needed by
Frontend/ Backend (form manager/ form editor/ plugin)
Mandatory
Yes
Default value
prototypes:
  standard:
    [...]
Copied!
Good to know
Description
Array which defines the available prototypes. Every key within this array is called the prototypeIdentifier.

prototypeIdentifier 

Option path
prototypes.<prototypeIdentifier>
Data type
array
Needed by
Frontend/ Backend (form manager/ form editor/ plugin)
Mandatory
Yes
Related options
Default value
prototypes:
  standard:
    [...]
Copied!
Good to know
Description
This array key identifies the prototype``. Every ``form definition`` references to such a ``<prototypeIdentifier>`` through the property ``prototypeName`.

Subproperties 

[Form] 

Properties 

renderingOptions.translation.translationFiles 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.renderingOptions.translation.translationFiles
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  renderingOptions:
    translation:
      translationFiles:
        10: 'EXT:form/Resources/Private/Language/locallang.xlf'
    templateRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Templates/'
    partialRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Partials/'
    layoutRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Layouts/'
    addQueryString: false
    argumentsToBeExcludedFromQueryString: {  }
    additionalParams: {  }
    controllerAction: perform
    httpMethod: post
    httpEnctype: multipart/form-data
    _isCompositeFormElement: false
    _isTopLevelFormElement: true
    honeypot:
      enable: true
      formElementToUse: Honeypot
    submitButtonLabel: Submit
    skipUnknownElements: true
Copied!
Description
Filesystem path(s) to translation files which should be searched for form element property translations. If translationFiles is undefined, - "prototypes.prototypeIdentifier.formElementsDefinition.Form.renderingOptions.translation.translationFiles" will be used.

renderingOptions.templateRootPaths 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.renderingOptions.templateRootPaths
Data type
array
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  renderingOptions:
    translation:
      translationFiles:
        10: 'EXT:form/Resources/Private/Language/locallang.xlf'
    templateRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Templates/'
    partialRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Partials/'
    layoutRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Layouts/'
    addQueryString: false
    argumentsToBeExcludedFromQueryString: {  }
    additionalParams: {  }
    controllerAction: perform
    httpMethod: post
    httpEnctype: multipart/form-data
    _isCompositeFormElement: false
    _isTopLevelFormElement: true
    honeypot:
      enable: true
      formElementToUse: Honeypot
    submitButtonLabel: Submit
    skipUnknownElements: true
Copied!
Good to know
Description
Please read the section templateRootPaths.

renderingOptions.partialRootPaths 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.renderingOptions.partialRootPaths
Data type
array
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  renderingOptions:
    translation:
      translationFiles:
        10: 'EXT:form/Resources/Private/Language/locallang.xlf'
    templateRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Templates/'
    partialRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Partials/'
    layoutRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Layouts/'
    addQueryString: false
    argumentsToBeExcludedFromQueryString: {  }
    additionalParams: {  }
    controllerAction: perform
    httpMethod: post
    httpEnctype: multipart/form-data
    _isCompositeFormElement: false
    _isTopLevelFormElement: true
    honeypot:
      enable: true
      formElementToUse: Honeypot
    submitButtonLabel: Submit
    skipUnknownElements: true
Copied!
Good to know
partialRootPaths
Please read the section templateRootPaths.

renderingOptions.layoutRootPaths 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.renderingOptions.layoutRootPaths
Data type
array
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  renderingOptions:
    translation:
      translationFiles:
        10: 'EXT:form/Resources/Private/Language/locallang.xlf'
    templateRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Templates/'
    partialRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Partials/'
    layoutRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Layouts/'
    addQueryString: false
    argumentsToBeExcludedFromQueryString: {  }
    additionalParams: {  }
    controllerAction: perform
    httpMethod: post
    httpEnctype: multipart/form-data
    _isCompositeFormElement: false
    _isTopLevelFormElement: true
    honeypot:
      enable: true
      formElementToUse: Honeypot
    submitButtonLabel: Submit
    skipUnknownElements: true
Copied!
Good to know
Description
Please read the section layoutRootPaths.

renderingOptions.addQueryString 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.renderingOptions.addQueryString
Data type
bool/string
Needed by
Frontend
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Form:
  renderingOptions:
    translation:
      translationFiles:
        10: 'EXT:form/Resources/Private/Language/locallang.xlf'
    templateRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Templates/'
    partialRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Partials/'
    layoutRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Layouts/'
    addQueryString: false
    argumentsToBeExcludedFromQueryString: {  }
    additionalParams: {  }
    controllerAction: perform
    httpMethod: post
    httpEnctype: multipart/form-data
    _isCompositeFormElement: false
    _isTopLevelFormElement: true
    honeypot:
      enable: true
      formElementToUse: Honeypot
    submitButtonLabel: Submit
    skipUnknownElements: true
Copied!
Description
Corresponds to the Fluid f:form ViewHelper option addQueryString.

renderingOptions.argumentsToBeExcludedFromQueryString 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.renderingOptions.argumentsToBeExcludedFromQueryString
Data type
array
Needed by
Frontend
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Form:
  renderingOptions:
    translation:
      translationFiles:
        10: 'EXT:form/Resources/Private/Language/locallang.xlf'
    templateRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Templates/'
    partialRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Partials/'
    layoutRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Layouts/'
    addQueryString: false
    argumentsToBeExcludedFromQueryString: {  }
    additionalParams: {  }
    controllerAction: perform
    httpMethod: post
    httpEnctype: multipart/form-data
    _isCompositeFormElement: false
    _isTopLevelFormElement: true
    honeypot:
      enable: true
      formElementToUse: Honeypot
    submitButtonLabel: Submit
    skipUnknownElements: true
Copied!
Description
Fluid f:form viewHelper option argumentsToBeExcludedFromQueryString.

renderingOptions.additionalParams 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.renderingOptions.additionalParams
Data type
array
Needed by
Frontend
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Form:
  renderingOptions:
    translation:
      translationFiles:
        10: 'EXT:form/Resources/Private/Language/locallang.xlf'
    templateRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Templates/'
    partialRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Partials/'
    layoutRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Layouts/'
    addQueryString: false
    argumentsToBeExcludedFromQueryString: {  }
    additionalParams: {  }
    controllerAction: perform
    httpMethod: post
    httpEnctype: multipart/form-data
    _isCompositeFormElement: false
    _isTopLevelFormElement: true
    honeypot:
      enable: true
      formElementToUse: Honeypot
    submitButtonLabel: Submit
    skipUnknownElements: true
Copied!
Description
Fluid f:form viewHelper option additionalParams.

renderingOptions.controllerAction 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.renderingOptions.controllerAction
Data type
array
Needed by
Frontend
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  renderingOptions:
    translation:
      translationFiles:
        10: 'EXT:form/Resources/Private/Language/locallang.xlf'
    templateRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Templates/'
    partialRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Partials/'
    layoutRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Layouts/'
    addQueryString: false
    argumentsToBeExcludedFromQueryString: {  }
    additionalParams: {  }
    controllerAction: perform
    httpMethod: post
    httpEnctype: multipart/form-data
    _isCompositeFormElement: false
    _isTopLevelFormElement: true
    honeypot:
      enable: true
      formElementToUse: Honeypot
    submitButtonLabel: Submit
    skipUnknownElements: true
Copied!
Good to know
Description
Fluid f:form ViewHelper option action. This is useful if you want to render your form within your own extbase extension.

renderingOptions.httpMethod 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.renderingOptions.httpMethod
Data type
string
Needed by
Frontend
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  renderingOptions:
    translation:
      translationFiles:
        10: 'EXT:form/Resources/Private/Language/locallang.xlf'
    templateRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Templates/'
    partialRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Partials/'
    layoutRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Layouts/'
    addQueryString: false
    argumentsToBeExcludedFromQueryString: {  }
    additionalParams: {  }
    controllerAction: perform
    httpMethod: post
    httpEnctype: multipart/form-data
    _isCompositeFormElement: false
    _isTopLevelFormElement: true
    honeypot:
      enable: true
      formElementToUse: Honeypot
    submitButtonLabel: Submit
    skipUnknownElements: true
Copied!
Description
Fluid f:form viewHelper option method.

renderingOptions.httpEnctype 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.renderingOptions.httpEnctype
Data type
string
Needed by
Frontend
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  renderingOptions:
    translation:
      translationFiles:
        10: 'EXT:form/Resources/Private/Language/locallang.xlf'
    templateRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Templates/'
    partialRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Partials/'
    layoutRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Layouts/'
    addQueryString: false
    argumentsToBeExcludedFromQueryString: {  }
    additionalParams: {  }
    controllerAction: perform
    httpMethod: post
    httpEnctype: multipart/form-data
    _isCompositeFormElement: false
    _isTopLevelFormElement: true
    honeypot:
      enable: true
      formElementToUse: Honeypot
    submitButtonLabel: Submit
    skipUnknownElements: true
Copied!
Description
Fluid f:form viewHelper option enctype.

renderingOptions.fluidAdditionalAttributes 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.renderingOptions.fluidAdditionalAttributes
Data type
array
Needed by
Frontend/ Backend (form editor)
Mandatory
No
Good to know
Description
The values within this array are directly used within the form element ViewHelper's property additionalAttributes.

renderingOptions._isCompositeFormElement 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.renderingOptions._isCompositeFormElement
Data type
bool
Needed by
Frontend
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  renderingOptions:
    translation:
      translationFiles:
        10: 'EXT:form/Resources/Private/Language/locallang.xlf'
    templateRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Templates/'
    partialRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Partials/'
    layoutRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Layouts/'
    addQueryString: false
    argumentsToBeExcludedFromQueryString: {  }
    additionalParams: {  }
    controllerAction: perform
    httpMethod: post
    httpEnctype: multipart/form-data
    _isCompositeFormElement: false
    _isTopLevelFormElement: true
    honeypot:
      enable: true
      formElementToUse: Honeypot
    submitButtonLabel: Submit
    skipUnknownElements: true
Copied!
Description
Internal control setting to define that the form element contains child form elements.

renderingOptions._isTopLevelFormElement 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.renderingOptions._isTopLevelFormElement
Data type
bool
Needed by
Frontend
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  renderingOptions:
    translation:
      translationFiles:
        10: 'EXT:form/Resources/Private/Language/locallang.xlf'
    templateRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Templates/'
    partialRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Partials/'
    layoutRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Layouts/'
    addQueryString: false
    argumentsToBeExcludedFromQueryString: {  }
    additionalParams: {  }
    controllerAction: perform
    httpMethod: post
    httpEnctype: multipart/form-data
    _isCompositeFormElement: false
    _isTopLevelFormElement: true
    honeypot:
      enable: true
      formElementToUse: Honeypot
    submitButtonLabel: Submit
    skipUnknownElements: true
Copied!
Description
Internal control setting to define that the form element must not have a parent form element.

renderingOptions.honeypot.enable 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.renderingOptions.honeypot.enable
Data type
bool
Needed by
Frontend
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  renderingOptions:
    translation:
      translationFiles:
        10: 'EXT:form/Resources/Private/Language/locallang.xlf'
    templateRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Templates/'
    partialRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Partials/'
    layoutRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Layouts/'
    addQueryString: false
    argumentsToBeExcludedFromQueryString: {  }
    additionalParams: {  }
    controllerAction: perform
    httpMethod: post
    httpEnctype: multipart/form-data
    _isCompositeFormElement: false
    _isTopLevelFormElement: true
    honeypot:
      enable: true
      formElementToUse: Honeypot
    submitButtonLabel: Submit
    skipUnknownElements: true
Copied!
Description
Enable or disable the honeypot feature.

renderingOptions.honeypot.formElementToUse 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.renderingOptions.honeypot.formElementToUse
Data type
bool
Needed by
Frontend
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  renderingOptions:
    translation:
      translationFiles:
        10: 'EXT:form/Resources/Private/Language/locallang.xlf'
    templateRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Templates/'
    partialRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Partials/'
    layoutRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Layouts/'
    addQueryString: false
    argumentsToBeExcludedFromQueryString: {  }
    additionalParams: {  }
    controllerAction: perform
    httpMethod: post
    httpEnctype: multipart/form-data
    _isCompositeFormElement: false
    _isTopLevelFormElement: true
    honeypot:
      enable: true
      formElementToUse: Honeypot
    submitButtonLabel: Submit
    skipUnknownElements: true
Copied!
Description
Define which <formElementIdentifier> should be used to render the honeypot.

renderingOptions.submitButtonLabel 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.renderingOptions.submitButtonLabel
Data type
string
Needed by
Frontend
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
Yes
Mandatory
No
Default value (for prototype 'standard')
Form:
  renderingOptions:
    translation:
      translationFiles:
        10: 'EXT:form/Resources/Private/Language/locallang.xlf'
    templateRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Templates/'
    partialRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Partials/'
    layoutRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Layouts/'
    addQueryString: false
    argumentsToBeExcludedFromQueryString: {  }
    additionalParams: {  }
    controllerAction: perform
    httpMethod: post
    httpEnctype: multipart/form-data
    _isCompositeFormElement: false
    _isTopLevelFormElement: true
    honeypot:
      enable: true
      formElementToUse: Honeypot
    submitButtonLabel: Submit
    skipUnknownElements: true
Copied!
Good to know
Description
The submit Button label.

renderingOptions.skipUnknownElements 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.renderingOptions.skipUnknownElements
Data type
bool
Needed by
Frontend
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  renderingOptions:
    translation:
      translationFiles:
        10: 'EXT:form/Resources/Private/Language/locallang.xlf'
    templateRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Templates/'
    partialRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Partials/'
    layoutRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Layouts/'
    addQueryString: false
    argumentsToBeExcludedFromQueryString: {  }
    additionalParams: {  }
    controllerAction: perform
    httpMethod: post
    httpEnctype: multipart/form-data
    _isCompositeFormElement: false
    _isTopLevelFormElement: true
    honeypot:
      enable: true
      formElementToUse: Honeypot
    submitButtonLabel: Submit
    skipUnknownElements: true
Copied!
Description
If set, every unknown <formElementIdentifier> will not be rendered. If set to false an exception will be thrown.

formEditor 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    predefinedDefaults:
      renderingOptions:
        submitButtonLabel: 'formEditor.elements.Form.editor.submitButtonLabel.value'
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.BaseFormElementMixin.editor.label.label
        propertyPath: label
      300:
        identifier: 'submitButtonLabel'
        templateName: 'Inspector-TextEditor'
        label: 'formEditor.elements.Form.editor.submitButtonLabel.label'
        propertyPath: 'renderingOptions.submitButtonLabel'
      900:
        identifier: finishers
        templateName: Inspector-FinishersEditor
        label: formEditor.elements.Form.editor.finishers.label
        selectOptions:
          10:
            value: ''
            label: formEditor.elements.Form.editor.finishers.EmptyValue.label
          20:
            value: EmailToSender
            label: formEditor.elements.Form.editor.finishers.EmailToSender.label
          30:
            value: EmailToReceiver
            label: formEditor.elements.Form.editor.finishers.EmailToReceiver.label
          40:
            value: Redirect
            label: formEditor.elements.Form.editor.finishers.Redirect.label
          50:
            value: DeleteUploads
            label: formEditor.elements.Form.editor.finishers.DeleteUploads.label
          60:
            value: Confirmation
            label: formEditor.elements.Form.editor.finishers.Confirmation.label
    _isCompositeFormElement: false
    _isTopLevelFormElement: true
    saveSuccessFlashMessageTitle: formEditor.elements.Form.saveSuccessFlashMessageTitle
    saveSuccessFlashMessageMessage: formEditor.elements.Form.saveSuccessFlashMessageMessage
    saveErrorFlashMessageTitle: formEditor.elements.Form.saveErrorFlashMessageTitle
    saveErrorFlashMessageMessage: formEditor.elements.Form.saveErrorFlashMessageMessage
    modalValidationErrorsDialogTitle: formEditor.modals.validationErrors.dialogTitle
    modalValidationErrorsConfirmButton: formEditor.modals.validationErrors.confirmButton
    modalInsertElementsDialogTitle: formEditor.modals.insertElements.dialogTitle
    modalInsertPagesDialogTitle: formEditor.modals.newPages.dialogTitle
    modalCloseDialogMessage: formEditor.modals.close.dialogMessage
    modalCloseDialogTitle: formEditor.modals.close.dialogTitle
    modalCloseConfirmButton: formEditor.modals.close.confirmButton
    modalCloseCancelButton: formEditor.modals.close.cancelButton
    modalRemoveElementDialogTitle: formEditor.modals.removeElement.dialogTitle
    modalRemoveElementDialogMessage: formEditor.modals.removeElement.dialogMessage
    modalRemoveElementConfirmButton: formEditor.modals.removeElement.confirmButton
    modalRemoveElementCancelButton: formEditor.modals.removeElement.cancelButton
    modalRemoveElementLastAvailablePageFlashMessageTitle: formEditor.modals.removeElement.lastAvailablePageFlashMessageTitle
    modalRemoveElementLastAvailablePageFlashMessageMessage: formEditor.modals.removeElement.lastAvailablePageFlashMessageMessage
    paginationTitle: formEditor.pagination.title
    iconIdentifier: content-form
    propertyCollections:
      finishers:
        10:
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.Form.finisher.EmailToSender.editor.header.label
            200:
              identifier: subject
              templateName: Inspector-TextEditor
              label: formEditor.elements.Form.finisher.EmailToSender.editor.subject.label
              propertyPath: options.subject
              enableFormelementSelectionButton: true
              propertyValidators:
                10: NotEmpty
                20: FormElementIdentifierWithinCurlyBracesInclusive
            350:
              identifier: recipients
              templateName: Inspector-PropertyGridEditor
              label: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.label
              propertyPath: options.recipients
              propertyValidators:
                10: NotEmpty
              description: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.description
              isSortable: true
              enableAddRow: true
              enableDeleteRow: true
              useLabelAsFallbackValue: false
              gridColumns:
                -
                  name: value
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
                  enableFormelementSelectionButton: true
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
                  enableFormelementSelectionButton: true
            500:
              identifier: senderAddress
              templateName: Inspector-TextEditor
              label: formEditor.elements.Form.finisher.EmailToSender.editor.senderAddress.label
              propertyPath: options.senderAddress
              enableFormelementSelectionButton: true
              propertyValidatorsMode: OR
              propertyValidators:
                10: NaiveEmail
                20: FormElementIdentifierWithinCurlyBracesExclusive
            600:
              identifier: senderName
              templateName: Inspector-TextEditor
              label: formEditor.elements.Form.finisher.EmailToSender.editor.senderName.label
              propertyPath: options.senderName
              enableFormelementSelectionButton: true
              propertyValidators:
                10: FormElementIdentifierWithinCurlyBracesInclusive
            750:
              identifier: replyToRecipients
              templateName: Inspector-PropertyGridEditor
              label: formEditor.elements.Form.finisher.EmailToSender.editor.replyToRecipients.label
              propertyPath: options.replyToRecipients
              isSortable: true
              enableAddRow: true
              enableDeleteRow: true
              useLabelAsFallbackValue: false
              gridColumns:
                -
                  name: value
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
                  enableFormelementSelectionButton: true
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
                  enableFormelementSelectionButton: true
            850:
              identifier: carbonCopyRecipients
              templateName: Inspector-PropertyGridEditor
              label: formEditor.elements.Form.finisher.EmailToSender.editor.carbonCopyRecipients.label
              propertyPath: options.carbonCopyRecipients
              isSortable: true
              enableAddRow: true
              enableDeleteRow: true
              useLabelAsFallbackValue: false
              gridColumns:
                -
                  name: value
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
                  enableFormelementSelectionButton: true
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
                  enableFormelementSelectionButton: true
            950:
              identifier: blindCarbonCopyRecipients
              templateName: Inspector-PropertyGridEditor
              label: formEditor.elements.Form.finisher.EmailToSender.editor.blindCarbonCopyRecipients.label
              propertyPath: options.blindCarbonCopyRecipients
              isSortable: true
              enableAddRow: true
              enableDeleteRow: true
              useLabelAsFallbackValue: false
              gridColumns:
                -
                  name: value
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
                  enableFormelementSelectionButton: true
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
                  enableFormelementSelectionButton: true
            1050:
              identifier: addHtmlPart
              templateName: Inspector-CheckboxEditor
              label: formEditor.elements.Form.finisher.EmailToSender.editor.addHtmlPart.label
              propertyPath: options.addHtmlPart
              description: formEditor.elements.Form.finisher.EmailToSender.editor.addHtmlPart.description
            1100:
              identifier: attachUploads
              templateName: Inspector-CheckboxEditor
              label: formEditor.elements.Form.finisher.EmailToSender.editor.attachUploads.label
              propertyPath: options.attachUploads
            1200:
              identifier: language
              templateName: Inspector-SingleSelectEditor
              label: formEditor.elements.Form.finisher.EmailToSender.editor.language.label
              propertyPath: options.translation.language
              selectOptions:
                10:
                  value: default
                  label: formEditor.elements.Form.finisher.EmailToSender.editor.language.1
            1400:
              identifier: title
              templateName: Inspector-TextEditor
              label: formEditor.elements.Form.finisher.EmailToSender.editor.title.label
              propertyPath: options.title
              description: formEditor.elements.Form.finisher.EmailToSender.editor.title.description
              enableFormelementSelectionButton: true
              propertyValidators:
                10: FormElementIdentifierWithinCurlyBracesInclusive
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
          identifier: EmailToSender
        20:
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.header.label
            200:
              identifier: subject
              templateName: Inspector-TextEditor
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.subject.label
              propertyPath: options.subject
              enableFormelementSelectionButton: true
              propertyValidators:
                10: NotEmpty
                20: FormElementIdentifierWithinCurlyBracesInclusive
            350:
              identifier: recipients
              templateName: Inspector-PropertyGridEditor
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.recipients.label
              propertyPath: options.recipients
              propertyValidators:
                10: NotEmpty
              description: formEditor.elements.Form.finisher.EmailToReceiver.editor.recipients.description
              isSortable: true
              enableAddRow: true
              enableDeleteRow: true
              useLabelAsFallbackValue: false
              gridColumns:
                -
                  name: value
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
                  enableFormelementSelectionButton: true
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
                  enableFormelementSelectionButton: true
            500:
              identifier: senderAddress
              templateName: Inspector-TextEditor
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.senderAddress.label
              propertyPath: options.senderAddress
              enableFormelementSelectionButton: true
              propertyValidatorsMode: OR
              propertyValidators:
                10: NaiveEmail
                20: FormElementIdentifierWithinCurlyBracesExclusive
            600:
              identifier: senderName
              templateName: Inspector-TextEditor
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.senderName.label
              propertyPath: options.senderName
              enableFormelementSelectionButton: true
              propertyValidators:
                10: FormElementIdentifierWithinCurlyBracesInclusive
            750:
              identifier: replyToRecipients
              templateName: Inspector-PropertyGridEditor
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.replyToRecipients.label
              propertyPath: options.replyToRecipients
              isSortable: true
              enableAddRow: true
              enableDeleteRow: true
              useLabelAsFallbackValue: false
              gridColumns:
                -
                  name: value
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
                  enableFormelementSelectionButton: true
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
                  enableFormelementSelectionButton: true
            850:
              identifier: carbonCopyRecipients
              templateName: Inspector-PropertyGridEditor
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.carbonCopyRecipients.label
              propertyPath: options.carbonCopyRecipients
              isSortable: true
              enableAddRow: true
              enableDeleteRow: true
              useLabelAsFallbackValue: false
              gridColumns:
                -
                  name: value
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
                  enableFormelementSelectionButton: true
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
                  enableFormelementSelectionButton: true
            950:
              identifier: blindCarbonCopyRecipients
              templateName: Inspector-PropertyGridEditor
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.blindCarbonCopyRecipients.label
              propertyPath: options.blindCarbonCopyRecipients
              isSortable: true
              enableAddRow: true
              enableDeleteRow: true
              useLabelAsFallbackValue: false
              gridColumns:
                -
                  name: value
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
                  enableFormelementSelectionButton: true
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
                  enableFormelementSelectionButton: true
            1050:
              identifier: addHtmlPart
              templateName: Inspector-CheckboxEditor
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.addHtmlPart.label
              propertyPath: options.addHtmlPart
              description: formEditor.elements.Form.finisher.EmailToReceiver.editor.addHtmlPart.description
            1100:
              identifier: attachUploads
              templateName: Inspector-CheckboxEditor
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.attachUploads.label
              propertyPath: options.attachUploads
            1200:
              identifier: language
              templateName: Inspector-SingleSelectEditor
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.language.label
              propertyPath: options.translation.language
              selectOptions:
                10:
                  value: default
                  label: formEditor.elements.Form.finisher.EmailToReceiver.editor.language.1
            1400:
              identifier: title
              templateName: Inspector-TextEditor
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.title.label
              propertyPath: options.title
              description: formEditor.elements.Form.finisher.EmailToReceiver.editor.title.description
              enableFormelementSelectionButton: true
              propertyValidators:
                10: FormElementIdentifierWithinCurlyBracesInclusive
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
          identifier: EmailToReceiver
        30:
          identifier: Redirect
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.Form.finisher.Redirect.editor.header.label
            200:
              identifier: pageUid
              templateName: Inspector-Typo3WinBrowserEditor
              label: formEditor.elements.Form.finisher.Redirect.editor.pageUid.label
              buttonLabel: formEditor.elements.Form.finisher.Redirect.editor.pageUid.buttonLabel
              browsableType: pages
              propertyPath: options.pageUid
              propertyValidatorsMode: OR
              propertyValidators:
                10: Integer
                20: FormElementIdentifierWithinCurlyBracesExclusive
            300:
              identifier: additionalParameters
              templateName: Inspector-TextEditor
              label: formEditor.elements.Form.finisher.Redirect.editor.additionalParameters.label
              propertyPath: options.additionalParameters
            400:
              identifier: fragment
              templateName: Inspector-Typo3WinBrowserEditor
              label: formEditor.elements.Form.finisher.Redirect.editor.fragment.label
              buttonLabel: formEditor.elements.Form.finisher.Redirect.editor.fragment.buttonLabel
              browsableType: tt_content
              iconIdentifier: mimetypes-x-content-text
              propertyPath: options.fragment
              description: formEditor.elements.Form.finisher.Redirect.editor.fragment.description
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
        40:
          identifier: DeleteUploads
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.Form.finisher.DeleteUploads.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
        50:
          identifier: Confirmation
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.Form.finisher.Confirmation.editor.header.label
            200:
              identifier: contentElement
              templateName: Inspector-Typo3WinBrowserEditor
              label: formEditor.elements.Form.finisher.Confirmation.editor.contentElement.label
              buttonLabel: formEditor.elements.Form.finisher.Confirmation.editor.contentElement.buttonLabel
              browsableType: tt_content
              iconIdentifier: mimetypes-x-content-text
              propertyPath: options.contentElementUid
              propertyValidatorsMode: OR
              propertyValidators:
                10: IntegerOrEmpty
                20: FormElementIdentifierWithinCurlyBracesExclusive
            300:
              identifier: message
              templateName: Inspector-TextareaEditor
              label: formEditor.elements.Form.finisher.Confirmation.editor.message.label
              propertyPath: options.message
              description: formEditor.elements.Form.finisher.Confirmation.editor.message.description
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
        60:
          identifier: Closure
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.Form.finisher.Closure.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
        70:
          identifier: FlashMessage
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.Form.finisher.FlashMessage.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
        80:
          identifier: SaveToDatabase
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.Form.finisher.SaveToDatabase.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.editors.100
Data type
array/ [FormElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
Copied!

formEditor.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    editors:
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.BaseFormElementMixin.editor.label.label
        propertyPath: label
Copied!

formEditor.editors.300 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.editors.300
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    editors:
      300:
        identifier: 'submitButtonLabel'
        templateName: 'Inspector-TextEditor'
        label: 'formEditor.elements.Form.editor.submitButtonLabel.label'
        propertyPath: 'renderingOptions.submitButtonLabel'
Copied!

formEditor.editors.900 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.editors.900
Data type
array/ [FinishersEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    editors:
      900:
        identifier: finishers
        templateName: Inspector-FinishersEditor
        label: formEditor.elements.Form.editor.finishers.label
        selectOptions:
          10:
            value: ''
            label: formEditor.elements.Form.editor.finishers.EmptyValue.label
          20:
            value: EmailToSender
            label: formEditor.elements.Form.editor.finishers.EmailToSender.label
          30:
            value: EmailToReceiver
            label: formEditor.elements.Form.editor.finishers.EmailToReceiver.label
          40:
            value: Redirect
            label: formEditor.elements.Form.editor.finishers.Redirect.label
          50:
            value: DeleteUploads
            label: formEditor.elements.Form.editor.finishers.DeleteUploads.label
Copied!

formEditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    predefinedDefaults:
      renderingOptions:
        submitButtonLabel: 'formEditor.elements.Form.editor.submitButtonLabel.value'
Copied!
Description
Defines predefined defaults for form element properties which are prefilled, if the form element is added to a form.

formEditor._isCompositeFormElement 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor._isCompositeFormElement
Data type
bool
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  formEditor:
    _isCompositeFormElement: false
Copied!
Description
Internal control setting to define that the form element contains child form elements.

formEditor._isTopLevelFormElement 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor._isTopLevelFormElement
Data type
bool
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  formEditor:
    _isTopLevelFormElement: true
Copied!
Description
Internal control setting to define that the form element must not have a parent form element.

formEditor.saveSuccessFlashMessageTitle 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.saveSuccessFlashMessageTitle
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  formEditor:
    saveSuccessFlashMessageTitle: formEditor.elements.Form.saveSuccessFlashMessageTitle
Copied!
Good to know
Description
Internal setting.

formEditor.saveSuccessFlashMessageMessage 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.saveSuccessFlashMessageMessage
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  formEditor:
    saveSuccessFlashMessageMessage: formEditor.elements.Form.saveSuccessFlashMessageMessage
Copied!
Good to know
Description
Internal setting.

formEditor.saveErrorFlashMessageTitle 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.saveErrorFlashMessageTitle
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  formEditor:
    saveErrorFlashMessageTitle: formEditor.elements.Form.saveErrorFlashMessageTitle
Copied!
Good to know
Description
Internal setting.

formEditor.saveErrorFlashMessageMessage 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.saveErrorFlashMessageMessage
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  formEditor:
    saveErrorFlashMessageMessage: formEditor.elements.Form.saveErrorFlashMessageMessage
Copied!
Good to know
Description
Internal setting.

formEditor.modalValidationErrorsDialogTitle 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.modalValidationErrorsDialogTitle
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  formEditor:
    modalValidationErrorsDialogTitle: formEditor.modals.validationErrors.dialogTitle
Copied!
Good to know
Description
Internal setting.

formEditor.modalValidationErrorsConfirmButton 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.modalValidationErrorsConfirmButton
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  formEditor:
    modalValidationErrorsConfirmButton: formEditor.modals.validationErrors.confirmButton
Copied!
Good to know
Description
Internal setting.

formEditor.modalInsertPagesDialogTitle 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.modalInsertPagesDialogTitle
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  formEditor:
    modalInsertElementsDialogTitle: formEditor.modals.insertElements.dialogTitle
Copied!
Good to know
Description
Internal setting.

formEditor.modalInsertPagesDialogTitle 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.modalInsertPagesDialogTitle
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  formEditor:
    modalInsertPagesDialogTitle: formEditor.modals.newPages.dialogTitle
Copied!
Good to know
Description
Internal setting.

formEditor.modalCloseDialogMessage 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.modalCloseDialogMessage
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  formEditor:
    modalCloseDialogMessage: formEditor.modals.close.dialogMessage
Copied!
Good to know
Description
Internal setting.

formEditor.modalCloseDialogTitle 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.modalCloseDialogTitle
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  formEditor:
    modalCloseDialogTitle: formEditor.modals.close.dialogTitle
Copied!
Good to know
Description
Internal setting.

formEditor.modalCloseConfirmButton 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.modalCloseConfirmButton
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  formEditor:
    modalCloseConfirmButton: formEditor.modals.close.confirmButton
Copied!
Good to know
Description
Internal setting.

formEditor.modalCloseCancelButton 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.modalCloseCancelButton
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  formEditor:
    modalCloseCancelButton: formEditor.modals.close.cancelButton
Copied!
Good to know
Description
Internal setting.

formEditor.modalRemoveElementDialogTitle 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.modalRemoveElementDialogTitle
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  formEditor:
    modalRemoveElementDialogTitle: formEditor.modals.removeElement.dialogTitle
Copied!
Good to know
Description
Internal setting.

formEditor.modalRemoveElementDialogMessage 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.modalRemoveElementDialogMessage
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  formEditor:
    modalRemoveElementDialogMessage: formEditor.modals.removeElement.dialogMessage
Copied!
Good to know
Description
Internal setting.

formEditor.modalRemoveElementConfirmButton 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.modalRemoveElementConfirmButton
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  formEditor:
    modalRemoveElementConfirmButton: formEditor.modals.removeElement.confirmButton
Copied!
Good to know
Description
Internal setting.

formEditor.modalRemoveElementCancelButton 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.modalRemoveElementCancelButton
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  formEditor:
    modalRemoveElementCancelButton: formEditor.modals.removeElement.cancelButton
Copied!
Good to know
Description
Internal setting.

formEditor.modalRemoveElementLastAvailablePageFlashMessageTitle 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.modalRemoveElementLastAvailablePageFlashMessageTitle
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  formEditor:
    modalRemoveElementLastAvailablePageFlashMessageTitle: formEditor.modals.removeElement.lastAvailablePageFlashMessageTitle
Copied!
Good to know
Description
Internal setting.

formEditor.modalRemoveElementLastAvailablePageFlashMessageMessage 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.modalRemoveElementLastAvailablePageFlashMessageMessage
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  formEditor:
    modalRemoveElementLastAvailablePageFlashMessageMessage: formEditor.modals.removeElement.lastAvailablePageFlashMessageMessage
Copied!
Good to know
Description
Internal setting.

formEditor.paginationTitle 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.paginationTitle
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  formEditor:
    paginationTitle: formEditor.pagination.title
Copied!
Good to know
Description
Internal setting.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  formEditor:
    iconIdentifier: content-form
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within

formEditor.propertyCollections.finishers.10 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.10
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        10:
          identifier: EmailToSender
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.Form.finisher.EmailToSender.editor.header.label
            200:
              identifier: subject
              templateName: Inspector-TextEditor
              label: formEditor.elements.Form.finisher.EmailToSender.editor.subject.label
              propertyPath: options.subject
              enableFormelementSelectionButton: true
              propertyValidators:
                10: NotEmpty
                20: FormElementIdentifierWithinCurlyBracesInclusive
            350:
              identifier: recipients
              templateName: Inspector-PropertyGridEditor
              label: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.label
              propertyPath: options.recipients
              propertyValidators:
                10: NotEmpty
              description: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.description
              isSortable: true
              enableAddRow: true
              enableDeleteRow: true
              useLabelAsFallbackValue: false
              gridColumns:
                -
                  name: value
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
                  enableFormelementSelectionButton: true
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
                  enableFormelementSelectionButton: true
            500:
              identifier: senderAddress
              templateName: Inspector-TextEditor
              label: formEditor.elements.Form.finisher.EmailToSender.editor.senderAddress.label
              propertyPath: options.senderAddress
              enableFormelementSelectionButton: true
              propertyValidatorsMode: OR
              propertyValidators:
                10: NaiveEmail
                20: FormElementIdentifierWithinCurlyBracesExclusive
            600:
              identifier: senderName
              templateName: Inspector-TextEditor
              label: formEditor.elements.Form.finisher.EmailToSender.editor.senderName.label
              propertyPath: options.senderName
              enableFormelementSelectionButton: true
              propertyValidators:
                10: FormElementIdentifierWithinCurlyBracesInclusive
            750:
              identifier: replyToRecipients
              templateName: Inspector-PropertyGridEditor
              label: formEditor.elements.Form.finisher.EmailToSender.editor.replyToRecipients.label
              propertyPath: options.replyToRecipients
              isSortable: true
              enableAddRow: true
              enableDeleteRow: true
              useLabelAsFallbackValue: false
              gridColumns:
                -
                  name: value
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
                  enableFormelementSelectionButton: true
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
                  enableFormelementSelectionButton: true
            850:
              identifier: carbonCopyRecipients
              templateName: Inspector-PropertyGridEditor
              label: formEditor.elements.Form.finisher.EmailToSender.editor.carbonCopyRecipients.label
              propertyPath: options.carbonCopyRecipients
              isSortable: true
              enableAddRow: true
              enableDeleteRow: true
              useLabelAsFallbackValue: false
              gridColumns:
                -
                  name: value
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
                  enableFormelementSelectionButton: true
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
                  enableFormelementSelectionButton: true
            950:
              identifier: blindCarbonCopyRecipients
              templateName: Inspector-PropertyGridEditor
              label: formEditor.elements.Form.finisher.EmailToSender.editor.blindCarbonCopyRecipients.label
              propertyPath: options.blindCarbonCopyRecipients
              isSortable: true
              enableAddRow: true
              enableDeleteRow: true
              useLabelAsFallbackValue: false
              gridColumns:
                -
                  name: value
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
                  enableFormelementSelectionButton: true
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
                  enableFormelementSelectionButton: true
            1050:
              identifier: addHtmlPart
              templateName: Inspector-CheckboxEditor
              label: formEditor.elements.Form.finisher.EmailToSender.editor.addHtmlPart.label
              propertyPath: options.addHtmlPart
              description: formEditor.elements.Form.finisher.EmailToSender.editor.addHtmlPart.description
            1100:
              identifier: attachUploads
              templateName: Inspector-CheckboxEditor
              label: formEditor.elements.Form.finisher.EmailToSender.editor.attachUploads.label
              propertyPath: options.attachUploads
            1200:
              identifier: language
              templateName: Inspector-SingleSelectEditor
              label: formEditor.elements.Form.finisher.EmailToSender.editor.language.label
              propertyPath: options.translation.language
              selectOptions:
                10:
                  value: default
                  label: formEditor.elements.Form.finisher.EmailToSender.editor.language.1
            1400:
              identifier: title
              templateName: Inspector-TextEditor
              label: formEditor.elements.Form.finisher.EmailToSender.editor.title.label
              propertyPath: options.title
              description: formEditor.elements.Form.finisher.EmailToSender.editor.title.description
              enableFormelementSelectionButton: true
              propertyValidators:
                10: FormElementIdentifierWithinCurlyBracesInclusive
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.finishers.10.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.10.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        10:
          identifier: EmailToSender
Copied!
Good to know
Description
Identifies the finisher which should be attached to the form definition. Must be equal to an existing <finisherIdentifier>.

formEditor.propertyCollections.finishers.10.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.10.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        10:
          identifier: EmailToSender
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.Form.finisher.EmailToSender.editor.header.label
Copied!

formEditor.propertyCollections.finishers.10.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.10.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        10:
          identifier: EmailToSender
          editors:
            200:
              identifier: subject
              templateName: Inspector-TextEditor
              label: formEditor.elements.Form.finisher.EmailToSender.editor.subject.label
              propertyPath: options.subject
              enableFormelementSelectionButton: true
              propertyValidators:
                10: NotEmpty
                20: FormElementIdentifierWithinCurlyBracesInclusive
Copied!

formEditor.propertyCollections.finishers.10.editors.350 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.10.editors.350
Data type
array/ [PropertyGridEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        10:
          identifier: EmailToSender
          editors:
            350:
              identifier: recipients
              templateName: Inspector-PropertyGridEditor
              label: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.label
              propertyPath: options.recipients
              propertyValidators:
                10: NotEmpty
              description: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.description
              isSortable: true
              enableAddRow: true
              enableDeleteRow: true
              useLabelAsFallbackValue: false
              gridColumns:
                -
                  name: value
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
                  enableFormelementSelectionButton: true
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
                  enableFormelementSelectionButton: true
Copied!

formEditor.propertyCollections.finishers.10.editors.500 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.10.editors.500
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        10:
          identifier: EmailToSender
          editors:
            500:
              identifier: senderAddress
              templateName: Inspector-TextEditor
              label: formEditor.elements.Form.finisher.EmailToSender.editor.senderAddress.label
              propertyPath: options.senderAddress
              enableFormelementSelectionButton: true
              propertyValidatorsMode: OR
              propertyValidators:
                10: NaiveEmail
                20: FormElementIdentifierWithinCurlyBracesExclusive
Copied!

formEditor.propertyCollections.finishers.10.editors.600 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.10.editors.600
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        10:
          identifier: EmailToSender
          editors:
            600:
              identifier: senderName
              templateName: Inspector-TextEditor
              label: formEditor.elements.Form.finisher.EmailToSender.editor.senderName.label
              propertyPath: options.senderName
              enableFormelementSelectionButton: true
              propertyValidators:
                10: FormElementIdentifierWithinCurlyBracesInclusive
Copied!

formEditor.propertyCollections.finishers.10.editors.750 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.10.editors.750
Data type
array/ [PropertyGridEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        10:
          identifier: EmailToSender
          editors:
            750:
              identifier: replyToRecipients
              templateName: Inspector-PropertyGridEditor
              label: formEditor.elements.Form.finisher.EmailToSender.editor.replyToRecipients.label
              propertyPath: options.replyToRecipients
              isSortable: true
              enableAddRow: true
              enableDeleteRow: true
              useLabelAsFallbackValue: false
              gridColumns:
                -
                  name: value
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
                  enableFormelementSelectionButton: true
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
                  enableFormelementSelectionButton: true
Copied!

formEditor.propertyCollections.finishers.10.editors.850 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.10.editors.850
Data type
array/ [PropertyGridEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        10:
          identifier: EmailToSender
          editors:
            850:
              identifier: carbonCopyRecipients
              templateName: Inspector-PropertyGridEditor
              label: formEditor.elements.Form.finisher.EmailToSender.editor.carbonCopyRecipients.label
              propertyPath: options.carbonCopyRecipients
              isSortable: true
              enableAddRow: true
              enableDeleteRow: true
              useLabelAsFallbackValue: false
              gridColumns:
                -
                  name: value
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
                  enableFormelementSelectionButton: true
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
                  enableFormelementSelectionButton: true
Copied!

formEditor.propertyCollections.finishers.10.editors.950 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.10.editors.950
Data type
array/ [PropertyGridEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        10:
          identifier: EmailToSender
          editors:
            950:
              identifier: blindCarbonCopyRecipients
              templateName: Inspector-PropertyGridEditor
              label: formEditor.elements.Form.finisher.EmailToSender.editor.blindCarbonCopyRecipients.label
              propertyPath: options.blindCarbonCopyRecipients
              isSortable: true
              enableAddRow: true
              enableDeleteRow: true
              useLabelAsFallbackValue: false
              gridColumns:
                -
                  name: value
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
                  enableFormelementSelectionButton: true
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
                  enableFormelementSelectionButton: true
Copied!

formEditor.propertyCollections.finishers.10.editors.1050 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.10.editors.1050
Data type
array/ [CheckboxEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        10:
          identifier: EmailToSender
          editors:
            1050:
              identifier: addHtmlPart
              templateName: Inspector-CheckboxEditor
              label: formEditor.elements.Form.finisher.EmailToSender.editor.addHtmlPart.label
              propertyPath: options.addHtmlPart
              description: formEditor.elements.Form.finisher.EmailToSender.editor.addHtmlPart.description
Copied!

formEditor.propertyCollections.finishers.10.editors.1100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.10.editors.1100
Data type
array/ [CheckboxEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        10:
          identifier: EmailToSender
          editors:
            1100:
              identifier: attachUploads
              templateName: Inspector-CheckboxEditor
              label: formEditor.elements.Form.finisher.EmailToSender.editor.attachUploads.label
              propertyPath: options.attachUploads
Copied!

formEditor.propertyCollections.finishers.10.editors.1200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.10.editors.1200
Data type
array/ [SingleSelectEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        10:
          identifier: EmailToSender
          editors:
            1200:
              identifier: language
              templateName: Inspector-SingleSelectEditor
              label: formEditor.elements.Form.finisher.EmailToSender.editor.language.label
              propertyPath: options.translation.language
              selectOptions:
                10:
                  value: default
                  label: formEditor.elements.Form.finisher.EmailToSender.editor.language.1
Copied!

formEditor.propertyCollections.finishers.10.editors.1400 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.10.editors.1400
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        10:
          identifier: EmailToSender
          editors:
            1400:
              identifier: title
              templateName: Inspector-TextEditor
              label: formEditor.elements.Form.finisher.EmailToSender.editor.title.label
              propertyPath: options.title
              description: formEditor.elements.Form.finisher.EmailToSender.editor.title.description
              enableFormelementSelectionButton: true
              propertyValidators:
                10: FormElementIdentifierWithinCurlyBracesInclusive
Copied!

formEditor.propertyCollections.finishers.10.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.10.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        10:
          identifier: EmailToSender
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.finishers.20 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.20
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        20:
          identifier: EmailToReceiver
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.header.label
            200:
              identifier: subject
              templateName: Inspector-TextEditor
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.subject.label
              propertyPath: options.subject
              enableFormelementSelectionButton: true
              propertyValidators:
                10: NotEmpty
                20: FormElementIdentifierWithinCurlyBracesInclusive
            350:
              identifier: recipients
              templateName: Inspector-PropertyGridEditor
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.recipients.label
              propertyPath: options.recipients
              propertyValidators:
                10: NotEmpty
              description: formEditor.elements.Form.finisher.EmailToReceiver.editor.recipients.description
              isSortable: true
              enableAddRow: true
              enableDeleteRow: true
              useLabelAsFallbackValue: false
              gridColumns:
                -
                  name: value
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
                  enableFormelementSelectionButton: true
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
                  enableFormelementSelectionButton: true
            500:
              identifier: senderAddress
              templateName: Inspector-TextEditor
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.senderAddress.label
              propertyPath: options.senderAddress
              enableFormelementSelectionButton: true
              propertyValidatorsMode: OR
              propertyValidators:
                10: NaiveEmail
                20: FormElementIdentifierWithinCurlyBracesExclusive
            600:
              identifier: senderName
              templateName: Inspector-TextEditor
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.senderName.label
              propertyPath: options.senderName
              enableFormelementSelectionButton: true
              propertyValidators:
                10: FormElementIdentifierWithinCurlyBracesInclusive
            750:
              identifier: replyToRecipients
              templateName: Inspector-PropertyGridEditor
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.replyToRecipients.label
              propertyPath: options.replyToRecipients
              isSortable: true
              enableAddRow: true
              enableDeleteRow: true
              useLabelAsFallbackValue: false
              gridColumns:
                -
                  name: value
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
                  enableFormelementSelectionButton: true
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
                  enableFormelementSelectionButton: true
            850:
              identifier: carbonCopyRecipients
              templateName: Inspector-PropertyGridEditor
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.carbonCopyRecipients.label
              propertyPath: options.carbonCopyRecipients
              isSortable: true
              enableAddRow: true
              enableDeleteRow: true
              useLabelAsFallbackValue: false
              gridColumns:
                -
                  name: value
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
                  enableFormelementSelectionButton: true
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
                  enableFormelementSelectionButton: true
            950:
              identifier: blindCarbonCopyRecipients
              templateName: Inspector-PropertyGridEditor
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.blindCarbonCopyRecipients.label
              propertyPath: options.blindCarbonCopyRecipients
              isSortable: true
              enableAddRow: true
              enableDeleteRow: true
              useLabelAsFallbackValue: false
              gridColumns:
                -
                  name: value
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
                  enableFormelementSelectionButton: true
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
                  enableFormelementSelectionButton: true
            1050:
              identifier: addHtmlPart
              templateName: Inspector-CheckboxEditor
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.addHtmlPart.label
              propertyPath: options.addHtmlPart
              description: formEditor.elements.Form.finisher.EmailToReceiver.editor.addHtmlPart.description
            1100:
              identifier: attachUploads
              templateName: Inspector-CheckboxEditor
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.attachUploads.label
              propertyPath: options.attachUploads
            1200:
              identifier: language
              templateName: Inspector-SingleSelectEditor
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.language.label
              propertyPath: options.translation.language
              selectOptions:
                10:
                  value: default
                  label: formEditor.elements.Form.finisher.EmailToReceiver.editor.language.1
            1400:
              identifier: title
              templateName: Inspector-TextEditor
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.title.label
              propertyPath: options.title
              description: formEditor.elements.Form.finisher.EmailToReceiver.editor.title.description
              enableFormelementSelectionButton: true
              propertyValidators:
                10: FormElementIdentifierWithinCurlyBracesInclusive
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.finishers.20.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.20.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        20:
          identifier: EmailToReceiver
Copied!
Good to know
Description
Identifies the finisher which should be attached to the form definition. Must be equal to an existing <finisherIdentifier>.

formEditor.propertyCollections.finishers.20.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.20.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        20:
          identifier: EmailToReceiver
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.header.label
Copied!

formEditor.propertyCollections.finishers.20.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.20.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        20:
          identifier: EmailToReceiver
          editors:
            200:
              identifier: subject
              templateName: Inspector-TextEditor
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.subject.label
              propertyPath: options.subject
              enableFormelementSelectionButton: true
              propertyValidators:
                10: NotEmpty
                20: FormElementIdentifierWithinCurlyBracesInclusive
Copied!

formEditor.propertyCollections.finishers.20.editors.350 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.20.editors.350
Data type
array/ [PropertyGridEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        20:
          identifier: EmailToReceiver
          editors:
            350:
              identifier: recipients
              templateName: Inspector-PropertyGridEditor
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.recipients.label
              propertyPath: options.recipients
              propertyValidators:
                10: NotEmpty
              description: formEditor.elements.Form.finisher.EmailToReceiver.editor.recipients.description
              isSortable: true
              enableAddRow: true
              enableDeleteRow: true
              useLabelAsFallbackValue: false
              gridColumns:
                -
                  name: value
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
                  enableFormelementSelectionButton: true
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
                  enableFormelementSelectionButton: true
Copied!

formEditor.propertyCollections.finishers.20.editors.500 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.20.editors.500
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        20:
          identifier: EmailToReceiver
          editors:
            500:
              identifier: senderAddress
              templateName: Inspector-TextEditor
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.senderAddress.label
              propertyPath: options.senderAddress
              enableFormelementSelectionButton: true
              propertyValidatorsMode: OR
              propertyValidators:
                10: NaiveEmail
                20: FormElementIdentifierWithinCurlyBracesExclusive
Copied!

formEditor.propertyCollections.finishers.20.editors.600 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.20.editors.600
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        20:
          identifier: EmailToReceiver
          editors:
            600:
              identifier: senderName
              templateName: Inspector-TextEditor
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.senderName.label
              propertyPath: options.senderName
              enableFormelementSelectionButton: true
              propertyValidators:
                10: FormElementIdentifierWithinCurlyBracesInclusive
Copied!

formEditor.propertyCollections.finishers.20.editors.750 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.20.editors.750
Data type
array/ [PropertyGridEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        20:
          identifier: EmailToReceiver
          editors:
            750:
              identifier: replyToRecipients
              templateName: Inspector-PropertyGridEditor
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.replyToRecipients.label
              propertyPath: options.replyToRecipients
              isSortable: true
              enableAddRow: true
              enableDeleteRow: true
              useLabelAsFallbackValue: false
              gridColumns:
                -
                  name: value
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
                  enableFormelementSelectionButton: true
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
                  enableFormelementSelectionButton: true
Copied!

formEditor.propertyCollections.finishers.20.editors.850 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.20.editors.850
Data type
array/ [PropertyGridEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        20:
          identifier: EmailToReceiver
          editors:
            850:
              identifier: carbonCopyRecipients
              templateName: Inspector-PropertyGridEditor
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.carbonCopyRecipients.label
              propertyPath: options.carbonCopyRecipients
              isSortable: true
              enableAddRow: true
              enableDeleteRow: true
              useLabelAsFallbackValue: false
              gridColumns:
                -
                  name: value
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
                  enableFormelementSelectionButton: true
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
                  enableFormelementSelectionButton: true
Copied!

formEditor.propertyCollections.finishers.20.editors.950 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.20.editors.950
Data type
array/ [PropertyGridEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        20:
          identifier: EmailToReceiver
          editors:
            950:
              identifier: blindCarbonCopyRecipients
              templateName: Inspector-PropertyGridEditor
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.blindCarbonCopyRecipients.label
              propertyPath: options.blindCarbonCopyRecipients
              isSortable: true
              enableAddRow: true
              enableDeleteRow: true
              useLabelAsFallbackValue: false
              gridColumns:
                -
                  name: value
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
                  enableFormelementSelectionButton: true
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
                  enableFormelementSelectionButton: true
Copied!

formEditor.propertyCollections.finishers.20.editors.1050 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.20.editors.1050
Data type
array/ [CheckboxEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        20:
          identifier: EmailToReceiver
          editors:
            1050:
              identifier: addHtmlPart
              templateName: Inspector-CheckboxEditor
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.addHtmlPart.label
              propertyPath: options.addHtmlPart
              description: formEditor.elements.Form.finisher.EmailToReceiver.editor.addHtmlPart.description
Copied!

formEditor.propertyCollections.finishers.20.editors.1100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.20.editors.1100
Data type
array/ [CheckboxEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        20:
          identifier: EmailToReceiver
          editors:
            1100:
              identifier: attachUploads
              templateName: Inspector-CheckboxEditor
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.attachUploads.label
              propertyPath: options.attachUploads
Copied!

formEditor.propertyCollections.finishers.20.editors.1200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.20.editors.1200
Data type
array/ [SingleSelectEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        20:
          identifier: EmailToReceiver
          editors:
            1200:
              identifier: language
              templateName: Inspector-SingleSelectEditor
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.language.label
              propertyPath: options.translation.language
              selectOptions:
                10:
                  value: default
                  label: formEditor.elements.Form.finisher.EmailToReceiver.editor.language.1
Copied!

formEditor.propertyCollections.finishers.20.editors.1400 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.20.editors.1400
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        10:
          identifier: EmailToSender
          editors:
            1400:
              identifier: title
              templateName: Inspector-TextEditor
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.title.label
              propertyPath: options.title
              description: formEditor.elements.Form.finisher.EmailToReceiver.editor.title.description
              enableFormelementSelectionButton: true
              propertyValidators:
                10: FormElementIdentifierWithinCurlyBracesInclusive
Copied!

formEditor.propertyCollections.finishers.20.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.20.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        20:
          identifier: EmailToReceiver
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.finishers.30 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.30
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        30:
          identifier: Redirect
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.Form.finisher.Redirect.editor.header.label
            200:
              identifier: pageUid
              templateName: Inspector-Typo3WinBrowserEditor
              label: formEditor.elements.Form.finisher.Redirect.editor.pageUid.label
              buttonLabel: formEditor.elements.Form.finisher.Redirect.editor.pageUid.buttonLabel
              browsableType: pages
              propertyPath: options.pageUid
              propertyValidatorsMode: OR
              propertyValidators:
                10: Integer
                20: FormElementIdentifierWithinCurlyBracesExclusive
            300:
              identifier: additionalParameters
              templateName: Inspector-TextEditor
              label: formEditor.elements.Form.finisher.Redirect.editor.additionalParameters.label
              propertyPath: options.additionalParameters
            400:
              identifier: fragment
              templateName: Inspector-Typo3WinBrowserEditor
              label: formEditor.elements.Form.finisher.Redirect.editor.fragment.label
              buttonLabel: formEditor.elements.Form.finisher.Redirect.editor.fragment.buttonLabel
              browsableType: tt_content
              iconIdentifier: mimetypes-x-content-text
              propertyPath: options.fragment
              description: formEditor.elements.Form.finisher.Redirect.editor.fragment.description
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.finishers.30.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.30.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        30:
          identifier: Redirect
Copied!
Good to know
Description
Identifies the finisher which should be attached to the form definition. Must be equal to an existing <finisherIdentifier>.

formEditor.propertyCollections.finishers.30.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.30.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        30:
          identifier: Redirect
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.Form.finisher.Redirect.editor.header.label
Copied!

formEditor.propertyCollections.finishers.30.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.30.editors.200
Data type
array/ [Typo3WinBrowserEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        30:
          identifier: Redirect
          editors:
            200:
              identifier: pageUid
              templateName: Inspector-Typo3WinBrowserEditor
              label: formEditor.elements.Form.finisher.Redirect.editor.pageUid.label
              buttonLabel: formEditor.elements.Form.finisher.Redirect.editor.pageUid.buttonLabel
              browsableType: pages
              propertyPath: options.pageUid
              propertyValidatorsMode: OR
              propertyValidators:
                10: Integer
                20: FormElementIdentifierWithinCurlyBracesExclusive
Copied!

formEditor.propertyCollections.finishers.30.editors.300 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.30.editors.300
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        30:
          identifier: Redirect
          editors:
            300:
              identifier: additionalParameters
              templateName: Inspector-TextEditor
              label: formEditor.elements.Form.finisher.Redirect.editor.additionalParameters.label
              propertyPath: options.additionalParameters
Copied!

formEditor.propertyCollections.finishers.30.editors.400 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.30.editors.400
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        30:
          identifier: Redirect
          editors:
            400:
              identifier: fragment
              templateName: Inspector-Typo3WinBrowserEditor
              label: formEditor.elements.Form.finisher.Redirect.editor.fragment.label
              buttonLabel: formEditor.elements.Form.finisher.Redirect.editor.fragment.buttonLabel
              browsableType: tt_content
              iconIdentifier: mimetypes-x-content-text
              propertyPath: options.fragment
              description: formEditor.elements.Form.finisher.Redirect.editor.fragment.description
Copied!

formEditor.propertyCollections.finishers.30.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.30.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        30:
          identifier: Redirect
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.finishers.40 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.40
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        40:
          identifier: DeleteUploads
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.Form.finisher.DeleteUploads.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.finishers.40.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.40.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        40:
          identifier: DeleteUploads
Copied!
Good to know
Description
Identifies the finisher which should be attached to the form definition. Must be equal to an existing <finisherIdentifier>.

formEditor.propertyCollections.finishers.40.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.40.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        40:
          identifier: DeleteUploads
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.Form.finisher.DeleteUploads.editor.header.label
Copied!

formEditor.propertyCollections.finishers.40.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.40.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        40:
          identifier: DeleteUploads
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.finishers.50 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.50
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        50:
          identifier: Confirmation
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.Form.finisher.Confirmation.editor.header.label
            200:
              identifier: contentElement
              templateName: Inspector-Typo3WinBrowserEditor
              label: formEditor.elements.Form.finisher.Confirmation.editor.contentElement.label
              buttonLabel: formEditor.elements.Form.finisher.Confirmation.editor.contentElement.buttonLabel
              browsableType: tt_content
              iconIdentifier: mimetypes-x-content-text
              propertyPath: options.contentElementUid
              propertyValidatorsMode: OR
              propertyValidators:
                10: IntegerOrEmpty
                20: FormElementIdentifierWithinCurlyBracesExclusive
            300:
              identifier: message
              templateName: Inspector-TextareaEditor
              label: formEditor.elements.Form.finisher.Confirmation.editor.message.label
              propertyPath: options.message
              description: formEditor.elements.Form.finisher.Confirmation.editor.message.description
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.finishers.50.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.50.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        50:
          identifier: Confirmation
Copied!
Good to know
Description
Identifies the finisher which should be attached to the form definition. Must be equal to an existing <finisherIdentifier>.

formEditor.propertyCollections.finishers.50.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.50.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        50:
          identifier: Confirmation
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.Form.finisher.Confirmation.editor.header.label
Copied!

formEditor.propertyCollections.finishers.50.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.50.editors.200
Data type
array/ [Typo3WinBrowserEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        50:
          identifier: Confirmation
          editors:
            200:
              identifier: contentElement
              templateName: Inspector-Typo3WinBrowserEditor
              label: formEditor.elements.Form.finisher.Confirmation.editor.contentElement.label
              buttonLabel: formEditor.elements.Form.finisher.Confirmation.editor.contentElement.buttonLabel
              browsableType: tt_content
              iconIdentifier: mimetypes-x-content-text
              propertyPath: options.contentElementUid
              propertyValidatorsMode: OR
              propertyValidators:
                10: IntegerOrEmpty
                20: FormElementIdentifierWithinCurlyBracesExclusive
Copied!

formEditor.propertyCollections.finishers.50.editors.300 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.50.editors.300
Data type
array/ [TextareaEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        50:
          identifier: Confirmation
          editors:
            300:
              identifier: message
              templateName: Inspector-TextareaEditor
              label: formEditor.elements.Form.finisher.Confirmation.editor.message.label
              propertyPath: options.message
              description: formEditor.elements.Form.finisher.Confirmation.editor.message.description
Copied!

formEditor.propertyCollections.finishers.50.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.50.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        50:
          identifier: Confirmation
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.finishers.60 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.60
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        60:
          identifier: Closure
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.Form.finisher.Closure.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.finishers.60.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.60.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        60:
          identifier: Closure
Copied!
Good to know
Description
Identifies the finisher which should be attached to the form definition. Must be equal to an existing <finisherIdentifier>.

formEditor.propertyCollections.finishers.60.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.60.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        60:
          identifier: Closure
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.Form.finisher.Closure.editor.header.label
Copied!

formEditor.propertyCollections.finishers.60.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.60.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        60:
          identifier: Closure
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.finishers.70 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.70
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        70:
          identifier: FlashMessage
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.Form.finisher.FlashMessage.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.finishers.70.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.70.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        70:
          identifier: FlashMessage
Copied!
Good to know
Description
Identifies the finisher which should be attached to the form definition. Must be equal to an existing <finisherIdentifier>.

formEditor.propertyCollections.finishers.70.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.70.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        70:
          identifier: FlashMessage
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.Form.finisher.FlashMessage.editor.header.label
Copied!

formEditor.propertyCollections.finishers.70.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.70.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        70:
          identifier: FlashMessage
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.finishers.80 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.80
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        80:
          identifier: SaveToDatabase
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.Form.finisher.SaveToDatabase.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.finishers.80.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.80.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        80:
          identifier: SaveToDatabase
Copied!
Good to know
Description
Identifies the finisher which should be attached to the form definition. Must be equal to an existing <finisherIdentifier>.

formEditor.propertyCollections.finishers.80.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.80.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        80:
          identifier: SaveToDatabase
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.Form.finisher.SaveToDatabase.editor.header.label
Copied!

formEditor.propertyCollections.finishers.80.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.propertyCollections.finishers.80.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    propertyCollections:
      finishers:
        80:
          identifier: SaveToDatabase
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

[formElementsDefinition] 

Properties 

[formElementsDefinition] 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition
Data type
array
Needed by
Frontend/ Backend (form editor)
Mandatory
Yes
Default value
prototypes:
  <prototypeIdentifier>:
    formElementsDefinition:
      [...]
Copied!
Good to know
Description
Array which defines the available form elements. Every key within this array is called the <formElementTypeIdentifier>.

<formElementTypeIdentifier> 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>
Data type
string
Needed by
Frontend/ Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
prototypes:
  standard:
    Form:
      [...]
    Page:
      [...]
    SummaryPage:
      [...]
    Fieldset:
      [...]
    GridRow:
      [...]
    Text:
      [...]
    Password:
      [...]
    AdvancedPassword:
      [...]
    Textarea:
      [...]
    Honeypot:
      [...]
    Hidden:
      [...]
    Email:
      [...]
    Telephone:
      [...]
    Url:
      [...]
    Number:
      [...]
    Date:
      [...]
    Checkbox:
      [...]
    MultiCheckbox:
      [...]
    MultiSelect:
      [...]
    RadioButton:
      [...]
    SingleSelect:
      [...]
    DatePicker:
      [...]
    StaticText:
      [...]
    ContentElement:
      [...]
    FileUpload:
      [...]
    ImageUpload:
      [...]
Copied!
Good to know
Description
This array key identifies a form element. This identifier could be used to attach a form element to a form.

Common <formElementTypeIdentifier> properties 

defaultValue 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.defaultValue
Data type
string/ array
Needed by
Frontend/ Backend (form editor)
Mandatory
No
Default value
undefined
Description
If set this string/ array will be used as default value of the form element. Array is in place for multi value elements (e.g. the MultiSelect form element).

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.implementationClassName
Data type
string
Needed by
Frontend/ Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
Classname which implements the form element.

renderingOptions.translation.translationFiles 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.renderingOptions.translation.translationFiles
Data type
string/ array
Needed by
Frontend/ Backend (form editor)
Mandatory
No
Default value
Depends (see concrete element configuration)
Good to know
Description
Filesystem path(s) to translation files which should be searched for form element property translations. If translationFiles is undefined, - "prototypes.prototypeIdentifier.formElementsDefinition.Form.renderingOptions.translation.translationFiles" will be used.

renderingOptions.translation.translatePropertyValueIfEmpty 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.renderingoptions.translation.translatepropertyvalueifempty
Data type
bool
Needed by
Frontend/ Backend (form editor)
Mandatory
No
Default value
true
Good to know
Description
If set to false, the form element property translation will be skipped if the form element property value is empty.

renderingOptions.templateName 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.renderingOptions.templateName
Data type
string
Needed by
Frontend/ Backend (form editor)
Mandatory
(see concrete element configuration)
Default value
undefined
Good to know
Description
Set templateName to define a custom template name which should be used instead of the <formElementTypeIdentifier>.

properties 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.properties
Data type
array
Needed by
Frontend/ Backend (form editor)
Mandatory
No
Default value
Depends (see concrete element configuration)
Good to know
Description
Array with form element specific properties.

properties.elementDescription 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.properties.elementDescription
Data type
string
Needed by
Frontend/ Backend (form editor)
Mandatory
No
Default value
Undefined
Good to know
Description
Set a description of the form element. By default, it is displayed below the form element.

properties.fluidAdditionalAttributes 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.properties.fluidAdditionalAttributes
Data type
array
Needed by
Frontend/ Backend (form editor)
Mandatory
No
Default value
Depends (see concrete element configuration)
Good to know
Description
The values within this array are directly used within the form element ViewHelper's property additionalAttributes.

properties.gridColumnClassAutoConfiguration 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.properties.gridColumnClassAutoConfiguration
Data type
array
Needed by
Frontend/ Backend (form editor)
Mandatory
No
Default value
Undefined
Related options
Description

If the form element lies within a GridRow you can define the number of columns which the form element should occupy. Each viewPorts configuration key has to match with on ofe the defined viewports within prototypes.<prototypeIdentifier>.formElementsDefinition.GridRow.properties.gridColumnClassAutoConfiguration.viewPorts

gridColumnClassAutoConfiguration:
  viewPorts:
    lg:
      numbersOfColumnsToUse: '2'
    md:
      numbersOfColumnsToUse: '3'
    sm:
      numbersOfColumnsToUse: '4'
    xs:
      numbersOfColumnsToUse: '5'
Copied!

label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.label
Data type
string
Needed by
Frontend/ Backend (form editor)
Mandatory
No
Default value
Depends (see concrete element configuration)
Good to know
Description
The label of the form element.

formEditor 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor
Data type
array
Needed by
Backend (form editor)
Mandatory
No (but recommended)
Default value
Depends (see concrete element configuration)
Description
Array with configurations for the form editor

formEditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
Defines predefined defaults for form element properties which are prefilled, if the form element is added to a form.

formEditor.propertyCollections 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.propertyCollections
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value
Depends (see concrete element configuration)
Good to know
Description
Array with configurations for property collections for the form element.

formEditor.propertyCollections.validators 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.propertyCollections.validators
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value
Depends (see concrete element configuration)
Good to know
Description
Array with configurations for available validators for a form element.

formEditor.propertyCollections.validators.[*].identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.propertyCollections.validators.[*].identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.[*].editors 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.propertyCollections.validators.[*].editors
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
Array with available inspector editors for this validator.

formEditor.propertyCollections.finishers 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.propertyCollections.finishers
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value
Depends (see concrete element configuration)
Good to know
Description
Array with configurations for available finisher for a form definition.

formEditor.propertyCollections.finishers.[*].identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.propertyCollections.finishers.[*].identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
No
Default value
Depends (see concrete element configuration)
Good to know
Description
Identifies the finisher which should be attached to the form definition. Must be equal to an existing <finisherIdentifier>.

formEditor.propertyCollections.finishers.[*].editors 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.propertyCollections.finishers.[*].editors
Data type
string
Needed by
Backend (form editor)
Mandatory
No
Default value
Depends (see concrete element configuration)
Good to know
Description
Array with available inspector editors for this finisher.

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
This label will be shown within the "new element" Modal.

formEditor.group 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.group
Data type
string
Needed by
Backend (form editor)
Mandatory
No
Related options
Default value
Depends (see concrete element configuration)
Description
Define within which group within the form editor "new Element" modal the form element should be shown. The group value must be equal to an array key within formElementGroups.

formEditor.groupSorting 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.groupSorting
Data type
int
Needed by
Backend (form editor)
Mandatory
No
Default value
Depends (see concrete element configuration)
Description
The position within the formEditor.group for this form element.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within

formEditor.editors 

Concrete configurations 

[<formElementTypeIdentifier>][formEditor][editors] 

Properties 

<formElementTypeIdentifier>.formEditor.editors 

Option path
prototypes.<prototypeidentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors
Data type
array
Needed by
Backend (form editor)
Mandatory
Depends (see concrete element configuration)
Default value
Depends (see concrete element configuration)
Good to know
Description
Array with numerical keys. Each arrayitem describes an inspector editor which is used to write values into a form element property.

Common [<formElementTypeIdentifier>][formEditor][editors][*] properties 

identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
Identifies the current inspector editor within the current form element. The identifier is a text of your choice but must be unique within the optionpath prototypes.prototypeIdentifier.formElementsDefinition.formelementtypeidentifier.formEditor.editors.

templateName 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.templateName
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Related options
Default value
Depends (see concrete element configuration)
Good to know
Description

The inline HTML template which is used for this inspector editor. Must be equal to an existing array key within prototypes.<prototypeIdentifier>.formEditor.formEditorPartials and must be started with 'Inspector-' by convention.

label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
The label for this inspector editor which is shown within the inspector component.

propertyPath 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.propertyPath
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
The path to the property of the form element which should be written by this inspector editor.

available inspector editors 

[CheckboxEditor] 

Introduction 

Shows a checkbox which write 'true' or 'false' within the form definition for a form element property.

Properties 

templateName 

Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Related options
value
Inspector-CheckboxEditor
Good to know
Description

The inline HTML template which is used for this inspector editor. Must be equal to an existing array key within prototypes.<prototypeIdentifier>.formEditor.formEditorPartials and must be started with 'Inspector-' by convention.

identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
Identifies the current inspector editor within the current form element. The identifier is a text of your choice but must be unique within the optionpath prototypes.prototypeIdentifier.formElementsDefinition.formelementtypeidentifier.formEditor.editors.

label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
The label for this inspector editor which is shown within the inspector component.

propertyPath 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.propertyPath
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
The path to the property of the form element which should be written by this inspector editor.

[CollectionElementHeaderEditor] 

Introduction 

This is not really an editor because this editor don't write values into the form definition. This editor show the header area for collection elements (finishers/ validators) with it's icon and label.

Properties 

templateName 

Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Related options
value
Inspector-CollectionElementHeaderEditor
Good to know
Description

The inline HTML template which is used for this inspector editor. Must be equal to an existing array key within prototypes.<prototypeIdentifier>.formEditor.formEditorPartials and must be started with 'Inspector-' by convention.

identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
Identifies the current inspector editor within the current form element. The identifier is a text of your choice but must be unique within the optionpath prototypes.prototypeIdentifier.formElementsDefinition.formelementtypeidentifier.formEditor.editors.

label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
The label for this inspector editor which is shown within the inspector component.

[FinishersEditor] 

Introduction 

Shows a select list with finishers. If a finisher is already added to the form definition, then this finisher will be removed from the select list.

Properties 

templateName 

Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Related options
value
Inspector-FinishersEditor
Good to know
Description

The inline HTML template which is used for this inspector editor. Must be equal to an existing array key within prototypes.<prototypeIdentifier>.formEditor.formEditorPartials and must be started with 'Inspector-' by convention.

identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
Identifies the current inspector editor within the current form element. The identifier is a text of your choice but must be unique within the optionpath prototypes.prototypeIdentifier.formElementsDefinition.formelementtypeidentifier.formEditor.editors.

label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
The label for this inspector editor which is shown within the inspector component.

selectOptions.[*].value 

Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Related options
Description
Has to match with a prototypes.<prototypeIdentifier>.finishersdefinition configuration key.

selectOptions.[*].label 

Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Description
The label which is shown within the select field.

[FormElementHeaderEditor] 

Introduction 

This is not really an editor because this editor don't write values into the form definition. This editor show the header area for the form element with it's icon and label.

Properties 

templateName 

Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Related options
value
Inspector-FormElementHeaderEditor
Good to know
Description

The inline HTML template which is used for this inspector editor. Must be equal to an existing array key within prototypes.<prototypeIdentifier>.formEditor.formEditorPartials and must be started with 'Inspector-' by convention.

identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
Identifies the current inspector editor within the current form element. The identifier is a text of your choice but must be unique within the optionpath prototypes.prototypeIdentifier.formElementsDefinition.formelementtypeidentifier.formEditor.editors.

[GridColumnViewPortConfigurationEditor] 

Introduction 

Shows a viewport selector as buttons and an input field. With this editor, you can define how many columns per viewPort an form element should occupy.

Properties 

templateName 

Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Related options
value
Inspector-GridColumnViewPortConfigurationEditor
Good to know
Description

The inline HTML template which is used for this inspector editor. Must be equal to an existing array key within prototypes.<prototypeIdentifier>.formEditor.formEditorPartials and must be started with 'Inspector-' by convention.

identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
Identifies the current inspector editor within the current form element. The identifier is a text of your choice but must be unique within the optionpath prototypes.prototypeIdentifier.formElementsDefinition.formelementtypeidentifier.formEditor.editors.

label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
The label for this inspector editor which is shown within the inspector component.

configurationOptions.viewPorts.[*].viewPortIdentifier 

Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Related options
Description
Has to match with a prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.properties.gridColumnClassAutoConfiguration.viewPorts configuration key.

configurationOptions.viewPorts.[*].label 

Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Description
The label for the viewport button.

configurationOptions.numbersOfColumnsToUse.label 

Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Description
The label for the "Numbers of columns" input field.

configurationOptions.numbersOfColumnsToUse.propertyPath 

Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Description
The path to the property of the form element which should be written.

configurationOptions.numbersOfColumnsToUse.description 

Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Description
A text which is shown at the bottom of the "Numbers of columns" input field.

[MultiSelectEditor] 

Introduction 

Shows a multiselect list with values. If one or more selectoptions are selected, then the option value will be written within a form element property which is defined by the "propertyPath" option.

Properties 

templateName 

Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Related options
value
Inspector-MultiSelectEditor
Good to know
Description

The inline HTML template which is used for this inspector editor. Must be equal to an existing array key within prototypes.<prototypeIdentifier>.formEditor.formEditorPartials and must be started with 'Inspector-' by convention.

identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
Identifies the current inspector editor within the current form element. The identifier is a text of your choice but must be unique within the optionpath prototypes.prototypeIdentifier.formElementsDefinition.formelementtypeidentifier.formEditor.editors.

label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
The label for this inspector editor which is shown within the inspector component.

propertyPath 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.propertyPath
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
The path to the property of the form element which should be written by this inspector editor.

selectOptions.[*].value 

Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Description
The value which should be written into the corresponding form elements property. The corresponding form elements property is identified by the propertyPath option.

selectOptions.[*].label 

Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Description
The label which is shown within the select field.

[PropertyGridEditor] 

Introduction 

Shows a grid which allows you to add (and remove) multiple rows and fill values for each row.

Properties 

templateName 

Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Related options
value
Inspector-PropertyGridEditor
Good to know
Description

The inline HTML template which is used for this inspector editor. Must be equal to an existing array key within prototypes.<prototypeIdentifier>.formEditor.formEditorPartials and must be started with 'Inspector-' by convention.

identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
Identifies the current inspector editor within the current form element. The identifier is a text of your choice but must be unique within the optionpath prototypes.prototypeIdentifier.formElementsDefinition.formelementtypeidentifier.formEditor.editors.

label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
The label for this inspector editor which is shown within the inspector component.

propertyPath 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.propertyPath
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
The path to the property of the form element which should be written by this inspector editor.

isSortable 

Data type
bool
Needed by
Backend (form editor)
Mandatory
Yes
Good to know
Description
If set to 'false' the rows are not sortable.

enableAddRow 

Data type
bool
Needed by
Backend (form editor)
Mandatory
Yes
Good to know
Description
If set to 'false' the "add new row" button is disabled.

enableDeleteRow 

Data type
bool
Needed by
Backend (form editor)
Mandatory
Yes
Good to know
Description
If set to 'false' the "delete row" button is disabled.

multiSelection 

Data type
bool
Needed by
Backend (form editor)
Mandatory
Yes
Good to know
Description
If set to 'false' only one row can be marked as preselected.

removeLastAvailableRowFlashMessageTitle 

Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Good to know
Description
There must be at least one existing row within this inspector editor. If the last existing row is tried to be removed a flash message is shown. This property defines the title for the flash message.

removeLastAvailableRowFlashMessageMessage 

Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Good to know
Description
There must be at least one existing row within this inspector editor. If the last existing row is tried to be removed a flash message is shown. This property defines the text for the flash message.

[RemoveElementEditor] 

Introduction 

This editor show a button which allows you to remove the form element or the collection element (finishers/ validators).

Properties 

templateName 

Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Related options
value
Inspector-RemoveElementEditor
Good to know
Description

The inline HTML template which is used for this inspector editor. Must be equal to an existing array key within prototypes.<prototypeIdentifier>.formEditor.formEditorPartials and must be started with 'Inspector-' by convention.

identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
Identifies the current inspector editor within the current form element. The identifier is a text of your choice but must be unique within the optionpath prototypes.prototypeIdentifier.formElementsDefinition.formelementtypeidentifier.formEditor.editors.

[RequiredValidatorEditor] 

Introduction 

Shows a checkbox. If set, a validator ('NotEmpty' by default) will be written into the form definition. In addition another property could be written into the form definition.

Properties 

templateName 

Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Related options
value
Inspector-RequiredValidatorEditor
Good to know
Description

The inline HTML template which is used for this inspector editor. Must be equal to an existing array key within prototypes.<prototypeIdentifier>.formEditor.formEditorPartials and must be started with 'Inspector-' by convention.

identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
Identifies the current inspector editor within the current form element. The identifier is a text of your choice but must be unique within the optionpath prototypes.prototypeIdentifier.formElementsDefinition.formelementtypeidentifier.formEditor.editors.

label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
The label for this inspector editor which is shown within the inspector component.

validatorIdentifier 

Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Good to know
Description
The <validatorIdentifier> which should be used.

propertyPath 

Data type
string
Needed by
Backend (form editor)
Mandatory
No
Good to know
Description
An property path which should be written into the form definition` if the checkbox is set.

propertyValue 

Data type
string
Needed by
Backend (form editor)
Mandatory
No
Good to know
Description
The value for the property path which should be written into the form definition` if the checkbox is set.

[SingleSelectEditor] 

Introduction 

Shows a single select list with values. If a selectoption is selected, then the option value will be written within a form element property which is defined by the "propertyPath" option.

Properties 

templateName 

Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Related options
value
Inspector-SingleSelectEditor
Good to know
Description

The inline HTML template which is used for this inspector editor. Must be equal to an existing array key within prototypes.<prototypeIdentifier>.formEditor.formEditorPartials and must be started with 'Inspector-' by convention.

identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
Identifies the current inspector editor within the current form element. The identifier is a text of your choice but must be unique within the optionpath prototypes.prototypeIdentifier.formElementsDefinition.formelementtypeidentifier.formEditor.editors.

label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
The label for this inspector editor which is shown within the inspector component.

propertyPath 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.propertyPath
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
The path to the property of the form element which should be written by this inspector editor.

selectOptions.[*].value 

Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Description
The value which should be written into the corresponding form elements property. The corresponding form elements property is identified by the propertyPath option.

selectOptions.[*].label 

Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Description
The label which is shown within the select field.

[TextareaEditor] 

Introduction 

Shows a textarea.

Properties 

templateName 

Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Related options
value
Inspector-TextareaEditor
Good to know
Description

The inline HTML template which is used for this inspector editor. Must be equal to an existing array key within prototypes.<prototypeIdentifier>.formEditor.formEditorPartials and must be started with 'Inspector-' by convention.

identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
Identifies the current inspector editor within the current form element. The identifier is a text of your choice but must be unique within the optionpath prototypes.prototypeIdentifier.formElementsDefinition.formelementtypeidentifier.formEditor.editors.

label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
The label for this inspector editor which is shown within the inspector component.

propertyPath 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.propertyPath
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
The path to the property of the form element which should be written by this inspector editor.

enableRichtext 

Data type
boolean
Needed by
Backend (form editor)
Mandatory
No
Default value
false
Description

If set to true, the textarea will be rendered as a rich text editor using CKEditor 5. This allows for formatted text input with features like bold, italic, links, and lists.

The RTE configuration is loaded from the global TYPO3 RTE presets defined in the system configuration. Use the richtextConfiguration option to specify which preset should be used.

richtextConfiguration 

Data type
string
Needed by
Backend (form editor)
Mandatory
No
Default value
'form-label'
Related options
Description

Defines which RTE preset configuration should be used when enableRichtext is true. The preset name must correspond to a preset defined in the global TYPO3 RTE configuration.

Common preset names include:

  • form-label - Simple formatting for labels and short texts (bold, italic, link) - default
  • form-content - Extended formatting for content fields (includes lists)
  • default - The default TYPO3 RTE configuration
  • minimal - A minimal configuration with basic formatting
  • full - A full-featured configuration with all available features

If the specified preset does not exist, the system will fall back to the 'form-label' preset.

[TextEditor] 

Introduction 

Shows a single line textfield.

Properties 

templateName 

Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Related options
value
Inspector-TextEditor
Good to know
Description

The inline HTML template which is used for this inspector editor. Must be equal to an existing array key within prototypes.<prototypeIdentifier>.formEditor.formEditorPartials and must be started with 'Inspector-' by convention.

identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
Identifies the current inspector editor within the current form element. The identifier is a text of your choice but must be unique within the optionpath prototypes.prototypeIdentifier.formElementsDefinition.formelementtypeidentifier.formEditor.editors.

label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
The label for this inspector editor which is shown within the inspector component.

propertyPath 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.propertyPath
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
The path to the property of the form element which should be written by this inspector editor.

doNotSetIfPropertyValueIsEmpty 

Data type
bool
Needed by
Backend (form editor)
Mandatory
No
Good to know
Description
If set to true then the property which should be written through this inspector editor will be removed within the form definition if the value from the inspector editor is empty instead of writing an empty value ('') for this property.

propertyValidators 

Data type
array
Needed by
Backend (form editor)
Mandatory
No
Related options
Good to know
Description

This inspector editors is able to validate it's value through JavaScript methods. This JavaScript validators can be registered through getFormEditorApp().addPropertyValidationValidator(). The first method argument is the identifier for such a validator. Every array value within propertyValidators must be equal to such an identifier.

For example:

.. code-block:: yaml

propertyValidators:
10: 'Integer' 20: 'FormElementIdentifierWithinCurlyBracesExclusive'

propertyValidatorsMode 

Data type
string
Needed by
Backend (form editor)
Mandatory
No
Default value
AND
possible values
OR/ AND
Good to know
Description
If set to 'OR' then at least one validator must be valid to accept the inspector editor value. If set to 'AND' then all validators must be valid.

description 

Data type
string
Needed by
Backend (form editor)
Mandatory
No
Good to know
Description
A text which is shown at the bottom of the inspector editor.

additionalElementPropertyPaths 

Data type
array
Needed by
Backend (form editor)
Mandatory
No
Good to know
Description

An array which holds property paths which should be written in addition to the propertyPath option.

For example:

.. code-block:: yaml

additionalElementPropertyPaths:
10: 'properties.fluidAdditionalAttributes.maxlength'

[Typo3WinBrowserEditor] 

Introduction 

Shows a popup window to select a record (e.g. pages or tt_content records) as you know it from within the form engine.

Properties 

templateName 

Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Related options
value
Inspector-Typo3WinBrowserEditor
Good to know
Description

The inline HTML template which is used for this inspector editor. Must be equal to an existing array key within prototypes.<prototypeIdentifier>.formEditor.formEditorPartials and must be started with 'Inspector-' by convention.

identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
Identifies the current inspector editor within the current form element. The identifier is a text of your choice but must be unique within the optionpath prototypes.prototypeIdentifier.formElementsDefinition.formelementtypeidentifier.formEditor.editors.

label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
The label for this inspector editor which is shown within the inspector component.

propertyPath 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.propertyPath
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
The path to the property of the form element which should be written by this inspector editor.

buttonLabel 

Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Good to know
Description
The label for the button which opens the popup window.

browsableType 

Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Good to know
Description
The allowed selectable record types e.g 'pages' or 'tt_content'.

iconIdentifier 

Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Good to know
Description
The icon to use for the button which triggers the record browser.

propertyValidators 

Data type
array
Needed by
Backend (form editor)
Mandatory
No
Related options
Good to know
Description

This inspector editors is able to validate it's value through JavaScript methods. This JavaScript validators can be registered through getFormEditorApp().addPropertyValidationValidator(). The first method argument is the identifier for such a validator. Every array value within propertyValidators must be equal to such an identifier.

For example:

.. code-block:: yaml

propertyValidators:
10: 'Integer' 20: 'FormElementIdentifierWithinCurlyBracesExclusive'

propertyValidatorsMode 

Data type
string
Needed by
Backend (form editor)
Mandatory
No
Default value
AND
possible values
OR/ AND
Good to know
Description
If set to 'OR' then at least one validator must be valid to accept the inspector editor value. If set to 'AND' then all validators must be valid.

description 

Data type
string
Needed by
Backend (form editor)
Mandatory
No
Good to know
Description
A text which is shown at the bottom of the inspector editor.

[ValidatorsEditor] 

Introduction 

Shows a select list with validators. If a validator is already added to the form element, then this validator will be removed from the select list.

Properties 

templateName 

Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Related options
value
Inspector-FinishersEditor
Good to know
Description

The inline HTML template which is used for this inspector editor. Must be equal to an existing array key within prototypes.<prototypeIdentifier>.formEditor.formEditorPartials and must be started with 'Inspector-' by convention.

identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
Identifies the current inspector editor within the current form element. The identifier is a text of your choice but must be unique within the optionpath prototypes.prototypeIdentifier.formElementsDefinition.formelementtypeidentifier.formEditor.editors.

label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
The label for this inspector editor which is shown within the inspector component.

selectOptions.[*].value 

Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Related options
Description
Has to match with a prototypes.<prototypeIdentifier>.validatorsDefinition configuration key.

selectOptions.[*].label 

Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Description
The label which is shown within the select field.

[ValidationErrorMessageEditor] 

Introduction 

Shows a textarea. It allows the definition of custom validation error messages. Within the form editor, one can set those error messages for all existing validators.

Properties 

templateName 

Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Related options
value
Inspector-ValidationErrorMessageEditor
Good to know
Description

The inline HTML template which is used for this inspector editor. Must be equal to an existing array key within prototypes.<prototypeIdentifier>.formEditor.formEditorPartials and must be started with 'Inspector-' by convention.

identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
Identifies the current inspector editor within the current form element. The identifier is a text of your choice but must be unique within the optionpath prototypes.prototypeIdentifier.formElementsDefinition.formelementtypeidentifier.formEditor.editors.

label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
The label for this inspector editor which is shown within the inspector component.

propertyPath 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.<formElementTypeIdentifier>.formEditor.editors.*.propertyPath
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete element configuration)
Good to know
Description
The path to the property of the form element which should be written by this inspector editor.

description 

Data type
string
Needed by
Backend (form editor)
Mandatory
No
Good to know
Description
A text which is shown at the bottom of the inspector editor.

[AdvancedPassword] 

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.implementationClassName
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
No
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
AdvancedPassword:
  implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\AdvancedPassword
Copied!
Description
Classname which implements the form element.

properties.containerClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.properties.containerClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
AdvancedPassword:
  properties:
    containerClassAttribute: input
    elementClassAttribute: input-medium
    elementErrorClassAttribute: error
    confirmationLabel: ''
    confirmationClassAttribute: input-medium
Copied!
Description
A CSS class which is typically wrapped around the form elements.

properties.elementClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.properties.elementClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
AdvancedPassword:
  properties:
    containerClassAttribute: input
    elementClassAttribute: input-medium
    elementErrorClassAttribute: error
    confirmationLabel: ''
    confirmationClassAttribute: input-medium
Copied!
Description
A CSS class written to the form element.

properties.elementDescription 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.properties.elementDescription
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
Form editor can write this property into the form definition (for prototype 'standard')
Yes
Mandatory
No
Default value (for prototype 'standard')
Undefined
Good to know
Description
Set a description of the form element. By default, it is displayed below the form element.

properties.elementErrorClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.properties.elementErrorClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
AdvancedPassword:
  properties:
    containerClassAttribute: input
    elementClassAttribute: input-medium
    elementErrorClassAttribute: error
    confirmationLabel: ''
    confirmationClassAttribute: input-medium
Copied!
Description
A CSS class which is written to the form element if validation errors exists.

properties.confirmationLabel 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.properties.confirmationLabel
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
Yes
Mandatory
No
Default value (for prototype 'standard')
AdvancedPassword:
  properties:
    containerClassAttribute: input
    elementClassAttribute: input-medium
    elementErrorClassAttribute: error
    confirmationLabel: ''
    confirmationClassAttribute: input-medium
Copied!
Description
The label for the password confirmation form element.

properties.confirmationClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.properties.confirmationClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
AdvancedPassword:
  properties:
    containerClassAttribute: input
    elementClassAttribute: input-medium
    elementErrorClassAttribute: error
    confirmationLabel: ''
    confirmationClassAttribute: input-medium
Copied!
Description
A CSS class written to the password confirmation form element.

formEditor 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.label.label
        propertyPath: label
      230:
         identifier: elementDescription
         templateName: Inspector-TextEditor
         label: formEditor.elements.FormElement.editor.elementDescription.label
         propertyPath: properties.elementDescription
      300:
        identifier: confirmationLabel
        templateName: Inspector-TextEditor
        label: formEditor.elements.AdvancedPassword.editor.confirmationLabel.label
        propertyPath: properties.confirmationLabel
      400:
        identifier: placeholder
        templateName: Inspector-TextEditor
        label: formEditor.elements.TextMixin.editor.placeholder.label
        propertyPath: properties.fluidAdditionalAttributes.placeholder
        compatibilityPropertyPath: properties.placeholder
        doNotSetIfPropertyValueIsEmpty: true
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
      800:
        identifier: requiredValidator
        templateName: Inspector-RequiredValidatorEditor
        label: formEditor.elements.FormElement.editor.requiredValidator.label
        validatorIdentifier: NotEmpty
        propertyPath: properties.fluidAdditionalAttributes.required
        propertyValue: required
      900:
        identifier: validators
        templateName: Inspector-ValidatorsEditor
        label: formEditor.elements.TextMixin.editor.validators.label
        selectOptions:
          10:
            value: ''
            label: formEditor.elements.TextMixin.editor.validators.EmptyValue.label
          20:
            value: Alphanumeric
            label: formEditor.elements.TextMixin.editor.validators.Alphanumeric.label
          40:
            value: StringLength
            label: formEditor.elements.TextMixin.editor.validators.StringLength.label
          50:
            value: EmailAddress
            label: formEditor.elements.TextMixin.editor.validators.EmailAddress.label
          60:
            value: Integer
            label: formEditor.elements.TextMixin.editor.validators.Integer.label
          70:
            value: Float
            label: formEditor.elements.TextMixin.editor.validators.Float.label
          80:
            value: NumberRange
            label: formEditor.elements.TextMixin.editor.validators.NumberRange.label
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
    predefinedDefaults:
      properties:
        confirmationLabel: formEditor.element.AdvancedPassword.editor.confirmationLabel.predefinedDefaults
    propertyCollections:
      validators:
        10:
          identifier: Alphanumeric
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Alphanumeric.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
        20:
          identifier: Text
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Text.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
        30:
          identifier: StringLength
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.StringLength.editor.header.label
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.minlength
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.maxlength
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
        40:
          identifier: EmailAddress
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.EmailAddress.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
        50:
          identifier: Integer
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Integer.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
        60:
          identifier: Float
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Float.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
        70:
          identifier: NumberRange
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.NumberRange.editor.header.label
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.min
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.max
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
        80:
          identifier: RegularExpression
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.header.label
            200:
              identifier: regex
              templateName: Inspector-TextEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.label
              description: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.description
              propertyPath: options.regularExpression
              propertyValidators:
                10: NotEmpty
                20: RegularExpressionPattern
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
    label: formEditor.elements.AdvancedPassword.label
    group: custom
    groupSorting: 500
    iconIdentifier: form-advanced-password
Copied!

formEditor.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.editors.100
Data type
array/ [FormElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
Copied!

formEditor.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    editors:
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.label.label
        propertyPath: label
Copied!

formEditor.editors.230 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.editors.230
Data type
array/ [TextEditor]
Needed by
Frontend/ Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Date:
  formEditor:
    editors:
      230:
        identifier: elementDescription
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.elementDescription.label
        propertyPath: properties.elementDescription
Copied!

formEditor.editors.300 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.editors.300
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    editors:
      300:
        identifier: confirmationLabel
        templateName: Inspector-TextEditor
        label: formEditor.elements.AdvancedPassword.editor.confirmationLabel.label
        propertyPath: properties.confirmationLabel
Copied!

formEditor.editors.400 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.editors.400
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    editors:
      400:
        identifier: placeholder
        templateName: Inspector-TextEditor
        label: formEditor.elements.TextMixin.editor.placeholder.label
        propertyPath: properties.fluidAdditionalAttributes.placeholder
        compatibilityPropertyPath: properties.placeholder
        doNotSetIfPropertyValueIsEmpty: true
Copied!

formEditor.editors.700 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.editors.700
Data type
array/ [GridColumnViewPortConfigurationEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    editors:
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
Copied!

formEditor.editors.800 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.editors.800
Data type
array/ [RequiredValidatorEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    editors:
      800:
        identifier: requiredValidator
        templateName: Inspector-RequiredValidatorEditor
        label: formEditor.elements.FormElement.editor.requiredValidator.label
        validatorIdentifier: NotEmpty
        propertyPath: properties.fluidAdditionalAttributes.required
        propertyValue: required
Copied!

formEditor.editors.900 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.editors.900
Data type
array/ [ValidatorsEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    editors:
      900:
        identifier: validators
        templateName: Inspector-ValidatorsEditor
        label: formEditor.elements.TextMixin.editor.validators.label
        selectOptions:
          10:
            value: ''
            label: formEditor.elements.TextMixin.editor.validators.EmptyValue.label
          20:
            value: Alphanumeric
            label: formEditor.elements.TextMixin.editor.validators.Alphanumeric.label
          40:
            value: StringLength
            label: formEditor.elements.TextMixin.editor.validators.StringLength.label
          50:
            value: EmailAddress
            label: formEditor.elements.TextMixin.editor.validators.EmailAddress.label
          60:
            value: Integer
            label: formEditor.elements.TextMixin.editor.validators.Integer.label
          70:
            value: Float
            label: formEditor.elements.TextMixin.editor.validators.Float.label
          80:
            value: NumberRange
            label: formEditor.elements.TextMixin.editor.validators.NumberRange.label
Copied!

formEditor.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    editors:
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
Copied!

formEditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    predefinedDefaults:
      properties:
        confirmationLabel: formEditor.element.AdvancedPassword.editor.confirmationLabel.predefinedDefaults
Copied!
Description
Defines predefined defaults for form element properties which are prefilled, if the form element is added to a form.

formEditor.propertyCollections.validators.10 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.propertyCollections.validators.10
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: Alphanumeric
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Alphanumeric.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.10.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.propertyCollections.validators.10.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: Alphanumeric
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.10.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.propertyCollections.validators.10.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: Alphanumeric
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Alphanumeric.editor.header.label
Copied!

formEditor.propertyCollections.validators.10.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.propertyCollections.validators.10.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: Alphanumeric
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.20 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.propertyCollections.validators.20
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    propertyCollections:
      validators:
        20:
          identifier: Text
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Text.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.20.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.propertyCollections.validators.20.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    propertyCollections:
      validators:
        20:
          identifier: Text
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.20.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.propertyCollections.validators.20.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    propertyCollections:
      validators:
        20:
          identifier: Text
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Text.editor.header.label
Copied!

formEditor.propertyCollections.validators.20.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.propertyCollections.validators.20.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    propertyCollections:
      validators:
        20:
          identifier: Text
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.30 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.propertyCollections.validators.30
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    propertyCollections:
      validators:
        30:
          identifier: StringLength
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.StringLength.editor.header.label
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.minlength
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.maxlength
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.30.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.propertyCollections.validators.30.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    propertyCollections:
      validators:
        30:
          identifier: StringLength
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.30.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.propertyCollections.validators.30.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    propertyCollections:
      validators:
        30:
          identifier: StringLength
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.StringLength.editor.header.label
Copied!

formEditor.propertyCollections.validators.30.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.propertyCollections.validators.30.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    propertyCollections:
      validators:
        30:
          identifier: StringLength
          editors:
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.minlength
Copied!

formEditor.propertyCollections.validators.30.editors.300 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.propertyCollections.validators.30.editors.300
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    propertyCollections:
      validators:
        30:
          identifier: StringLength
          editors:
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.maxlength
Copied!

formEditor.propertyCollections.validators.30.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.propertyCollections.validators.30.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    propertyCollections:
      validators:
        30:
          identifier: StringLength
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.40 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.propertyCollections.validators.40
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    propertyCollections:
      validators:
        40:
          identifier: EmailAddress
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.EmailAddress.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.40.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.propertyCollections.validators.40.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    propertyCollections:
      validators:
        40:
          identifier: EmailAddress
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.40.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.propertyCollections.validators.40.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    propertyCollections:
      validators:
        40:
          identifier: EmailAddress
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.EmailAddress.editor.header.label
Copied!

formEditor.propertyCollections.validators.40.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.propertyCollections.validators.40.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    propertyCollections:
      validators:
        40:
          identifier: EmailAddress
          editors:
            100:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.50 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.propertyCollections.validators.50
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    propertyCollections:
      validators:
        50:
          identifier: Integer
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Integer.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.50.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.propertyCollections.validators.50.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    propertyCollections:
      validators:
        50:
          identifier: Integer
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.50.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.propertyCollections.validators.50.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    propertyCollections:
      validators:
        50:
          identifier: Integer
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Integer.editor.header.label
Copied!

formEditor.propertyCollections.validators.50.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.propertyCollections.validators.50.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    propertyCollections:
      validators:
        50:
          identifier: Integer
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.60 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.propertyCollections.validators.60
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    propertyCollections:
      validators:
        60:
          identifier: Float
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Float.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.60.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.propertyCollections.validators.60.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    propertyCollections:
      validators:
        60:
          identifier: Float
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.60.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.propertyCollections.validators.60.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    propertyCollections:
      validators:
        60:
          identifier: Float
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Float.editor.header.label
Copied!

formEditor.propertyCollections.validators.60.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.propertyCollections.validators.60.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    propertyCollections:
      validators:
        60:
          identifier: Float
          editors:
            100:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.70 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.propertyCollections.validators.70
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    propertyCollections:
      validators:
        70:
          identifier: NumberRange
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.NumberRange.editor.header.label
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.min
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.max
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.70.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.propertyCollections.validators.70.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    propertyCollections:
      validators:
        70:
          identifier: NumberRange
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.70.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.propertyCollections.validators.70.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    propertyCollections:
      validators:
        70:
          identifier: NumberRange
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.NumberRange.editor.header.label
Copied!

formEditor.propertyCollections.validators.70.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.propertyCollections.validators.70.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    propertyCollections:
      validators:
        70:
          identifier: NumberRange
          editors:
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.min
Copied!

formEditor.propertyCollections.validators.70.editors.300 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.propertyCollections.validators.70.editors.300
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    propertyCollections:
      validators:
        70:
          identifier: NumberRange
          editors:
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.max
Copied!

formEditor.propertyCollections.validators.70.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.propertyCollections.validators.70.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    propertyCollections:
      validators:
        70:
          identifier: NumberRange
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.80 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.propertyCollections.validators.80
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    propertyCollections:
      validators:
        80:
          identifier: RegularExpression
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.header.label
            200:
              identifier: regex
              templateName: Inspector-TextEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.label
              description: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.description
              propertyPath: options.regularExpression
              propertyValidators:
                10: NotEmpty
                20: RegularExpressionPattern
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.80.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.propertyCollections.validators.80.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    propertyCollections:
      validators:
        80:
          identifier: RegularExpression
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.80.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.propertyCollections.validators.80.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    propertyCollections:
      validators:
        80:
          identifier: RegularExpression
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.header.label
Copied!

formEditor.propertyCollections.validators.80.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.propertyCollections.validators.80.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    propertyCollections:
      validators:
        80:
          identifier: RegularExpression
          editors:
            200:
              identifier: regex
              templateName: Inspector-TextEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.label
              description: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.description
              propertyPath: options.regularExpression
              propertyValidators:
                10: NotEmpty
                20: RegularExpressionPattern
Copied!

formEditor.propertyCollections.validators.80.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.propertyCollections.validators.80.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    propertyCollections:
      validators:
        80:
          identifier: RegularExpression
          editors:
            100:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    label: formEditor.elements.AdvancedPassword.label
Copied!
Good to know
Description
This label will be shown within the "new element" Modal.

formEditor.group 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.group
Data type
string
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    group: custom
Copied!
Default value
Depends (see concrete element configuration)
Description
Define within which group within the form editor "new Element" modal the form element should be shown. The group value must be equal to an array key within formElementGroups.

formEditor.groupSorting 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.groupSorting
Data type
int
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    groupSorting: 500
Copied!
Description
The position within the formEditor.group for this form element.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.AdvancedPassword.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
AdvancedPassword:
  formEditor:
    iconIdentifier: form-advanced-password
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within

[Checkbox] 

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Checkbox.implementationClassName
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
No
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
Checkbox:
  implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
Copied!
Description
Classname which implements the form element.

properties.containerClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Checkbox.properties.containerClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Checkbox:
  properties:
    containerClassAttribute: 'input checkbox'
    elementClassAttribute: add-on
    elementErrorClassAttribute: error
    value: 1
Copied!
Description
A CSS class which is typically wrapped around the form elements.

properties.elementClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Checkbox.properties.elementClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Checkbox:
  properties:
    containerClassAttribute: 'input checkbox'
    elementClassAttribute: add-on
    elementErrorClassAttribute: error
    value: 1
Copied!
Description
A CSS class written to the form element.

properties.elementDescription 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Checkbox.properties.elementDescription
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
Form editor can write this property into the form definition (for prototype 'standard')
Yes
Mandatory
No
Default value (for prototype 'standard')
Undefined
Good to know
Description
Set a description of the form element. By default, it is displayed below the form element.

properties.elementErrorClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Checkbox.properties.elementErrorClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Checkbox:
  properties:
    containerClassAttribute: 'input checkbox'
    elementClassAttribute: add-on
    elementErrorClassAttribute: error
    value: 1
Copied!
Description
A CSS class which is written to the form element if validation errors exists.

properties.value 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Checkbox.properties.value
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Checkbox:
  properties:
    containerClassAttribute: 'input checkbox'
    elementClassAttribute: add-on
    elementErrorClassAttribute: error
    value: 1
Copied!
Description
The value of the checkbox which should be sent to the server.

formEditor 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Checkbox.formEditor
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Checkbox:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.label.label
        propertyPath: label
      230:
         identifier: elementDescription
         templateName: Inspector-TextEditor
         label: formEditor.elements.FormElement.editor.elementDescription.label
         propertyPath: properties.elementDescription
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
      800:
        identifier: requiredValidator
        templateName: Inspector-RequiredValidatorEditor
        label: formEditor.elements.FormElement.editor.requiredValidator.label
        validatorIdentifier: NotEmpty
        propertyPath: properties.fluidAdditionalAttributes.required
        propertyValue: required
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
    predefinedDefaults: {  }
    label: formEditor.elements.Checkbox.label
    group: select
    groupSorting: 100
    iconIdentifier: form-checkbox
Copied!

formEditor.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Checkbox.formEditor.editors.100
Data type
array/ [FormElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Checkbox:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
Copied!

formEditor.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Checkbox.formEditor.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Checkbox:
  formEditor:
    editors:
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.label.label
        propertyPath: label
Copied!

formEditor.editors.230 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Checkbox.formEditor.editors.230
Data type
array/ [TextEditor]
Needed by
Frontend/ Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Date:
  formEditor:
    editors:
      230:
        identifier: elementDescription
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.elementDescription.label
        propertyPath: properties.elementDescription
Copied!

formEditor.editors.700 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Checkbox.formEditor.editors.700
Data type
array/ [GridColumnViewPortConfigurationEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Checkbox:
  formEditor:
    editors:
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
Copied!

formEditor.editors.800 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Checkbox.formEditor.editors.800
Data type
array/ [RequiredValidatorEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Checkbox:
  formEditor:
    editors:
      800:
        identifier: requiredValidator
        templateName: Inspector-RequiredValidatorEditor
        label: formEditor.elements.FormElement.editor.requiredValidator.label
        validatorIdentifier: NotEmpty
        propertyPath: properties.fluidAdditionalAttributes.required
        propertyValue: required
Copied!

formEditor.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Checkbox.formEditor.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Checkbox:
  formEditor:
    editors:
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
Copied!

formEditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Checkbox.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Checkbox:
  formEditor:
    predefinedDefaults: {  }
Copied!
Description
Defines predefined defaults for form element properties which are prefilled, if the form element is added to a form.

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Checkbox.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Checkbox:
  formEditor:
    label: formEditor.elements.Checkbox.label
Copied!
Good to know
Description
This label will be shown within the "new element" Modal.

formEditor.group 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Checkbox.formEditor.group
Data type
string
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Checkbox:
  formEditor:
    group: select
Copied!
Default value
Depends (see concrete element configuration)
Description
Define within which group within the form editor "new Element" modal the form element should be shown. The group value must be equal to an array key within formElementGroups.

formEditor.groupSorting 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Checkbox.formEditor.groupSorting
Data type
int
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Checkbox:
  formEditor:
    groupSorting: 100
Copied!
Description
The position within the formEditor.group for this form element.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Checkbox.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Checkbox:
  formEditor:
    iconIdentifier: form-checkbox
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within

[ContentElement] 

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ContentElement.implementationClassName
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
No
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
ContentElement:
  implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
Copied!
Description
Classname which implements the form element.

properties.contentElementUid 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ContentElement.properties.contentElementUid
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
Yes
Mandatory
Yes
Default value (for prototype 'standard')
ContentElement:
  properties:
    contentElementUid: ''
Copied!
Description
The uid of the content element which should be rendered.

formEditor 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ContentElement.formEditor
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
ContentElement:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
      300:
        identifier: contentElement
        templateName: Inspector-Typo3WinBrowserEditor
        label: formEditor.elements.ContentElement.editor.contentElement.label
        buttonLabel: formEditor.elements.ContentElement.editor.contentElement.buttonLabel
        browsableType: tt_content
        propertyPath: properties.contentElementUid
        propertyValidatorsMode: OR
        propertyValidators:
          10: Integer
          20: FormElementIdentifierWithinCurlyBracesExclusive
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
    predefinedDefaults:
      properties:
        contentElementUid: ''
    label: formEditor.elements.ContentElement.label
    group: custom
    groupSorting: 700
    iconIdentifier: form-content-element
Copied!

formEditor.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ContentElement.formEditor.editors.100
Data type
array/ [FormElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
ContentElement:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
Copied!

formEditor.editors.300 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ContentElement.formEditor.editors.300
Data type
array/ [Typo3WinBrowserEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
ContentElement:
  formEditor:
    editors:
      300:
        identifier: contentElement
        templateName: Inspector-Typo3WinBrowserEditor
        label: formEditor.elements.ContentElement.editor.contentElement.label
        buttonLabel: formEditor.elements.ContentElement.editor.contentElement.buttonLabel
        browsableType: tt_content
        propertyPath: properties.contentElementUid
        propertyValidatorsMode: OR
        propertyValidators:
          10: Integer
          20: FormElementIdentifierWithinCurlyBracesExclusive
Copied!

formEditor.editors.700 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ContentElement.formEditor.editors.700
Data type
array/ [GridColumnViewPortConfigurationEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
ContentElement:
  formEditor:
    editors:
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
Copied!

formEditor.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ContentElement.formEditor.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
ContentElement:
  formEditor:
    editors:
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
Copied!

formEditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ContentElement.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
ContentElement:
  formEditor:
    predefinedDefaults:
      properties:
        contentElementUid: ''
Copied!
Description
Defines predefined defaults for form element properties which are prefilled, if the form element is added to a form.

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ContentElement.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
ContentElement:
  formEditor:
    label: formEditor.elements.ContentElement.label
Copied!
Good to know
Description
This label will be shown within the "new element" Modal.

formEditor.group 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ContentElement.formEditor.group
Data type
string
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
ContentElement:
  formEditor:
    group: custom
Copied!
Default value
Depends (see concrete element configuration)
Description
Define within which group within the form editor "new Element" modal the form element should be shown. The group value must be equal to an array key within formElementGroups.

formEditor.groupSorting 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ContentElement.formEditor.groupSorting
Data type
int
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
ContentElement:
  formEditor:
    groupSorting: 700
Copied!
Description
The position within the formEditor.group for this form element.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ContentElement.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
ContentElement:
  formEditor:
    iconIdentifier: form-content-element
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within

[Date] 

The form framework contains a form element called 'Date' which is technically an HTML5 'date' form element.

The DateRange validator is the server side validation equivalent to the client side validation through the min and max HTML attribute and should always be used in combination. If the DateRange validator is added to the form element within the form editor, the min and max HTML attributes are added automatically.

Browsers which do not support the HTML5 date element gracefully degrade to a text input. The HTML5 date element always normalizes the value to the format Y-m-d (RFC 3339 'full-date'). With a text input, by default the browser has no recognition of which format the date should be in. A workaround could be to put a pattern attribute on the date input. Even though the date input does not use it, the text input fallback will.

By default, the HTML attribute pattern="([0-9]{4})-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01])" is rendered on the date form element. Note that this basic regular expression does not support leap years and does not check for the correct number of days in a month. But as a start, this should be sufficient. The same pattern is used by the form editor to validate the properties defaultValue and the DateRange validator options minimum and maximum.

Read more: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date#Handling_browser_support

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.implementationClassName
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
No
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
Date:
  implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
Copied!
Description
Classname which implements the form element.

properties.containerClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.properties.containerClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Date:
  properties:
    containerClassAttribute: input
    elementClassAttribute:
    elementErrorClassAttribute: error
    displayFormat: d.m.Y
    fluidAdditionalAttributes:
      pattern: '([0-9]{4})-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01])'
Copied!
Description
A CSS class which is typically wrapped around the form elements.

properties.displayFormat 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.properties.displayFormat
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Date:
  properties:
    containerClassAttribute: input
    elementClassAttribute:
    elementErrorClassAttribute: error
    displayFormat: d.m.Y
    fluidAdditionalAttributes:
      pattern: '([0-9]{4})-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01])'
Copied!
Description

The display format defines the display format of the submitted value within the summary step, email finishers etc. but not for the form element value itself. The display format of the form element value depends on the browser settings and can not be defined!

Read more: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date#Value

properties.elementClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.properties.elementClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Date:
  properties:
    containerClassAttribute: input
    elementClassAttribute:
    elementErrorClassAttribute: error
    displayFormat: d.m.Y
    fluidAdditionalAttributes:
      pattern: '([0-9]{4})-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01])'
Copied!
Description
A CSS class written to the form element.

properties.elementErrorClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.properties.elementErrorClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Date:
  properties:
    containerClassAttribute: input
    elementClassAttribute:
    elementErrorClassAttribute: error
    displayFormat: d.m.Y
    fluidAdditionalAttributes:
      pattern: '([0-9]{4})-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01])'
Copied!
Description
A CSS class which is written to the form element if validation errors exists.

properties.fluidAdditionalAttributes.pattern 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.properties.fluidAdditionalAttributes.pattern
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Date:
  properties:
    containerClassAttribute: input
    elementClassAttribute:
    elementErrorClassAttribute: error
    displayFormat: d.m.Y
    fluidAdditionalAttributes:
      pattern: '([0-9]{4})-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01])'
Copied!
Description
Pattern to be matched by the form control's value.

formEditor 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
DatePicker:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.label.label
        propertyPath: label
      230:
        identifier: elementDescription
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.elementDescription.label
        propertyPath: properties.elementDescription
      500:
        identifier: defaultValue
        templateName: Inspector-TextEditor
        label: formEditor.elements.TextMixin.editor.defaultValue.label
        propertyPath: defaultValue
        placeholder: formEditor.elements.Date.editor.defaultValue.placeholder
        propertyValidators:
          10: RFC3339FullDateOrEmpty
      550:
        identifier: 'step'
        templateName: 'Inspector-TextEditor'
        label: 'formEditor.elements.Date.editor.step.label'
        description: 'formEditor.elements.Date.editor.step.description'
        propertyPath: 'properties.fluidAdditionalAttributes.step'
        propertyValidators:
          10: 'Integer'
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
      800:
        identifier: requiredValidator
        templateName: Inspector-RequiredValidatorEditor
        label: formEditor.elements.FormElement.editor.requiredValidator.label
        validatorIdentifier: NotEmpty
        propertyPath: properties.fluidAdditionalAttributes.required
        propertyValue: required
        configurationOptions:
          validationErrorMessage:
            label: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.label
            propertyPath: properties.validationErrorMessages
            description: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.description
              errorCodes:
                10: 1221560910
                20: 1221560718
                30: 1347992400
                40: 1347992453
      900:
        identifier: validators
        templateName: Inspector-ValidatorsEditor
        label: formEditor.elements.TextMixin.editor.validators.label
        selectOptions:
          10:
            value: ''
            label: formEditor.elements.TextMixin.editor.validators.EmptyValue.label
          20:
            value: DateRange
            label: formEditor.elements.Date.editor.validators.DateRange.label
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
    predefinedDefaults:
      defaultValue:
      properties:
        fluidAdditionalAttributes:
          min:
          max:
          step: 1
    propertyCollections:
      ...
    label: formEditor.elements.Date.label
    group: html5
    groupSorting: 500
    iconIdentifier: form-date-picker
Copied!

formEditor.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.editors.100
Data type
array/ [FormElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
Copied!

formEditor.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    editors:
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.label.label
        propertyPath: label
Copied!

formEditor.editors.230 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.editors.230
Data type
array/ [TextEditor]
Needed by
Frontend/ Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Date:
  formEditor:
    editors:
      230:
        identifier: elementDescription
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.elementDescription.label
        propertyPath: properties.elementDescription
Copied!

formEditor.editors.500 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.editors.500
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    editors:
      500:
        identifier: defaultValue
        templateName: Inspector-TextEditor
        label: formEditor.elements.TextMixin.editor.defaultValue.label
        propertyPath: defaultValue
        placeholder: formEditor.elements.Date.editor.defaultValue.placeholder
        propertyValidators:
          10: RFC3339FullDateOrEmpty
Copied!

formEditor.editors.550 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.editors.550
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    editors:
      550:
        identifier: step
        templateName: Inspector-TextEditor
        label: formEditor.elements.Date.editor.step.label
        description: formEditor.elements.Date.editor.step.description
        propertyPath: properties.fluidAdditionalAttributes.step
        propertyValidators:
          10: integer
Copied!

formEditor.editors.700 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.editors.700
Data type
array/ [GridColumnViewPortConfigurationEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    editors:
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
Copied!

formEditor.editors.800 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.editors.800
Data type
array/ [RequiredValidatorEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    editors:
      800:
        identifier: requiredValidator
        templateName: Inspector-RequiredValidatorEditor
        label: formEditor.elements.FormElement.editor.requiredValidator.label
        validatorIdentifier: NotEmpty
        propertyPath: properties.fluidAdditionalAttributes.required
        propertyValue: required
        configurationOptions:
          validationErrorMessage:
            label: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.label
            propertyPath: properties.validationErrorMessages
            description: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.description
            errorCodes:
              10: 1221560910
              20: 1221560718
              30: 1347992400
              40: 1347992453
Copied!

formEditor.editors.900 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.editors.900
Data type
array/ [ValidatorsEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    editors:
      900:
        identifier: validators
        templateName: Inspector-ValidatorsEditor
        label: formEditor.elements.TextMixin.editor.validators.label
        selectOptions:
          10:
            value: ''
            label: formEditor.elements.DatePicker.editor.validators.EmptyValue.label
          20:
            value: DateTime
            label: formEditor.elements.DatePicker.editor.validators.DateRange.label
Copied!

formEditor.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    editors:
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
Copied!

formEditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    predefinedDefaults:
      defaultValue:
      properties:
        fluidAdditionalAttributes:
          min:
          max:
          step: 1
Copied!
Good to know

The properties defaultValue, properties.fluidAdditionalAttributes.min, properties.fluidAdditionalAttributes.max must have the format 'Y-m-d' which represents the RFC 3339 'full-date' format.

Read more: https://www.w3.org/TR/2011/WD-html-markup-20110405/input.date.html

Description
Defines predefined defaults for form element properties which are prefilled, if the form element is added to a form.

formEditor.propertyCollections.validators.10 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.10
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: DateRange
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.DatePicker.validators.DateRange.editor.header.label
            200
              identifier: validationErrorMessage
              templateName: Inspector-ValidationErrorMessageEditor
              label: formEditor.elements.TextMixin.validators.Alphanumeric.editor.validationErrorMessage.label
              description: formEditor.elements.TextMixin.validators.Alphanumeric.editor.validationErrorMessage.description
              errorCodes:
                10: 1521293685
                20: 1521293686
                30: 1521293687
              propertyPath: properties.validationErrorMessages
            250:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.DatePicker.validators.DateRange.editor.minimum
              placeholder: formEditor.elements.DatePicker.validators.DateRange.editor.minimum.placeholder
              propertyPath: options.minimum
              propertyValidators:
                10: RFC3339FullDateOrEmpty
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.min
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.DatePicker.validators.DateRange.editor.maximum
              placeholder: formEditor.elements.DatePicker.validators.DateRange.editor.maximum.placeholder
              propertyPath: options.maximum
              propertyValidators:
                10: RFC3339FullDateOrEmpty
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.max
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.10.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.10.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: DateRange
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.10.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.10.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: DateRange
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.DatePicker.validators.DateRange.editor.header.label
Copied!

formEditor.propertyCollections.validators.10.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.10.editors.200
Data type
array/ [ValidationErrorMessageEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: DateRange
          editors:
            200:
              identifier: validationErrorMessage
              templateName: Inspector-ValidationErrorMessageEditor
              label: formEditor.elements.TextMixin.validators.Alphanumeric.editor.validationErrorMessage.label
              description: formEditor.elements.TextMixin.validators.Alphanumeric.editor.validationErrorMessage.description
              errorCodes:
                10: 1521293685
                20: 1521293686
                30: 1521293687
               propertyPath: properties.validationErrorMessages
Copied!

formEditor.propertyCollections.validators.10.editors.250 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.10.editors.250
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: DateRange
          editors:
            250:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.DatePicker.validators.DateRange.editor.minimum
              placeholder: formEditor.elements.DatePicker.validators.DateRange.editor.minimum.placeholder
              propertyPath: options.minimum
              propertyValidators:
                10: RFC3339FullDateOrEmpty
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.min
Copied!

formEditor.propertyCollections.validators.10.editors.300 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.10.editors.300
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: DateRange
          editors:
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.DatePicker.validators.DateRange.editor.maximum
              placeholder: formEditor.elements.DatePicker.validators.DateRange.editor.maximum.placeholder
              propertyPath: options.maximum
              propertyValidators:
                10: RFC3339FullDateOrEmpty
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.max
Copied!

formEditor.propertyCollections.validators.10.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.10.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: DateRange
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.20 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.20
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        20:
          identifier: Text
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Text.editor.header.label
            200:
              identifier: validationErrorMessage
              templateName: Inspector-ValidationErrorMessageEditor
              label: formEditor.elements.TextMixin.validators.Text.editor.validationErrorMessage.label
              description: formEditor.elements.TextMixin.validators.Text.editor.validationErrorMessage.description
              errorCodes:
                10: 1221565786
              propertyPath: properties.validationErrorMessages
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.20.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.20.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        20:
          identifier: Text
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.20.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.20.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        20:
          identifier: Text
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Text.editor.header.label
Copied!

formEditor.propertyCollections.validators.20.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.20.editors.200
Data type
array/ [ValidationErrorMessageEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        20:
          identifier: Text
          editors:
            200:
              identifier: validationErrorMessage
              templateName: Inspector-ValidationErrorMessageEditor
              label: formEditor.elements.TextMixin.validators.Text.editor.validationErrorMessage.label
              description: formEditor.elements.TextMixin.validators.Text.editor.validationErrorMessage.description
              errorCodes:
                10: 1221565786
               propertyPath: properties.validationErrorMessages
Copied!

formEditor.propertyCollections.validators.20.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.20.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        20:
          identifier: Text
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.30 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.30
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        30:
          identifier: StringLength
            editors:
              100:
                identifier: header
                templateName: Inspector-CollectionElementHeaderEditor
                label: formEditor.elements.TextMixin.validators.StringLength.editor.header.label
              200:
                identifier: minimum
                templateName: Inspector-TextEditor
                label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
                propertyPath: options.minimum
                propertyValidators:
                  10: Integer
                additionalElementPropertyPaths:
                  10: properties.fluidAdditionalAttributes.minlength
              300:
                identifier: maximum
                templateName: Inspector-TextEditor
                label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
                propertyPath: options.maximum
                propertyValidators:
                  10: Integer
                additionalElementPropertyPaths:
                  10: properties.fluidAdditionalAttributes.maxlength
              400:
                identifier: validationErrorMessage
                templateName: Inspector-ValidationErrorMessageEditor
                label: formEditor.elements.TextMixin.validators.StringLength.editor.validationErrorMessage.label
                description: formEditor.elements.TextMixin.validators.StringLength.editor.validationErrorMessage.description
                errorCodes:
                  10: 1238110957
                  20: 1269883975
                  30: 1428504122
                  40: 1238108068
                  50: 1238108069
                propertyPath: properties.validationErrorMessages
              9999:
                identifier: removeButton
                templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.30.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.30.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        30:
          identifier: StringLength
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.30.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.30.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        30:
          identifier: StringLength
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.StringLength.editor.header.label
Copied!

formEditor.propertyCollections.validators.30.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.30.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        30:
          identifier: StringLength
          editors:
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.minlength
Copied!

formEditor.propertyCollections.validators.30.editors.300 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.30.editors.300
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        30:
          identifier: StringLength
          editors:
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.maxlength
Copied!

formEditor.propertyCollections.validators.30.editors.400 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.30.editors.400
Data type
array/ [ValidationErrorMessageEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        30:
          identifier: StringLength
          editors:
            400:
              identifier: validationErrorMessage
              templateName: Inspector-ValidationErrorMessageEditor
              label: formEditor.elements.TextMixin.validators.StringLength.editor.validationErrorMessage.label
              description: formEditor.elements.TextMixin.validators.StringLength.editor.validationErrorMessage.description
              errorCodes:
                10: 1238110957
                20: 1269883975
                30: 1428504122
                40: 1238108068
                50: 1238108069
              propertyPath: properties.validationErrorMessages
Copied!

formEditor.propertyCollections.validators.30.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.30.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        30:
          identifier: StringLength
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.40 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.40
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        40:
          identifier: EmailAddress
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.EmailAddress.editor.header.label
            200:
              identifier: validationErrorMessage
              templateName: Inspector-ValidationErrorMessageEditor
              label: formEditor.elements.TextMixin.validators.EmailAddress.editor.validationErrorMessage.label
              description: formEditor.elements.TextMixin.validators.EmailAddress.editor.validationErrorMessage.description
              errorCodes:
                10: 1221559976
              propertyPath: properties.validationErrorMessages
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.40.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.40.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        40:
          identifier: EmailAddress
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.40.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.40.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        40:
          identifier: EmailAddress
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.EmailAddress.editor.header.label
Copied!

formEditor.propertyCollections.validators.40.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.40.editors.200
Data type
array/ [ValidationErrorMessageEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        40:
          identifier: EmailAddress
          editors:
            200:
              identifier: validationErrorMessage
              templateName: Inspector-ValidationErrorMessageEditor
              label: formEditor.elements.TextMixin.validators.EmailAddress.editor.validationErrorMessage.label
              description: formEditor.elements.TextMixin.validators.EmailAddress.editor.validationErrorMessage.description
              errorCodes:
                10: 1221559976
              propertyPath: properties.validationErrorMessages
Copied!

formEditor.propertyCollections.validators.40.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.40.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        40:
          identifier: EmailAddress
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.50 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.50
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        50:
          identifier: Integer
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Integer.editor.header.label
            200:
              identifier: validationErrorMessage
              templateName: Inspector-ValidationErrorMessageEditor
              label: formEditor.elements.TextMixin.validators.Integer.editor.validationErrorMessage.label
              description: formEditor.elements.TextMixin.validators.Integer.editor.validationErrorMessage.description
              errorCodes:
                10: 1221560494
              propertyPath: properties.validationErrorMessages
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.50.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.50.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        50:
          identifier: Integer
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.50.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.50.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        50:
          identifier: Integer
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Integer.editor.header.label
Copied!

formEditor.propertyCollections.validators.50.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.50.editors.200
Data type
array/ [ValidationErrorMessageEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        50:
          identifier: Integer
          editors:
            200:
              identifier: validationErrorMessage
              templateName: Inspector-ValidationErrorMessageEditor
              label: formEditor.elements.TextMixin.validators.Integer.editor.validationErrorMessage.label
              description: formEditor.elements.TextMixin.validators.Integer.editor.validationErrorMessage.description
              errorCodes:
                10: 1221560494
              propertyPath: properties.validationErrorMessages
Copied!

formEditor.propertyCollections.validators.50.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.50.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        50:
          identifier: Integer
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.60 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.60
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        60:
          identifier: Float
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Float.editor.header.label
            200:
              identifier: validationErrorMessage
              templateName: Inspector-ValidationErrorMessageEditor
              label: formEditor.elements.TextMixin.validators.Float.editor.validationErrorMessage.label
              description: formEditor.elements.TextMixin.validators.Float.editor.validationErrorMessage.description
              errorCodes:
                10: 1221560288
              propertyPath: properties.validationErrorMessages
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.60.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.60.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        60:
          identifier: Float
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.60.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.60.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        60:
          identifier: Float
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Float.editor.header.label
Copied!

formEditor.propertyCollections.validators.60.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.60.editors.200
Data type
array/ [ValidationErrorMessageEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        60:
          identifier: Float
          editors:
            200:
              identifier: validationErrorMessage
              templateName: Inspector-ValidationErrorMessageEditor
              label: formEditor.elements.TextMixin.validators.Float.editor.validationErrorMessage.label
              description: formEditor.elements.TextMixin.validators.Float.editor.validationErrorMessage.description
              errorCodes:
                10: 1221560288
              propertyPath: properties.validationErrorMessages
Copied!

formEditor.propertyCollections.validators.60.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.60.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        60:
          identifier: Float
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.70 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.70
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        70:
          identifier: NumberRange
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.NumberRange.editor.header.label
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.min
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.max
            400:
              identifier: validationErrorMessage
              templateName: Inspector-ValidationErrorMessageEditor
              label: formEditor.elements.TextMixin.validators.NumberRange.editor.validationErrorMessage.label
              description: formEditor.elements.TextMixin.validators.NumberRange.editor.validationErrorMessage.description
              errorCodes:
                10: 1221563685
                20: 1221561046
              propertyPath: properties.validationErrorMessages
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.70.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.70.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        70:
          identifier: NumberRange
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.70.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.70.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        70:
          identifier: NumberRange
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.NumberRange.editor.header.label
Copied!

formEditor.propertyCollections.validators.70.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.70.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        70:
          identifier: NumberRange
          editors:
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.min
Copied!

formEditor.propertyCollections.validators.70.editors.300 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.70.editors.300
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        70:
          identifier: NumberRange
          editors:
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.max
Copied!

formEditor.propertyCollections.validators.70.editors.400 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.70.editors.400
Data type
array/ [ValidationErrorMessageEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        70:
          identifier: NumberRange
          editors:
            400:
              identifier: validationErrorMessage
              templateName: Inspector-ValidationErrorMessageEditor
              label: formEditor.elements.TextMixin.validators.NumberRange.editor.validationErrorMessage.label
              description: formEditor.elements.TextMixin.validators.NumberRange.editor.validationErrorMessage.description
              errorCodes:
                10: 1221563685
                20: 1221561046
              propertyPath: properties.validationErrorMessages
Copied!

formEditor.propertyCollections.validators.70.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.70.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        70:
          identifier: NumberRange
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.80 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.80
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        80:
          identifier: RegularExpression
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.header.label
            200:
              identifier: regex
              templateName: Inspector-TextEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.label
              description: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.description
              propertyPath: options.regularExpression
              propertyValidators:
                10: NotEmpty
                20: RegularExpressionPattern
            300:
              identifier: validationErrorMessage
              templateName: Inspector-ValidationErrorMessageEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.validationErrorMessage.label
              description: formEditor.elements.TextMixin.validators.RegularExpression.editor.validationErrorMessage.description
              errorCodes:
                10: 1221565130
              propertyPath: properties.validationErrorMessages
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.80.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.80.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        80:
          identifier: RegularExpression
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.80.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.80.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        80:
          identifier: RegularExpression
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.header.label
Copied!

formEditor.propertyCollections.validators.80.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.80.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        80:
          identifier: RegularExpression
          editors:
            200:
              identifier: regex
              templateName: Inspector-TextEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.label
              description: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.description
              propertyPath: options.regularExpression
              propertyValidators:
                10: NotEmpty
                20: RegularExpressionPattern
Copied!

formEditor.propertyCollections.validators.80.editors.300 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.80.editors.300
Data type
array/ [ValidationErrorMessageEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        80:
          identifier: RegularExpression
          editors:
            300:
              identifier: validationErrorMessage
              templateName: Inspector-ValidationErrorMessageEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.validationErrorMessage.label
              description: formEditor.elements.TextMixin.validators.RegularExpression.editor.validationErrorMessage.description
              errorCodes:
                10: 1221565130
              propertyPath: properties.validationErrorMessages
Copied!

formEditor.propertyCollections.validators.80.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.propertyCollections.validators.80.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    propertyCollections:
      validators:
        80:
          identifier: RegularExpression
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Date:
  formEditor:
    label: formEditor.elements.Date.label
Copied!
Good to know
Description
This label will be shown within the "new element" Modal.

formEditor.group 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.group
Data type
string
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    group: html5
Copied!
Default value
Depends (see concrete element configuration)
Description
Define within which group within the form editor "new Element" modal the form element should be shown. The group value must be equal to an array key within formElementGroups.

formEditor.groupSorting 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.groupSorting
Data type
int
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Date:
  formEditor:
    groupSorting: 500
Copied!
Description
The position within the formEditor.group for this form element.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Date.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Date:
  formEditor:
    iconIdentifier: form-date-picker
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry. This icon will be shown within

[DatePicker] 

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.DatePicker.implementationClassName
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
No
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
DatePicker:
  implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\DatePicker
Copied!
Description
Classname which implements the form element.

properties.containerClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.DatePicker.properties.containerClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
DatePicker:
  properties:
    containerClassAttribute: input
    elementClassAttribute: 'small form-control'
    elementErrorClassAttribute: error
    timeSelectorClassAttribute: mini
    timeSelectorHourLabel: ''
    timeSelectorMinuteLabel: ''
    dateFormat: Y-m-d
    enableDatePicker: true
    displayTimeSelector: false
Copied!
Description
A CSS class which is typically wrapped around the form elements.

properties.elementClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.DatePicker.properties.elementClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
DatePicker:
  properties:
    containerClassAttribute: input
    elementClassAttribute: 'small form-control'
    elementErrorClassAttribute: error
    timeSelectorClassAttribute: mini
    timeSelectorHourLabel: ''
    timeSelectorMinuteLabel: ''
    dateFormat: Y-m-d
    enableDatePicker: true
    displayTimeSelector: false
Copied!
Description
A CSS class written to the form element.

properties.elementDescription 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.DatePicker.properties.elementDescription
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
Form editor can write this property into the form definition (for prototype 'standard')
Yes
Mandatory
No
Default value (for prototype 'standard')
Undefined
Good to know
Description
Set a description of the form element. By default, it is displayed below the form element.

properties.elementErrorClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.DatePicker.properties.elementErrorClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
DatePicker:
  properties:
    containerClassAttribute: input
    elementClassAttribute: 'small form-control'
    elementErrorClassAttribute: error
    timeSelectorClassAttribute: mini
    timeSelectorHourLabel: ''
    timeSelectorMinuteLabel: ''
    dateFormat: Y-m-d
    enableDatePicker: true
    displayTimeSelector: false
Copied!
Description
A CSS class which is written to the form element if validation errors exists.

properties.timeSelectorClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.DatePicker.properties.timeSelectorClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
DatePicker:
  properties:
    containerClassAttribute: input
    elementClassAttribute: 'small form-control'
    elementErrorClassAttribute: error
    timeSelectorClassAttribute: mini
    timeSelectorHourLabel: ''
    timeSelectorMinuteLabel: ''
    dateFormat: Y-m-d
    enableDatePicker: true
    displayTimeSelector: false
Copied!
Description
A CSS class written to the time selector form element.

properties.timeSelectorHourLabel 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.DatePicker.properties.timeSelectorHourLabel
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
DatePicker:
  properties:
    containerClassAttribute: input
    elementClassAttribute: 'small form-control'
    elementErrorClassAttribute: error
    timeSelectorClassAttribute: mini
    timeSelectorHourLabel: ''
    timeSelectorMinuteLabel: ''
    dateFormat: Y-m-d
    enableDatePicker: true
    displayTimeSelector: false
Copied!
Description
The label for the hour selector.

properties.timeSelectorMinuteLabel 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.DatePicker.properties.timeSelectorMinuteLabel
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
DatePicker:
  properties:
    containerClassAttribute: input
    elementClassAttribute: 'small form-control'
    elementErrorClassAttribute: error
    timeSelectorClassAttribute: mini
    timeSelectorHourLabel: ''
    timeSelectorMinuteLabel: ''
    dateFormat: Y-m-d
    enableDatePicker: true
    displayTimeSelector: false
Copied!
Description
The label for the minute selector.

properties.dateFormat 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.DatePicker.properties.dateFormat
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
Yes
Mandatory
Yes
Default value (for prototype 'standard')
DatePicker:
  properties:
    containerClassAttribute: input
    elementClassAttribute: 'small form-control'
    elementErrorClassAttribute: error
    timeSelectorClassAttribute: mini
    timeSelectorHourLabel: ''
    timeSelectorMinuteLabel: ''
    dateFormat: Y-m-d
    enableDatePicker: true
    displayTimeSelector: false
Copied!
Description

The datepicker time format. The following date formats are allowed:

Day

Format character Description
d Day of the month, two digits with leading zeros
D A textual representation of a day, three letters
j Day of the month without leading zeros
l A full textual representation of the day of the week

Month

Format character Description
F A full textual representation of a month, such as January or March
m Numeric representation of a month, with leading zeros
M A short textual representation of a month, three letters
n Numeric representation of a month, without leading zeros

Year

Format character Description
Y A full numeric representation of a year, four digits
y A two digit representation of a year

properties.enableDatePicker 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.DatePicker.properties.enableDatePicker
Data type
bool
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
DatePicker:
  properties:
    containerClassAttribute: input
    elementClassAttribute: 'small form-control'
    elementErrorClassAttribute: error
    timeSelectorClassAttribute: mini
    timeSelectorHourLabel: ''
    timeSelectorMinuteLabel: ''
    dateFormat: Y-m-d
    enableDatePicker: true
    displayTimeSelector: false
Copied!
Description
If set to true, an inline javascript will be rendered. This javascript binds the jquery UI datepicker to the formelement.

properties.displayTimeSelector 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.DatePicker.properties.displayTimeSelector
Data type
bool
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
Yes
Mandatory
No
Default value (for prototype 'standard')
DatePicker:
  properties:
    containerClassAttribute: input
    elementClassAttribute: 'small form-control'
    elementErrorClassAttribute: error
    timeSelectorClassAttribute: mini
    timeSelectorHourLabel: ''
    timeSelectorMinuteLabel: ''
    dateFormat: Y-m-d
    enableDatePicker: true
    displayTimeSelector: false
Copied!
Description
If set to true, an additional timeselector will be shown.

formEditor 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.DatePicker.formEditor
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
DatePicker:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.label.label
        propertyPath: label
      230:
         identifier: elementDescription
         templateName: Inspector-TextEditor
         label: formEditor.elements.FormElement.editor.elementDescription.label
         propertyPath: properties.elementDescription
      300:
        identifier: dateFormat
        templateName: Inspector-TextEditor
        label: formEditor.elements.DatePicker.editor.dateFormat.label
        propertyPath: properties.dateFormat
      400:
        identifier: enableDatePicker
        templateName: Inspector-CheckboxEditor
        label: formEditor.elements.DatePicker.editor.enableDatePicker.label
        propertyPath: properties.enableDatePicker
      500:
        identifier: displayTimeSelector
        templateName: Inspector-CheckboxEditor
        label: formEditor.elements.DatePicker.editor.displayTimeSelector.label
        propertyPath: properties.displayTimeSelector
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
      800:
        identifier: requiredValidator
        templateName: Inspector-RequiredValidatorEditor
        label: formEditor.elements.FormElement.editor.requiredValidator.label
        validatorIdentifier: NotEmpty
        propertyPath: properties.fluidAdditionalAttributes.required
        propertyValue: required
      900:
        identifier: validators
        templateName: Inspector-ValidatorsEditor
        label: formEditor.elements.DatePicker.editor.validators.label
        selectOptions:
          10:
            value: ''
            label: formEditor.elements.DatePicker.editor.validators.EmptyValue.label
          20:
            value: DateTime
            label: formEditor.elements.DatePicker.editor.validators.DateTime.label
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
    predefinedDefaults:
      properties:
        dateFormat: Y-m-d
        enableDatePicker: true
        displayTimeSelector: false
    label: formEditor.elements.DatePicker.label
    group: custom
    groupSorting: 200
    iconIdentifier: form-date-picker
    propertyCollections:
      validators:
        10:
          identifier: DateTime
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.DatePicker.validators.DateTime.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.DatePicker.formEditor.editors.100
Data type
array/ [FormElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
DatePicker:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
Copied!

formEditor.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.DatePicker.formEditor.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
DatePicker:
  formEditor:
    editors:
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.label.label
        propertyPath: label
Copied!

formEditor.editors.230 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.DatePicker.formEditor.editors.230
Data type
array/ [TextEditor]
Needed by
Frontend/ Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Date:
  formEditor:
    editors:
      230:
        identifier: elementDescription
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.elementDescription.label
        propertyPath: properties.elementDescription
Copied!

formEditor.editors.300 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.DatePicker.formEditor.editors.300
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
DatePicker:
  formEditor:
    editors:
      300:
        identifier: dateFormat
        templateName: Inspector-TextEditor
        label: formEditor.elements.DatePicker.editor.dateFormat.label
        propertyPath: properties.dateFormat
Copied!

formEditor.editors.400 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.DatePicker.formEditor.editors.400
Data type
array/ [CheckboxEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
DatePicker:
  formEditor:
    editors:
      400:
        identifier: enableDatePicker
        templateName: Inspector-CheckboxEditor
        label: formEditor.elements.DatePicker.editor.enableDatePicker.label
        propertyPath: properties.enableDatePicker
Copied!

formEditor.editors.500 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.DatePicker.formEditor.editors.500
Data type
array/ [CheckboxEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
DatePicker:
  formEditor:
    editors:
      500:
        identifier: displayTimeSelector
        templateName: Inspector-CheckboxEditor
        label: formEditor.elements.DatePicker.editor.displayTimeSelector.label
        propertyPath: properties.displayTimeSelector
Copied!

formEditor.editors.700 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.DatePicker.formEditor.editors.700
Data type
array/ [GridColumnViewPortConfigurationEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
DatePicker:
  formEditor:
    editors:
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
Copied!

formEditor.editors.800 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.DatePicker.formEditor.editors.800
Data type
array/ [RequiredValidatorEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
DatePicker:
  formEditor:
    editors:
      800:
        identifier: requiredValidator
        templateName: Inspector-RequiredValidatorEditor
        label: formEditor.elements.FormElement.editor.requiredValidator.label
        validatorIdentifier: NotEmpty
        propertyPath: properties.fluidAdditionalAttributes.required
        propertyValue: required
Copied!

formEditor.editors.900 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.DatePicker.formEditor.editors.900
Data type
array/ [ValidatorsEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
DatePicker:
  formEditor:
    editors:
      900:
        identifier: validators
        templateName: Inspector-ValidatorsEditor
        label: formEditor.elements.DatePicker.editor.validators.label
        selectOptions:
          10:
            value: ''
            label: formEditor.elements.DatePicker.editor.validators.EmptyValue.label
          20:
            value: DateTime
            label: formEditor.elements.DatePicker.editor.validators.DateTime.label
Copied!

formEditor.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.DatePicker.formEditor.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
DatePicker:
  formEditor:
    editors:
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
Copied!

formEditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.DatePicker.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
DatePicker:
  formEditor:
    predefinedDefaults:
      properties:
        dateFormat: Y-m-d
        enableDatePicker: true
        displayTimeSelector: false
Copied!
Description
Defines predefined defaults for form element properties which are prefilled, if the form element is added to a form.

formEditor.propertyCollections.validators.10 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.DatePicker.formEditor.propertyCollections.validators.10
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
DatePicker:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: DateTime
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.DatePicker.validators.DateTime.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.10.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.DatePicker.formEditor.propertyCollections.validators.10.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
DatePicker:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: DateTime
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.10.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.DatePicker.formEditor.propertyCollections.validators.10.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
DatePicker:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: DateTime
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.DatePicker.validators.DateTime.editor.header.label
Copied!

formEditor.propertyCollections.validators.10.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.DatePicker.formEditor.propertyCollections.validators.10.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
DatePicker:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: DateTime
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.DatePicker.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
DatePicker:
  formEditor:
    label: formEditor.elements.DatePicker.label
Copied!
Good to know
Description
This label will be shown within the "new element" Modal.

formEditor.group 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.DatePicker.formEditor.group
Data type
string
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
DatePicker:
  formEditor:
    group: custom
Copied!
Default value
Depends (see concrete element configuration)
Description
Define within which group within the form editor "new Element" modal the form element should be shown. The group value must be equal to an array key within formElementGroups.

formEditor.groupSorting 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.DatePicker.formEditor.groupSorting
Data type
int
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
DatePicker:
  formEditor:
    groupSorting: 200
Copied!
Description
The position within the formEditor.group for this form element.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.DatePicker.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
DatePicker:
  formEditor:
    iconIdentifier: form-date-picker
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within

[Email] 

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Email.implementationClassName
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
No
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
Email:
  implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
Copied!
Description
Classname which implements the form element.

properties.containerClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Email.properties.containerClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Email:
  properties:
    containerClassAttribute: input
    elementClassAttribute: ''
    elementErrorClassAttribute: error
Copied!
Description
A CSS class which is typically wrapped around the form elements.

properties.elementClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Email.properties.elementClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Email:
  properties:
    containerClassAttribute: input
    elementClassAttribute: ''
    elementErrorClassAttribute: error
Copied!
Description
A CSS class written to the form element.

properties.elementDescription 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Email.properties.elementDescription
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
Form editor can write this property into the form definition (for prototype 'standard')
Yes
Mandatory
No
Default value (for prototype 'standard')
Undefined
Good to know
Description
Set a description of the form element. By default, it is displayed below the form element.

properties.elementErrorClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Email.properties.elementErrorClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Email:
  properties:
    containerClassAttribute: input
    elementClassAttribute: ''
    elementErrorClassAttribute: error
Copied!
Description
A CSS class which is written to the form element if validation errors exists.

validators 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Email.validators
Data type
array
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
Yes
Mandatory
Yes
Default value (for prototype 'standard')
Email:
  validators:
    -
      identifier: EmailAddress
Copied!
Description
Predefined validators.

formEditor 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Email.formEditor
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Email:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.label.label
        propertyPath: label
     230:
        identifier: elementDescription
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.elementDescription.label
        propertyPath: properties.elementDescription
      400:
        identifier: placeholder
        templateName: Inspector-TextEditor
        label: formEditor.elements.TextMixin.editor.placeholder.label
        propertyPath: properties.fluidAdditionalAttributes.placeholder
        doNotSetIfPropertyValueIsEmpty: true
      500:
        identifier: defaultValue
        templateName: Inspector-TextEditor
        label: formEditor.elements.TextMixin.editor.defaultValue.label
        propertyPath: defaultValue
        propertyValidators:
          10: NaiveEmailOrEmpty
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
      800:
        identifier: requiredValidator
        templateName: Inspector-RequiredValidatorEditor
        label: formEditor.elements.FormElement.editor.requiredValidator.label
        validatorIdentifier: NotEmpty
        propertyPath: properties.fluidAdditionalAttributes.required
        propertyValue: required
      900:
        identifier: validators
        templateName: Inspector-ValidatorsEditor
        label: formEditor.elements.TextMixin.editor.validators.label
        selectOptions:
          10:
            value: ''
            label: formEditor.elements.TextMixin.editor.validators.EmptyValue.label
          50:
            value: EmailAddress
            label: formEditor.elements.TextMixin.editor.validators.EmailAddress.label
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
    predefinedDefaults:
      defaultValue: ''
      validators:
        -
          identifier: EmailAddress
    propertyCollections:
      validators:
        40:
          identifier: EmailAddress
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.EmailAddress.editor.header.label
    label: formEditor.elements.Email.label
    group: html5
    groupSorting: 100
    iconIdentifier: form-email
Copied!

formEditor.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Email.formEditor.editors.100
Data type
array/ [FormElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Email:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
Copied!

formEditor.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Email.formEditor.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Email:
  formEditor:
    editors:
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.label.label
        propertyPath: label
Copied!

formEditor.editors.230 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Email.formEditor.editors.230
Data type
array/ [TextEditor]
Needed by
Frontend/ Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Date:
  formEditor:
    editors:
      230:
        identifier: elementDescription
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.elementDescription.label
        propertyPath: properties.elementDescription
Copied!

formEditor.editors.400 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Email.formEditor.editors.400
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Email:
  formEditor:
    editors:
      400:
        identifier: placeholder
        templateName: Inspector-TextEditor
        label: formEditor.elements.TextMixin.editor.placeholder.label
        propertyPath: properties.fluidAdditionalAttributes.placeholder
        compatibilityPropertyPath: properties.placeholder
        doNotSetIfPropertyValueIsEmpty: true
Copied!

formEditor.editors.500 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Email.formEditor.editors.500
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Email:
  formEditor:
    editors:
      500:
        identifier: defaultValue
        templateName: Inspector-TextEditor
        label: formEditor.elements.TextMixin.editor.defaultValue.label
        propertyPath: defaultValue
Copied!

formEditor.editors.700 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Email.formEditor.editors.700
Data type
array/ [GridColumnViewPortConfigurationEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Email:
  formEditor:
    editors:
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
Copied!

formEditor.editors.800 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Email.formEditor.editors.800
Data type
array/ [RequiredValidatorEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Email:
  formEditor:
    editors:
      800:
        identifier: requiredValidator
        templateName: Inspector-RequiredValidatorEditor
        label: formEditor.elements.FormElement.editor.requiredValidator.label
        validatorIdentifier: NotEmpty
        propertyPath: properties.fluidAdditionalAttributes.required
        propertyValue: required
Copied!

formEditor.editors.900 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Email.formEditor.editors.900
Data type
array/ [ValidatorsEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Email:
  formEditor:
    editors:
      900:
        identifier: validators
        templateName: Inspector-ValidatorsEditor
        label: formEditor.elements.TextMixin.editor.validators.label
        selectOptions:
          10:
            value: ''
            label: formEditor.elements.TextMixin.editor.validators.EmptyValue.label
          50:
            value: EmailAddress
            label: formEditor.elements.TextMixin.editor.validators.EmailAddress.label
Copied!

formEditor.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Email.formEditor.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Email:
  formEditor:
    editors:
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
Copied!

formEditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Email.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Email:
  formEditor:
    predefinedDefaults:
      defaultValue: ''
      validators:
        -
          identifier: EmailAddress
Copied!
Description
Defines predefined defaults for form element properties which are prefilled, if the form element is added to a form.

formEditor.propertyCollections.validators.40 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Email.formEditor.propertyCollections.validators.40
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Email:
  formEditor:
    propertyCollections:
      validators:
        40:
          identifier: EmailAddress
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.EmailAddress.editor.header.label
Copied!

formEditor.propertyCollections.validators.40.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Email.formEditor.propertyCollections.validators.40.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Email:
  formEditor:
    propertyCollections:
      validators:
        40:
          identifier: EmailAddress
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.40.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Email.formEditor.propertyCollections.validators.40.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Email:
  formEditor:
    propertyCollections:
      validators:
        40:
          identifier: EmailAddress
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.EmailAddress.editor.header.label
Copied!

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Email.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Email:
  formEditor:
    label: formEditor.elements.Email.label
Copied!
Good to know
Description
This label will be shown within the "new element" Modal.

formEditor.group 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Email.formEditor.group
Data type
string
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Email:
  formEditor:
    group: html5
Copied!
Description
Define within which group within the form editor "new Element" modal the form element should be shown. The group value must be equal to an array key within formElementGroups.

formEditor.groupSorting 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Email.formEditor.groupSorting
Data type
int
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Email:
  formEditor:
    groupSorting: 100
Copied!
Description
The position within the formEditor.group for this form element.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Email.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Email:
  formEditor:
    iconIdentifier: form-email
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within

[Fieldset] 

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Fieldset.implementationClassName
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
No
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
Fieldset:
  implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\Section
Copied!
Description
Classname which implements the form element.

properties.elementClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Fieldset.properties.elementClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Fieldset:
  properties:
    containerClassAttribute: input
    elementClassAttribute: ''
    elementErrorClassAttribute: error
Copied!
Description
A CSS class written to the form element.

properties.elementErrorClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Fieldset.properties.elementErrorClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Fieldset:
  properties:
    containerClassAttribute: input
    elementClassAttribute: ''
    elementErrorClassAttribute: error
Copied!
Description
A CSS class which is written to the form element if validation errors exists.

renderingOptions._isCompositeFormElement 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Fieldset.renderingOptions._isCompositeFormElement
Data type
bool
Needed by
Frontend
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
AdvancedPassword:
  renderingOptions:
    _isCompositeFormElement: true
Copied!
Description
Internal control setting to define that the form element contains child form elements.

formEditor 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Fieldset.formEditor
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Fieldset:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.Fieldset.editor.label.label
        propertyPath: label
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
    predefinedDefaults: {  }
    label: formEditor.elements.Fieldset.label
    group: container
    groupSorting: 100
    _isCompositeFormElement: true
    iconIdentifier: form-fieldset
Copied!

formEditor.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Fieldset.formEditor.editors.100
Data type
array/ [FormElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Fieldset:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
Copied!

formEditor.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Fieldset.formEditor.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Fieldset:
  formEditor:
    editors:
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.Fieldset.editor.label.label
        propertyPath: label
Copied!

formEditor.editors.700 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Fieldset.formEditor.editors.700
Data type
array/ [GridColumnViewPortConfigurationEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Fieldset:
  formEditor:
    editors:
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
Copied!

formEditor.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Fieldset.formEditor.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Fieldset:
  formEditor:
    editors:
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
Copied!

formEditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Fieldset.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Fieldset:
  formEditor:
    predefinedDefaults: {  }
Copied!
Description
Defines predefined defaults for form element properties which are prefilled, if the form element is added to a form.

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Fieldset.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Fieldset:
  formEditor:
    label: formEditor.elements.Fieldset.label
Copied!
Good to know
Description
This label will be shown within the "new element" Modal.

formEditor.group 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Fieldset.formEditor.group
Data type
string
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Fieldset:
  formEditor:
    group: container
Copied!
Default value
Depends (see concrete element configuration)
Description
Define within which group within the form editor "new Element" modal the form element should be shown. The group value must be equal to an array key within formElementGroups.

formEditor.groupSorting 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Fieldset.formEditor.groupSorting
Data type
int
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Fieldset:
  formEditor:
    groupSorting: 100
Copied!
Description
The position within the formEditor.group for this form element.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Fieldset.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Fieldset:
  formEditor:
    iconIdentifier: form-fieldset
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within

formEditor._isCompositeFormElement 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Fieldset.formEditor._isCompositeFormElement
Data type
bool
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Fieldset:
  formEditor:
    _isCompositeFormElement: true
Copied!
Description
Internal control setting to define that the form element contains child form elements.

[FileUpload] 

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.FileUpload.implementationClassName
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
No
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
FileUpload:
  implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\FileUpload
Copied!
Description
Classname which implements the form element.

properties.containerClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.FileUpload.properties.containerClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
FileUpload:
  properties:
    containerClassAttribute: input
    elementClassAttribute: ''
    elementErrorClassAttribute: error
    saveToFileMount: '1:/user_upload/'
    allowedMimeTypes:
      - application/msword
      - application/vnd.openxmlformats-officedocument.wordprocessingml.document
      - application/vnd.oasis.opendocument.text
      - application/pdf
Copied!
Description
A CSS class which is typically wrapped around the form elements.

properties.elementClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.FileUpload.properties.elementClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
FileUpload:
  properties:
    containerClassAttribute: input
    elementClassAttribute: ''
    elementErrorClassAttribute: error
    saveToFileMount: '1:/user_upload/'
    allowedMimeTypes:
      - application/msword
      - application/vnd.openxmlformats-officedocument.wordprocessingml.document
      - application/vnd.oasis.opendocument.text
      - application/pdf
Copied!
Description
A CSS class written to the form element.

properties.elementDescription 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.FileUpload.properties.elementDescription
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
Form editor can write this property into the form definition (for prototype 'standard')
Yes
Mandatory
No
Default value (for prototype 'standard')
Undefined
Good to know
Description
Set a description of the form element. By default, it is displayed below the form element.

properties.elementErrorClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.FileUpload.properties.elementErrorClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
FileUpload:
  properties:
    containerClassAttribute: input
    elementClassAttribute: ''
    elementErrorClassAttribute: error
    saveToFileMount: '1:/user_upload/'
    allowedMimeTypes:
      - application/msword
      - application/vnd.openxmlformats-officedocument.wordprocessingml.document
      - application/vnd.oasis.opendocument.text
      - application/pdf
Copied!
Description
A CSS class which is written to the form element if validation errors exists.

properties.saveToFileMount 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.FileUpload.properties.saveToFileMount
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
Yes
Mandatory
No
Default value (for prototype 'standard')
FileUpload:
  properties:
    containerClassAttribute: input
    elementClassAttribute: ''
    elementErrorClassAttribute: error
    saveToFileMount: '1:/user_upload/'
    allowedMimeTypes:
      - application/msword
      - application/vnd.openxmlformats-officedocument.wordprocessingml.document
      - application/vnd.oasis.opendocument.text
      - application/pdf
Copied!
Description
The location (file mount) for the uploaded files. If this file mount or the property "saveToFileMount" does not exist the folder in which the form definition lies (persistence identifier) will be used. If the form is generated programmatically and therefore no persistence identifier exist the default storage "1:/user_upload/" will be used.

properties.allowedMimeTypes 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.FileUpload.properties.allowedMimeTypes
Data type
array
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
Yes
Mandatory
Yes
Default value (for prototype 'standard')
FileUpload:
  properties:
    containerClassAttribute: input
    elementClassAttribute: ''
    elementErrorClassAttribute: error
    saveToFileMount: '1:/user_upload/'
    allowedMimeTypes:
      - application/msword
      - application/vnd.openxmlformats-officedocument.wordprocessingml.document
      - application/vnd.oasis.opendocument.text
      - application/pdf
Copied!
Description
The allowed mime types for the file uploads.

formEditor 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.FileUpload.formEditor
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
FileUpload:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.label.label
        propertyPath: label
      230:
         identifier: elementDescription
         templateName: Inspector-TextEditor
         label: formEditor.elements.FormElement.editor.elementDescription.label
         propertyPath: properties.elementDescription
      300:
        identifier: allowedMimeTypes
        templateName: Inspector-MultiSelectEditor
        label: formEditor.elements.FileUpload.editor.allowedMimeTypes.label
        propertyPath: properties.allowedMimeTypes
        selectOptions:
          10:
            value: application/msword
            label: formEditor.elements.FileUpload.editor.allowedMimeTypes.doc
          20:
            value: application/vnd.openxmlformats-officedocument.wordprocessingml.document
            label: formEditor.elements.FileUpload.editor.allowedMimeTypes.docx
          30:
            value: application/msexcel
            label: formEditor.elements.FileUpload.editor.allowedMimeTypes.xls
          40:
            value: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
            label: formEditor.elements.FileUpload.editor.allowedMimeTypes.xlsx
          50:
            value: application/pdf
            label: formEditor.elements.FileUpload.editor.allowedMimeTypes.pdf
          60:
            value: application/vnd.oasis.opendocument.text
            label: formEditor.elements.FileUpload.editor.allowedMimeTypes.odt
          70:
            value: application/vnd.oasis.opendocument.spreadsheet-template
            label: formEditor.elements.FileUpload.editor.allowedMimeTypes.ods
      400:
        identifier: saveToFileMount
        templateName: Inspector-SingleSelectEditor
        label: formEditor.elements.FileUploadMixin.editor.saveToFileMount.label
        propertyPath: properties.saveToFileMount
        selectOptions:
          10:
            value: '1:/user_upload/'
            label: '1:/user_upload/'
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
         numbersOfColumnsToUse:
           label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
           propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
           description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
      800:
        identifier: requiredValidator
        templateName: Inspector-RequiredValidatorEditor
        label: formEditor.elements.FormElement.editor.requiredValidator.label
        validatorIdentifier: NotEmpty
        propertyPath: properties.fluidAdditionalAttributes.required
        propertyValue: required
      900:
        identifier: 'validators'
        templateName: 'Inspector-ValidatorsEditor'
        label: 'formEditor.elements.FileUploadMixin.editor.validators.label'
        selectOptions:
          10:
            value: ''
            label: 'formEditor.elements.FileUploadMixin.editor.validators.EmptyValue.label'
          20:
            value: 'FileSize'
            label: 'formEditor.elements.FileUploadMixin.editor.validators.FileSize.label'
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
    propertyCollections:
      validators:
        10:
          identifier: FileSize
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.FileUploadMixin.validators.FileSize.editor.header.label
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: FileSize
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: FileSize
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
    predefinedDefaults:
      properties:
        saveToFileMount: '1:/user_upload/'
        allowedMimeTypes:
          - application/pdf
    label: formEditor.elements.FileUpload.label
    group: custom
    groupSorting: 100
    iconIdentifier: form-file-upload
Copied!

formEditor.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.FileUpload.formEditor.editors.100
Data type
array/ [FormElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
FileUpload:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
Copied!

formEditor.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.FileUpload.formEditor.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
FileUpload:
  formEditor:
    editors:
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.label.label
        propertyPath: label
Copied!

formEditor.editors.230 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.FileUpload.formEditor.editors.230
Data type
array/ [TextEditor]
Needed by
Frontend/ Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Date:
  formEditor:
    editors:
      230:
        identifier: elementDescription
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.elementDescription.label
        propertyPath: properties.elementDescription
Copied!

formEditor.editors.300 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.FileUpload.formEditor.editors.300
Data type
array/ [MultiSelectEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
FileUpload:
  formEditor:
    editors:
      300:
        identifier: allowedMimeTypes
        templateName: Inspector-MultiSelectEditor
        label: formEditor.elements.FileUpload.editor.allowedMimeTypes.label
        propertyPath: properties.allowedMimeTypes
        selectOptions:
          10:
            value: application/msword
            label: formEditor.elements.FileUpload.editor.allowedMimeTypes.doc
          20:
            value: application/vnd.openxmlformats-officedocument.wordprocessingml.document
            label: formEditor.elements.FileUpload.editor.allowedMimeTypes.docx
          30:
            value: application/msexcel
            label: formEditor.elements.FileUpload.editor.allowedMimeTypes.xls
          40:
            value: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
            label: formEditor.elements.FileUpload.editor.allowedMimeTypes.xlsx
          50:
            value: application/pdf
            label: formEditor.elements.FileUpload.editor.allowedMimeTypes.pdf
          60:
            value: application/vnd.oasis.opendocument.text
            label: formEditor.elements.FileUpload.editor.allowedMimeTypes.odt
          70:
            value: application/vnd.oasis.opendocument.spreadsheet-template
            label: formEditor.elements.FileUpload.editor.allowedMimeTypes.ods
Copied!

formEditor.editors.400 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.FileUpload.formEditor.editors.400
Data type
array/ [SingleSelectEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
FileUpload:
  formEditor:
    editors:
      400:
        identifier: saveToFileMount
        templateName: Inspector-SingleSelectEditor
        label: formEditor.elements.FileUploadMixin.editor.saveToFileMount.label
        propertyPath: properties.saveToFileMount
        selectOptions:
          10:
            value: '1:/user_upload/'
            label: '1:/user_upload/'
Copied!

formEditor.editors.700 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.FileUpload.formEditor.editors.700
Data type
array/ [GridColumnViewPortConfigurationEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
FileUpload:
  formEditor:
    editors:
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
Copied!

formEditor.editors.800 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.FileUpload.formEditor.editors.800
Data type
array/ [RequiredValidatorEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
FileUpload:
  formEditor:
    editors:
      800:
        identifier: requiredValidator
        templateName: Inspector-RequiredValidatorEditor
        label: formEditor.elements.FormElement.editor.requiredValidator.label
        validatorIdentifier: NotEmpty
        propertyPath: properties.fluidAdditionalAttributes.required
        propertyValue: required
Copied!

formEditor.editors.900 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.FileUpload.formEditor.editors.900
Data type
array/ [ValidatorsEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
FileUpload:
  formEditor:
    editors:
      900:
        identifier: validators
        templateName: Inspector-ValidatorsEditor
        label: formEditor.elements.FileUploadMixin.editor.validators.label
        selectOptions:
          10:
            value: ''
            label: formEditor.elements.FileUploadMixin.editor.validators.EmptyValue.label
          20:
            value: FileSize
            label: formEditor.elements.FileUploadMixin.editor.validators.FileSize.label
Copied!

formEditor.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.FileUpload.formEditor.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
FileUpload:
  formEditor:
    editors:
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
Copied!

formEditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.FileUpload.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
FileUpload:
  formEditor:
    predefinedDefaults:
      properties:
        saveToFileMount: '1:/user_upload/'
        allowedMimeTypes:
          - application/pdf
Copied!
Description
Defines predefined defaults for form element properties which are prefilled, if the form element is added to a form.

formEditor.propertyCollections.validators.10 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.FileUpload.formEditor.propertyCollections.validators.10
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
FileUpload:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: FileSize
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.FileUploadMixin.validators.FileSize.editor.header.label
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: FileSize
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: FileSize
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.10.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.FileUpload.formEditor.propertyCollections.validators.10.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
FileUpload:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: FileSize
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.10.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.FileUpload.formEditor.propertyCollections.validators.10.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
FileUpload:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: FileSize
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.FileUploadMixin.validators.FileSize.editor.header.label
Copied!

formEditor.propertyCollections.validators.10.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.FileUpload.formEditor.propertyCollections.validators.10.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
FileUpload:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: FileSize
          editors:
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: FileSize
Copied!

formEditor.propertyCollections.validators.10.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.FileUpload.formEditor.propertyCollections.validators.10.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
FileUpload:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: FileSize
          editors:
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: FileSize
Copied!

formEditor.propertyCollections.validators.10.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.FileUpload.formEditor.propertyCollections.validators.10.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
FileUpload:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: FileSize
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.FileUpload.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
FileUpload:
  formEditor:
    label: formEditor.elements.FileUpload.label
Copied!
Good to know
Description
This label will be shown within the "new element" Modal.

formEditor.group 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.FileUpload.formEditor.group
Data type
string
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
FileUpload:
  formEditor:
    group: custom
Copied!
Default value
Depends (see concrete element configuration)
Description
Define within which group within the form editor "new Element" modal the form element should be shown. The group value must be equal to an array key within formElementGroups.

formEditor.groupSorting 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.FileUpload.formEditor.groupSorting
Data type
int
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
FileUpload:
  formEditor:
    groupSorting: 100
Copied!
Description
The position within the formEditor.group for this form element.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.FileUpload.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
FileUpload:
  formEditor:
    iconIdentifier: form-file-upload
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within

[GridRow] 

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.GridRow.implementationClassName
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
No
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
GridRow:
  implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GridRow
Copied!
Description
Classname which implements the form element.

properties.containerClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.GridRow.properties.containerClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
GridRow:
  properties:
    containerClassAttribute: input
    elementClassAttribute: row
    elementErrorClassAttribute: error
    gridColumnClassAutoConfiguration:
      gridSize: 12
      viewPorts:
        xs:
          classPattern: 'col-{@numbersOfColumnsToUse}'
        sm:
          classPattern: 'col-sm-{@numbersOfColumnsToUse}'
        md:
          classPattern: 'col-md-{@numbersOfColumnsToUse}'
        lg:
          classPattern: 'col-lg-{@numbersOfColumnsToUse}'
Copied!
Description
A CSS class which is typically wrapped around the form elements.

properties.elementClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.GridRow.properties.elementClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
GridRow:
  properties:
    containerClassAttribute: input
    elementClassAttribute: row
    elementErrorClassAttribute: error
    gridColumnClassAutoConfiguration:
      gridSize: 12
      viewPorts:
        xs:
          classPattern: 'col-{@numbersOfColumnsToUse}'
        sm:
          classPattern: 'col-sm-{@numbersOfColumnsToUse}'
        md:
          classPattern: 'col-md-{@numbersOfColumnsToUse}'
        lg:
          classPattern: 'col-lg-{@numbersOfColumnsToUse}'
Copied!
Description
A CSS class written to the form element.

properties.elementErrorClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.GridRow.properties.elementErrorClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
GridRow:
  properties:
    containerClassAttribute: input
    elementClassAttribute: row
    elementErrorClassAttribute: error
    gridColumnClassAutoConfiguration:
      gridSize: 12
      viewPorts:
        xs:
          classPattern: 'col-{@numbersOfColumnsToUse}'
        sm:
          classPattern: 'col-sm-{@numbersOfColumnsToUse}'
        md:
          classPattern: 'col-md-{@numbersOfColumnsToUse}'
        lg:
          classPattern: 'col-lg-{@numbersOfColumnsToUse}'
Copied!
Description
A CSS class which is written to the form element if validation errors exists.

properties.gridColumnClassAutoConfiguration.gridSize 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.GridRow.properties.gridColumnClassAutoConfiguration.gridSize
Data type
int
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
GridRow:
  properties:
    containerClassAttribute: input
    elementClassAttribute: row
    elementErrorClassAttribute: error
    gridColumnClassAutoConfiguration:
      gridSize: 12
      viewPorts:
        xs:
          classPattern: 'col-{@numbersOfColumnsToUse}'
        sm:
          classPattern: 'col-sm-{@numbersOfColumnsToUse}'
        md:
          classPattern: 'col-md-{@numbersOfColumnsToUse}'
        lg:
          classPattern: 'col-lg-{@numbersOfColumnsToUse}'
Copied!
Description
The grid size of the CSS grid system (bootstrap by default).

properties.gridColumnClassAutoConfiguration.viewPorts 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.GridRow.properties.gridColumnClassAutoConfiguration.viewPorts
Data type
array
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
GridRow:
  properties:
    containerClassAttribute: input
    elementClassAttribute: row
    elementErrorClassAttribute: error
    gridColumnClassAutoConfiguration:
      gridSize: 12
      viewPorts:
        xs:
          classPattern: 'col-{@numbersOfColumnsToUse}'
        sm:
          classPattern: 'col-sm-{@numbersOfColumnsToUse}'
        md:
          classPattern: 'col-md-{@numbersOfColumnsToUse}'
        lg:
          classPattern: 'col-lg-{@numbersOfColumnsToUse}'
Copied!
Related options
Description
Each configuration key within properties.gridColumnClassAutoConfiguration.viewPorts represents an viewport of the CSS grid system (bootstrap by default).

properties.gridColumnClassAutoConfiguration.viewPorts.[*].classPattern 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.GridRow.properties.gridColumnClassAutoConfiguration.viewPorts.<gridColumnClassAutoConfigurationViewPortIdentifier>.classPattern
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
GridRow:
  properties:
    containerClassAttribute: input
    elementClassAttribute: row
    elementErrorClassAttribute: error
    gridColumnClassAutoConfiguration:
      gridSize: 12
      viewPorts:
        xs:
          classPattern: 'col-{@numbersOfColumnsToUse}'
        sm:
          classPattern: 'col-sm-{@numbersOfColumnsToUse}'
        md:
          classPattern: 'col-md-{@numbersOfColumnsToUse}'
        lg:
          classPattern: 'col-lg-{@numbersOfColumnsToUse}'
Copied!
Related options
Description
Defines the CSS class pattern for the CSS grid system. Each viewport classPattern will be wrapped around a form element within a grid row. The {@numbersOfColumnsToUse} placeholder will be replaced by the number of columns which the respective form element should occupy. The number of columns which the respective form element should occupy has to defined within the respective form elements within a GridRow. If a form element has no number of columns defined, the {@numbersOfColumnsToUse} are calculated automatically.

renderingOptions._isCompositeFormElement 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.GridRow.renderingOptions._isCompositeFormElement
Data type
bool
Needed by
Frontend
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
GridRow:
  renderingOptions:
    _isCompositeFormElement: true
    _isGridRowFormElement: true
Copied!
Description
Internal control setting to define that the form element contains child form elements.

renderingOptions._isGridRowFormElement 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.GridRow.renderingOptions._isGridRowFormElement
Data type
bool
Needed by
Frontend
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
GridRow:
  renderingOptions:
    _isCompositeFormElement: true
    _isGridRowFormElement: true
Copied!
Description
Internal control setting.

formEditor 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.GridRow.formEditor
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
GridRow:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.GridRow.editor.label.label
        propertyPath: label
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
    predefinedDefaults: {  }
    label: formEditor.elements.GridRow.label
    group: container
    groupSorting: 300
    _isCompositeFormElement: true
    _isGridRowFormElement: true
    iconIdentifier: form-gridrow
Copied!

formEditor.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.GridRow.formEditor.editors.100
Data type
array/ [FormElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
GridRow:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
Copied!

formEditor.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.GridRow.formEditor.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
GridRow:
  formEditor:
    editors:
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.GridRow.editor.label.label
        propertyPath: label
Copied!

formEditor.editors.700 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.GridRow.formEditor.editors.700
Data type
array/ [GridColumnViewPortConfigurationEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
GridRow:
  formEditor:
    editors:
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
Copied!

formEditor.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.GridRow.formEditor.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
GridRow:
  formEditor:
    editors:
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
Copied!

formEditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.GridRow.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
GridRow:
  formEditor:
    predefinedDefaults: {  }
Copied!
Description
Defines predefined defaults for form element properties which are prefilled, if the form element is added to a form.

formEditor._isCompositeFormElement 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.GridRow.formEditor._isCompositeFormElement
Data type
bool
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
GridRow:
  formEditor:
    _isCompositeFormElement: true
Copied!
Description
Internal control setting to define that the form element contains child form elements.

formEditor._isGridRowFormElement 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.GridRow.formEditor._isGridRowFormElement
Data type
bool
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
GridRow:
  formEditor:
    _isGridRowFormElement: true
Copied!
Description
todo

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.GridRow.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
GridRow:
  formEditor:
    label: formEditor.elements.GridRow.label
Copied!
Good to know
Description
This label will be shown within the "new element" Modal.

formEditor.group 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.GridRow.formEditor.group
Data type
string
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
GridRow:
  formEditor:
    group: container
Copied!
Default value
Depends (see concrete element configuration)
Description
Define within which group within the form editor "new Element" modal the form element should be shown. The group value must be equal to an array key within formElementGroups.

formEditor.groupSorting 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.GridRow.formEditor.groupSorting
Data type
int
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
GridRow:
  formEditor:
    groupSorting: 300
Copied!
Description
The position within the formEditor.group for this form element.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.GridRow.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
GridRow:
  formEditor:
    iconIdentifier: form-gridrow
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within

[Hidden] 

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Hidden.implementationClassName
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
No
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
Hidden:
  implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
Copied!
Description
Classname which implements the form element.

properties.containerClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Hidden.properties.containerClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Hidden:
  properties:
    containerClassAttribute: input
    elementClassAttribute: ''
    elementErrorClassAttribute: error
Copied!
Description
A CSS class which is typically wrapped around the form elements.

properties.elementClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Hidden.properties.elementClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Hidden:
  properties:
    containerClassAttribute: input
    elementClassAttribute: ''
    elementErrorClassAttribute: error
Copied!
Description
A CSS class written to the form element.

properties.elementErrorClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Hidden.properties.elementErrorClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Hidden:
  properties:
    containerClassAttribute: input
    elementClassAttribute: ''
    elementErrorClassAttribute: error
Copied!
Description
A CSS class which is written to the form element if validation errors exists.

formEditor 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Hidden.formEditor
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Hidden:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.label.label
        propertyPath: label
      300:
        identifier: defaultValue
        templateName: Inspector-TextEditor
        label: formEditor.elements.Hidden.editor.defaultValue.label
        propertyPath: defaultValue
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
    predefinedDefaults:
      defaultValue: ''
    label: formEditor.elements.Hidden.label
    group: custom
    groupSorting: 300
    iconIdentifier: form-hidden
Copied!

formEditor.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Hidden.formEditor.editors.100
Data type
array/ [FormElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Hidden:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
Copied!

formEditor.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Hidden.formEditor.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Hidden:
  formEditor:
    editors:
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.label.label
        propertyPath: label
Copied!

formEditor.editors.300 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Hidden.formEditor.editors.300
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Hidden:
  formEditor:
    editors:
      300:
        identifier: defaultValue
        templateName: Inspector-TextEditor
        label: formEditor.elements.Hidden.editor.defaultValue.label
        propertyPath: defaultValue
Copied!

formEditor.editors.700 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Hidden.formEditor.editors.700
Data type
array/ [GridColumnViewPortConfigurationEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Hidden:
  formEditor:
    editors:
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
Copied!

formEditor.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Hidden.formEditor.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Hidden:
  formEditor:
    editors:
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
Copied!

formEditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Hidden.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Hidden:
  formEditor:
    predefinedDefaults:
      defaultValue: ''
Copied!
Description
Defines predefined defaults for form element properties which are prefilled, if the form element is added to a form.

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Hidden.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Hidden:
  formEditor:
    label: formEditor.elements.Hidden.label
Copied!
Good to know
Description
This label will be shown within the "new element" Modal.

formEditor.group 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Hidden.formEditor.group
Data type
string
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Hidden:
  formEditor:
    group: custom
Copied!
Default value
Depends (see concrete element configuration)
Description
Define within which group within the form editor "new Element" modal the form element should be shown. The group value must be equal to an array key within formElementGroups.

formEditor.groupSorting 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Hidden.formEditor.groupSorting
Data type
int
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Hidden:
  formEditor:
    groupSorting: 300
Copied!
Description
The position within the formEditor.group for this form element.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Hidden.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Hidden:
  formEditor:
    iconIdentifier: form-hidden
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within

[Honeypot] 

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Honeypot.implementationClassName
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
No
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
Honeypot:
  implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
Copied!
Description
Classname which implements the form element.

properties.containerClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Honeypot.properties.containerClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Honeypot:
  properties:
    containerClassAttribute: input
    elementClassAttribute: ''
    elementErrorClassAttribute: error
    renderAsHiddenField: false
    styleAttribute: 'position:absolute; margin:0 0 0 -999em;'
Copied!
Description
A CSS class which is typically wrapped around the form elements.

properties.elementClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Honeypot.properties.elementClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Honeypot:
  properties:
    containerClassAttribute: input
    elementClassAttribute: ''
    elementErrorClassAttribute: error
    renderAsHiddenField: false
    styleAttribute: 'position:absolute; margin:0 0 0 -999em;'
Copied!
Description
A CSS class written to the form element.

properties.elementErrorClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Honeypot.properties.elementErrorClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Honeypot:
  properties:
    containerClassAttribute: input
    elementClassAttribute: ''
    elementErrorClassAttribute: error
    renderAsHiddenField: false
    styleAttribute: 'position:absolute; margin:0 0 0 -999em;'
Copied!
Description
A CSS class which is written to the form element if validation errors exists.

properties.renderAsHiddenField 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Honeypot.properties.renderAsHiddenField
Data type
bool
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Honeypot:
  properties:
    containerClassAttribute: input
    elementClassAttribute: ''
    elementErrorClassAttribute: error
    renderAsHiddenField: false
    styleAttribute: 'position:absolute; margin:0 0 0 -999em;'
Copied!
Description
By default the honeypot will be rendered as a regular text form element (input type "text"). renderAsHiddenField renders the honeypot as a hidden form element (input type "hidden").

properties.styleAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Honeypot.properties.styleAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Honeypot:
  properties:
    containerClassAttribute: input
    elementClassAttribute: ''
    elementErrorClassAttribute: error
    renderAsHiddenField: false
    styleAttribute: 'position:absolute; margin:0 0 0 -999em;'
Copied!
Description
By default the honeypot will be rendered as a regular text form element (input type "text"). The styleAttribute is written to the honeypot form element to make it "invisible" for humans.

[ImageUpload] 

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ImageUpload.implementationClassName
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
No
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
ImageUpload:
  implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\FileUpload
Copied!
Description
Classname which implements the form element.

properties.containerClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ImageUpload.properties.containerClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
ImageUpload:
  properties:
    containerClassAttribute: input
    elementClassAttribute: lightbox
    elementErrorClassAttribute: error
    saveToFileMount: '1:/user_upload/'
    allowedMimeTypes:
      - image/jpeg
      - image/png
      - image/bmp
    imageLinkMaxWidth: 500
    imageMaxWidth: 500
    imageMaxHeight: 500
Copied!
Description
A CSS class which is typically wrapped around the form elements.

properties.elementClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ImageUpload.properties.elementClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
ImageUpload:
  properties:
    containerClassAttribute: input
    elementClassAttribute: lightbox
    elementErrorClassAttribute: error
    saveToFileMount: '1:/user_upload/'
    allowedMimeTypes:
      - image/jpeg
      - image/png
      - image/bmp
    imageLinkMaxWidth: 500
    imageMaxWidth: 500
    imageMaxHeight: 500
Copied!
Description
A CSS class written to the form element.

properties.elementDescription 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ImageUpload.properties.elementDescription
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
Form editor can write this property into the form definition (for prototype 'standard')
Yes
Mandatory
No
Default value (for prototype 'standard')
Undefined
Good to know
Description
Set a description of the form element. By default, it is displayed below the form element.

properties.elementErrorClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ImageUpload.properties.elementErrorClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
ImageUpload:
  properties:
    containerClassAttribute: input
    elementClassAttribute: lightbox
    elementErrorClassAttribute: error
    saveToFileMount: '1:/user_upload/'
    allowedMimeTypes:
      - image/jpeg
      - image/png
      - image/bmp
    imageLinkMaxWidth: 500
    imageMaxWidth: 500
    imageMaxHeight: 500
Copied!
Description
A CSS class which is written to the form element if validation errors exists.

properties.saveToFileMount 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ImageUpload.properties.saveToFileMount
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
Yes
Mandatory
No
Default value (for prototype 'standard')
ImageUpload:
  properties:
    containerClassAttribute: input
    elementClassAttribute: lightbox
    elementErrorClassAttribute: error
    saveToFileMount: '1:/user_upload/'
    allowedMimeTypes:
      - image/jpeg
      - image/png
      - image/bmp
    imageLinkMaxWidth: 500
    imageMaxWidth: 500
    imageMaxHeight: 500
Copied!
Description
The location (file mount) for the uploaded images. If this file mount or the property "saveToFileMount" does not exist the folder in which the form definition lies (persistence identifier) will be used. If the form is generated programmatically and therefore no persistence identifier exist the default storage "1:/user_upload/" will be used.

properties.allowedMimeTypes 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ImageUpload.properties.allowedMimeTypes
Data type
array
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
Yes
Mandatory
Yes
Default value (for prototype 'standard')
ImageUpload:
  properties:
    containerClassAttribute: input
    elementClassAttribute: lightbox
    elementErrorClassAttribute: error
    saveToFileMount: '1:/user_upload/'
    allowedMimeTypes:
      - image/jpeg
      - image/png
      - image/bmp
    imageLinkMaxWidth: 500
    imageMaxWidth: 500
    imageMaxHeight: 500
Copied!
Description
The allowed mime types for the image uploads.

properties.imageLinkMaxWidth 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ImageUpload.properties.imageLinkMaxWidth
Data type
int
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
ImageUpload:
  properties:
    containerClassAttribute: input
    elementClassAttribute: lightbox
    elementErrorClassAttribute: error
    saveToFileMount: '1:/user_upload/'
    allowedMimeTypes:
      - image/jpeg
      - image/png
      - image/bmp
    imageLinkMaxWidth: 500
    imageMaxWidth: 500
    imageMaxHeight: 500
Copied!
Description
The max width for the uploaded image preview link.

properties.imageMaxWidth 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ImageUpload.properties.imageMaxWidth
Data type
int
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
ImageUpload:
  properties:
    containerClassAttribute: input
    elementClassAttribute: lightbox
    elementErrorClassAttribute: error
    saveToFileMount: '1:/user_upload/'
    allowedMimeTypes:
      - image/jpeg
      - image/png
      - image/bmp
    imageLinkMaxWidth: 500
    imageMaxWidth: 500
    imageMaxHeight: 500
Copied!
Description
The max width for the uploaded image preview.

properties.imageMaxHeight 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ImageUpload.properties.imageMaxHeight
Data type
int
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
ImageUpload:
  properties:
    containerClassAttribute: input
    elementClassAttribute: lightbox
    elementErrorClassAttribute: error
    saveToFileMount: '1:/user_upload/'
    allowedMimeTypes:
      - image/jpeg
      - image/png
      - image/bmp
    imageLinkMaxWidth: 500
    imageMaxWidth: 500
    imageMaxHeight: 500
Copied!
Description
The max height for the uploaded image preview.

formEditor 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ImageUpload.formEditor
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
ImageUpload:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.label.label
        propertyPath: label
      230:
         identifier: elementDescription
         templateName: Inspector-TextEditor
         label: formEditor.elements.FormElement.editor.elementDescription.label
         propertyPath: properties.elementDescription
      300:
        identifier: allowedMimeTypes
        templateName: Inspector-MultiSelectEditor
        label: formEditor.elements.ImageUpload.editor.allowedMimeTypes.label
        propertyPath: properties.allowedMimeTypes
        selectOptions:
          10:
            value: image/jpeg
            label: formEditor.elements.ImageUpload.editor.allowedMimeTypes.jpg
          20:
            value: image/png
            label: formEditor.elements.ImageUpload.editor.allowedMimeTypes.png
          30:
            value: image/bmp
            label: formEditor.elements.ImageUpload.editor.allowedMimeTypes.bmp
      400:
        identifier: saveToFileMount
        templateName: Inspector-SingleSelectEditor
        label: formEditor.elements.FileUploadMixin.editor.saveToFileMount.label
        propertyPath: properties.saveToFileMount
        selectOptions:
          10:
            value: '1:/user_upload/'
            label: '1:/user_upload/'
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
      800:
        identifier: requiredValidator
        templateName: Inspector-RequiredValidatorEditor
        label: formEditor.elements.FormElement.editor.requiredValidator.label
        validatorIdentifier: NotEmpty
        propertyPath: properties.fluidAdditionalAttributes.required
        propertyValue: required
      900:
        identifier: 'validators'
        templateName: 'Inspector-ValidatorsEditor'
        label: 'formEditor.elements.FileUploadMixin.editor.validators.label'
        selectOptions:
          10:
            value: ''
            label: 'formEditor.elements.FileUploadMixin.editor.validators.EmptyValue.label'
          20:
            value: 'FileSize'
            label: 'formEditor.elements.FileUploadMixin.editor.validators.FileSize.label'
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
    propertyCollections:
      validators:
        10:
          identifier: FileSize
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.FileUploadMixin.validators.FileSize.editor.header.label
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: FileSize
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: FileSize
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
    predefinedDefaults:
      properties:
        saveToFileMount: '1:/user_upload/'
        allowedMimeTypes:
          - image/jpeg
    label: formEditor.elements.ImageUpload.label
    group: custom
    groupSorting: 400
    iconIdentifier: form-image-upload
Copied!

formEditor.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ImageUpload.formEditor.editors.100
Data type
array/ [FormElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
ImageUpload:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
Copied!

formEditor.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ImageUpload.formEditor.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
ImageUpload:
  formEditor:
    editors:
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.label.label
        propertyPath: label
Copied!

formEditor.editors.230 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ImageUpload.formEditor.editors.230
Data type
string
Needed by
Frontend/ Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Date:
  formEditor:
    editors:
      230:
        identifier: elementDescription
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.elementDescription.label
        propertyPath: properties.elementDescription
Copied!

formEditor.editors.300 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ImageUpload.formEditor.editors.300
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
ImageUpload:
  formEditor:
    editors:
      300:
        identifier: allowedMimeTypes
        templateName: Inspector-MultiSelectEditor
        label: formEditor.elements.ImageUpload.editor.allowedMimeTypes.label
        propertyPath: properties.allowedMimeTypes
        selectOptions:
          10:
            value: image/jpeg
            label: formEditor.elements.ImageUpload.editor.allowedMimeTypes.jpg
          20:
            value: image/png
            label: formEditor.elements.ImageUpload.editor.allowedMimeTypes.png
          30:
            value: image/bmp
            label: formEditor.elements.ImageUpload.editor.allowedMimeTypes.bmp
Copied!

formEditor.editors.400 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ImageUpload.formEditor.editors.400
Data type
array/ [SingleSelectEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
ImageUpload:
  formEditor:
    editors:
      400:
        identifier: saveToFileMount
        templateName: Inspector-SingleSelectEditor
        label: formEditor.elements.FileUploadMixin.editor.saveToFileMount.label
        propertyPath: properties.saveToFileMount
        selectOptions:
          10:
            value: '1:/user_upload/'
            label: '1:/user_upload/'
Copied!

formEditor.editors.700 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ImageUpload.formEditor.editors.700
Data type
array/ [GridColumnViewPortConfigurationEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
ImageUpload:
  formEditor:
    editors:
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
Copied!

formEditor.editors.800 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ImageUpload.formEditor.editors.800
Data type
array/ [RequiredValidatorEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
ImageUpload:
  formEditor:
    editors:
      800:
        identifier: requiredValidator
        templateName: Inspector-RequiredValidatorEditor
        label: formEditor.elements.FormElement.editor.requiredValidator.label
        validatorIdentifier: NotEmpty
        propertyPath: properties.fluidAdditionalAttributes.required
        propertyValue: required
Copied!

formEditor.editors.900 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ImageUpload.formEditor.editors.900
Data type
array/ [ValidatorsEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
ImageUpload:
  formEditor:
    editors:
      900:
        identifier: validators
        templateName: Inspector-ValidatorsEditor
        label: formEditor.elements.FileUploadMixin.editor.validators.label
        selectOptions:
          10:
            value: ''
            label: formEditor.elements.FileUploadMixin.editor.validators.EmptyValue.label
          20:
            value: FileSize
            label: formEditor.elements.FileUploadMixin.editor.validators.FileSize.label
Copied!

formEditor.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ImageUpload.formEditor.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
ImageUpload:
  formEditor:
    editors:
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
Copied!

formEditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ImageUpload.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
ImageUpload:
  formEditor:
    predefinedDefaults:
      properties:
        saveToFileMount: '1:/user_upload/'
        allowedMimeTypes:
          - image/jpeg
Copied!
Description
Defines predefined defaults for form element properties which are prefilled, if the form element is added to a form.

formEditor.propertyCollections.validators.10 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ImageUpload.formEditor.propertyCollections.validators.10
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
ImageUpload:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: FileSize
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.FileUploadMixin.validators.FileSize.editor.header.label
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: FileSize
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: FileSize
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.10.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ImageUpload.formEditor.propertyCollections.validators.10.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
ImageUpload:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: FileSize
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.10.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ImageUpload.formEditor.propertyCollections.validators.10.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
ImageUpload:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: FileSize
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.FileUploadMixin.validators.FileSize.editor.header.label
Copied!

formEditor.propertyCollections.validators.10.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ImageUpload.formEditor.propertyCollections.validators.10.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
ImageUpload:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: FileSize
          editors:
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: FileSize
Copied!

formEditor.propertyCollections.validators.10.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ImageUpload.formEditor.propertyCollections.validators.10.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
ImageUpload:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: FileSize
          editors:
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: FileSize
Copied!

formEditor.propertyCollections.validators.10.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ImageUpload.formEditor.propertyCollections.validators.10.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
ImageUpload:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: FileSize
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ImageUpload.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
ImageUpload:
  formEditor:
    label: formEditor.elements.ImageUpload.label
Copied!
Good to know
Description
This label will be shown within the "new element" Modal.

formEditor.group 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ImageUpload.formEditor.group
Data type
string
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
ImageUpload:
  formEditor:
    group: custom
Copied!
Default value
Depends (see concrete element configuration)
Description
Define within which group within the form editor "new Element" modal the form element should be shown. The group value must be equal to an array key within formElementGroups.

formEditor.groupSorting 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ImageUpload.formEditor.groupSorting
Data type
int
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
ImageUpload:
  formEditor:
    groupSorting: 400
Copied!
Description
The position within the formEditor.group for this form element.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.ImageUpload.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
ImageUpload:
  formEditor:
    iconIdentifier: form-image-upload
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within

[MultiCheckbox] 

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiCheckbox.implementationClassName
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
No
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
MultiCheckbox:
  implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
Copied!
Description
Classname which implements the form element.

properties.containerClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiCheckbox.properties.containerClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
MultiCheckbox:
  properties:
    containerClassAttribute: 'input checkbox'
    elementClassAttribute: ''
    elementErrorClassAttribute: error
Copied!
Description
A CSS class which is typically wrapped around the form elements.

properties.elementClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiCheckbox.properties.elementClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
MultiCheckbox:
  properties:
    containerClassAttribute: 'input checkbox'
    elementClassAttribute: ''
    elementErrorClassAttribute: error
Copied!
Description
A CSS class written to the form element.

properties.elementDescription 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiCheckbox.properties.elementDescription
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
Form editor can write this property into the form definition (for prototype 'standard')
Yes
Mandatory
No
Default value (for prototype 'standard')
Undefined
Good to know
Description
Set a description of the form element. By default, it is displayed below the form element.

properties.elementErrorClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiCheckbox.properties.elementErrorClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
MultiCheckbox:
  properties:
    containerClassAttribute: 'input checkbox'
    elementClassAttribute: ''
    elementErrorClassAttribute: error
Copied!
Description
A CSS class which is written to the form element if validation errors exists.

formEditor 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiCheckbox.formEditor
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
MultiCheckbox:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.label.label
        propertyPath: label
      230:
         identifier: elementDescription
         templateName: Inspector-TextEditor
         label: formEditor.elements.FormElement.editor.elementDescription.label
         propertyPath: properties.elementDescription
      300:
        identifier: options
        templateName: Inspector-PropertyGridEditor
        label: formEditor.elements.SelectionMixin.editor.options.label
        propertyPath: properties.options
        isSortable: true
        enableAddRow: true
        enableDeleteRow: true
        removeLastAvailableRowFlashMessageTitle: formEditor.elements.SelectionMixin.editor.options.removeLastAvailableRowFlashMessageTitle
        removeLastAvailableRowFlashMessageMessage: formEditor.elements.SelectionMixin.editor.options.removeLastAvailableRowFlashMessageMessage
        multiSelection: true
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
      800:
        identifier: requiredValidator
        templateName: Inspector-RequiredValidatorEditor
        label: formEditor.elements.FormElement.editor.requiredValidator.label
        validatorIdentifier: NotEmpty
      900:
        identifier: validators
        templateName: Inspector-ValidatorsEditor
        label: formEditor.elements.MultiSelectionMixin.editor.validators.label
        selectOptions:
          10:
            value: ''
            label: formEditor.elements.MultiSelectionMixin.editor.validators.EmptyValue.label
          20:
            value: Count
            label: formEditor.elements.MultiSelectionMixin.editor.validators.Count.label
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
    predefinedDefaults:
      properties:
        options: {  }
    propertyCollections:
      validators:
        10:
          identifier: Count
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.MultiSelectionMixin.validators.Count.editor.header.label
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: Integer
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: Integer
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
    label: formEditor.elements.MultiCheckbox.label
    group: select
    groupSorting: 400
    iconIdentifier: form-multi-checkbox
Copied!

formEditor.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiCheckbox.formEditor.editors.100
Data type
array/ [FormElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
MultiCheckbox:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
Copied!

formEditor.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiCheckbox.formEditor.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
MultiCheckbox:
  formEditor:
    editors:
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.label.label
        propertyPath: label
Copied!

formEditor.editors.230 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiCheckbox.formEditor.editors.230
Data type
array/ [TextEditor]
Needed by
Frontend/ Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Date:
  formEditor:
    editors:
      230:
        identifier: elementDescription
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.elementDescription.label
        propertyPath: properties.elementDescription
Copied!

formEditor.editors.300 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiCheckbox.formEditor.editors.300
Data type
array/ [PropertyGridEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
MultiCheckbox:
  formEditor:
    editors:
      300:
        identifier: options
        templateName: Inspector-PropertyGridEditor
        label: formEditor.elements.SelectionMixin.editor.options.label
        propertyPath: properties.options
        isSortable: true
        enableAddRow: true
        enableDeleteRow: true
        removeLastAvailableRowFlashMessageTitle: formEditor.elements.SelectionMixin.editor.options.removeLastAvailableRowFlashMessageTitle
        removeLastAvailableRowFlashMessageMessage: formEditor.elements.SelectionMixin.editor.options.removeLastAvailableRowFlashMessageMessage
        multiSelection: true
Copied!

formEditor.editors.700 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiCheckbox.formEditor.editors.700
Data type
array/ [GridColumnViewPortConfigurationEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
MultiCheckbox:
  formEditor:
    editors:
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
Copied!

formEditor.editors.800 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiCheckbox.formEditor.editors.800
Data type
array/ [RequiredValidatorEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
MultiCheckbox:
  formEditor:
    editors:
      800:
        identifier: requiredValidator
        templateName: Inspector-RequiredValidatorEditor
        label: formEditor.elements.FormElement.editor.requiredValidator.label
        validatorIdentifier: NotEmpty
        propertyPath: properties.fluidAdditionalAttributes.required
        propertyValue: required
Copied!

formEditor.editors.900 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiCheckbox.formEditor.editors.900
Data type
array/ [ValidatorsEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
MultiCheckbox:
  formEditor:
    editors:
      900:
        identifier: validators
        templateName: Inspector-ValidatorsEditor
        label: formEditor.elements.MultiSelectionMixin.editor.validators.label
        selectOptions:
          10:
            value: ''
            label: formEditor.elements.MultiSelectionMixin.editor.validators.EmptyValue.label
          20:
            value: Count
            label: formEditor.elements.MultiSelectionMixin.editor.validators.Count.label
Copied!

formEditor.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiCheckbox.formEditor.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
MultiCheckbox:
  formEditor:
    editors:
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
Copied!

formEditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiCheckbox.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
MultiCheckbox:
  formEditor:
    predefinedDefaults:
      properties:
        options: {  }
Copied!
Description
Defines predefined defaults for form element properties which are prefilled, if the form element is added to a form.

formEditor.propertyCollections.validators.10 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiCheckbox.formEditor.propertyCollections.validators.10
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
MultiCheckbox:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: Count
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.MultiSelectionMixin.validators.Count.editor.header.label
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: Integer
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: Integer
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.10.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiCheckbox.formEditor.propertyCollections.validators.10.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
MultiCheckbox:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: Count
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.10.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiCheckbox.formEditor.propertyCollections.validators.10.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
MultiCheckbox:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: Count
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.MultiSelectionMixin.validators.Count.editor.header.label
Copied!

formEditor.propertyCollections.validators.10.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiCheckbox.formEditor.propertyCollections.validators.10.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
MultiCheckbox:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: Count
          editors:
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: Integer
Copied!

formEditor.propertyCollections.validators.10.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiCheckbox.formEditor.propertyCollections.validators.10.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
MultiCheckbox:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: Count
          editors:
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: Integer
Copied!

formEditor.propertyCollections.validators.10.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiCheckbox.formEditor.propertyCollections.validators.10.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
MultiCheckbox:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: Count
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiCheckbox.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
MultiCheckbox:
  formEditor:
    label: formEditor.elements.MultiCheckbox.label
Copied!
Good to know
Description
This label will be shown within the "new element" Modal.

formEditor.group 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiCheckbox.formEditor.group
Data type
string
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
MultiCheckbox:
  formEditor:
    group: select
Copied!
Default value
Depends (see concrete element configuration)
Description
Define within which group within the form editor "new Element" modal the form element should be shown. The group value must be equal to an array key within formElementGroups.

formEditor.groupSorting 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiCheckbox.formEditor.groupSorting
Data type
int
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
MultiCheckbox:
  formEditor:
    groupSorting: 400
Copied!
Description
The position within the formEditor.group for this form element.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiCheckbox.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
MultiCheckbox:
  formEditor:
    iconIdentifier: form-multi-checkbox
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within

[MultiSelect] 

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiSelect.implementationClassName
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
No
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
MultiSelect:
  implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
Copied!
Description
Classname which implements the form element.

properties.containerClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiSelect.properties.containerClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
MultiSelect:
  properties:
    containerClassAttribute: input
    elementClassAttribute: xlarge
    elementErrorClassAttribute: error
Copied!
Description
A CSS class which is typically wrapped around the form elements.

properties.elementClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiSelect.properties.elementClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
MultiSelect:
  properties:
    containerClassAttribute: input
    elementClassAttribute: xlarge
    elementErrorClassAttribute: error
Copied!
Description
A CSS class written to the form element.

properties.elementDescription 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiSelect.properties.elementDescription
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
Form editor can write this property into the form definition (for prototype 'standard')
Yes
Mandatory
No
Default value (for prototype 'standard')
Undefined
Good to know
Description
Set a description of the form element. By default, it is displayed below the form element.

properties.elementErrorClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiSelect.properties.elementErrorClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
MultiSelect:
  properties:
    containerClassAttribute: input
    elementClassAttribute: xlarge
    elementErrorClassAttribute: error
Copied!
Description
A CSS class which is written to the form element if validation errors exists.

properties.prependOptionLabel 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiSelect.properties.prependOptionLabel
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
Yes
Mandatory
No
Default value (for prototype 'standard')
undefined
Description
If set, this label will be shown as first select-option.

properties.prependOptionValue 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiSelect.properties.prependOptionValue
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
undefined
Description
If set, this value will be set for the first select-option.

formEditor 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiSelect.formEditor
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
MultiSelect:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.label.label
        propertyPath: label
      230:
         identifier: elementDescription
         templateName: Inspector-TextEditor
         label: formEditor.elements.FormElement.editor.elementDescription.label
         propertyPath: properties.elementDescription
      250:
        identifier: inactiveOption
        templateName: Inspector-TextEditor
        label: formEditor.elements.SelectionMixin.editor.inactiveOption.label
        propertyPath: properties.prependOptionLabel
        description: formEditor.elements.SelectionMixin.editor.inactiveOption.description
        doNotSetIfPropertyValueIsEmpty: true
      300:
        identifier: options
        templateName: Inspector-PropertyGridEditor
        label: formEditor.elements.SelectionMixin.editor.options.label
        propertyPath: properties.options
        isSortable: true
        enableAddRow: true
        enableDeleteRow: true
        removeLastAvailableRowFlashMessageTitle: formEditor.elements.SelectionMixin.editor.options.removeLastAvailableRowFlashMessageTitle
        removeLastAvailableRowFlashMessageMessage: formEditor.elements.SelectionMixin.editor.options.removeLastAvailableRowFlashMessageMessage
        multiSelection: true
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
      800:
        identifier: requiredValidator
        templateName: Inspector-RequiredValidatorEditor
        label: formEditor.elements.FormElement.editor.requiredValidator.label
        validatorIdentifier: NotEmpty
        propertyPath: properties.fluidAdditionalAttributes.required
        propertyValue: required
      900:
        identifier: validators
        templateName: Inspector-ValidatorsEditor
        label: formEditor.elements.MultiSelectionMixin.editor.validators.label
        selectOptions:
          10:
            value: ''
            label: formEditor.elements.MultiSelectionMixin.editor.validators.EmptyValue.label
          20:
            value: Count
            label: formEditor.elements.MultiSelectionMixin.editor.validators.Count.label
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
    predefinedDefaults:
      properties:
        options: {  }
    propertyCollections:
      validators:
        10:
          identifier: Count
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.MultiSelectionMixin.validators.Count.editor.header.label
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: Integer
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: Integer
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
    label: formEditor.elements.MultiSelect.label
    group: select
    groupSorting: 500
    iconIdentifier: form-multi-select
Copied!

formEditor.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiSelect.formEditor.editors.100
Data type
array/ [FormElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
MultiSelect:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
Copied!

formEditor.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiSelect.formEditor.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
MultiSelect:
  formEditor:
    editors:
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.label.label
        propertyPath: label
Copied!

formEditor.editors.230 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiSelect.formEditor.editors.230
Data type
array/ [TextEditor]
Needed by
Frontend/ Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Date:
  formEditor:
    editors:
      230:
        identifier: elementDescription
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.elementDescription.label
        propertyPath: properties.elementDescription
Copied!

formEditor.editors.250 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiSelect.formEditor.editors.250
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
MultiSelect:
  formEditor:
    editors:
      250:
        identifier: inactiveOption
        templateName: Inspector-TextEditor
        label: formEditor.elements.SelectionMixin.editor.inactiveOption.label
        propertyPath: properties.prependOptionLabel
        description: formEditor.elements.SelectionMixin.editor.inactiveOption.description
        doNotSetIfPropertyValueIsEmpty: true
Copied!

formEditor.editors.300 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiSelect.formEditor.editors.300
Data type
array/ [PropertyGridEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
MultiSelect:
  formEditor:
    editors:
      300:
        identifier: options
        templateName: Inspector-PropertyGridEditor
        label: formEditor.elements.SelectionMixin.editor.options.label
        propertyPath: properties.options
        isSortable: true
        enableAddRow: true
        enableDeleteRow: true
        removeLastAvailableRowFlashMessageTitle: formEditor.elements.SelectionMixin.editor.options.removeLastAvailableRowFlashMessageTitle
        removeLastAvailableRowFlashMessageMessage: formEditor.elements.SelectionMixin.editor.options.removeLastAvailableRowFlashMessageMessage
        multiSelection: true
Copied!

formEditor.editors.700 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiSelect.formEditor.editors.700
Data type
array/ [GridColumnViewPortConfigurationEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
MultiSelect:
  formEditor:
    editors:
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
Copied!

formEditor.editors.800 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiSelect.formEditor.editors.800
Data type
array/ [RequiredValidatorEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
MultiSelect:
  formEditor:
    editors:
      800:
        identifier: requiredValidator
        templateName: Inspector-RequiredValidatorEditor
        label: formEditor.elements.FormElement.editor.requiredValidator.label
        validatorIdentifier: NotEmpty
        propertyPath: properties.fluidAdditionalAttributes.required
        propertyValue: required
Copied!

formEditor.editors.900 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiSelect.formEditor.editors.900
Data type
array/ [ValidatorsEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
MultiSelect:
  formEditor:
    editors:
      900:
        identifier: validators
        templateName: Inspector-ValidatorsEditor
        label: formEditor.elements.MultiSelectionMixin.editor.validators.label
        selectOptions:
          10:
            value: ''
            label: formEditor.elements.MultiSelectionMixin.editor.validators.EmptyValue.label
          20:
            value: Count
            label: formEditor.elements.MultiSelectionMixin.editor.validators.Count.label
Copied!

formEditor.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiSelect.formEditor.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
MultiSelect:
  formEditor:
    editors:
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
Copied!

formEditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiSelect.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
MultiSelect:
  formEditor:
    predefinedDefaults:
      properties:
        options: {  }
Copied!
Description
Defines predefined defaults for form element properties which are prefilled, if the form element is added to a form.

formEditor.propertyCollections.validators.10 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiSelect.formEditor.propertyCollections.validators.10
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
MultiSelect:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: Count
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.MultiSelectionMixin.validators.Count.editor.header.label
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: Integer
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: Integer
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.10.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiSelect.formEditor.propertyCollections.validators.10.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
MultiSelect:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: Count
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.10.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiSelect.formEditor.propertyCollections.validators.10.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
MultiSelect:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: Count
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.MultiSelectionMixin.validators.Count.editor.header.label
Copied!

formEditor.propertyCollections.validators.10.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiSelect.formEditor.propertyCollections.validators.10.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
MultiSelect:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: Count
          editors:
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: Integer
Copied!

formEditor.propertyCollections.validators.10.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiSelect.formEditor.propertyCollections.validators.10.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
MultiSelect:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: Count
          editors:
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: Integer
Copied!

formEditor.propertyCollections.validators.10.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiSelect.formEditor.propertyCollections.validators.10.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
MultiSelect:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: Count
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiSelect.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
MultiSelect:
  formEditor:
    label: formEditor.elements.MultiSelect.label
Copied!
Good to know
Description
This label will be shown within the "new element" Modal.

formEditor.group 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiSelect.formEditor.group
Data type
string
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
MultiSelect:
  formEditor:
    group: select
Copied!
Default value
Depends (see concrete element configuration)
Description
Define within which group within the form editor "new Element" modal the form element should be shown. The group value must be equal to an array key within formElementGroups.

formEditor.groupSorting 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiSelect.formEditor.groupSorting
Data type
int
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
MultiSelect:
  formEditor:
    groupSorting: 500
Copied!
Description
The position within the formEditor.group for this form element.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.MultiSelect.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
MultiSelect:
  formEditor:
    iconIdentifier: form-multi-select
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within

[Number] 

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Number.implementationClassName
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
No
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
Number:
  implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
Copied!
Description
Classname which implements the form element.

properties.containerClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Number.properties.containerClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Number:
  properties:
    containerClassAttribute: input
    elementClassAttribute: ''
    elementErrorClassAttribute: error
Copied!
Description
A CSS class which is typically wrapped around the form elements.

properties.elementClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Number.properties.elementClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Number:
  properties:
    containerClassAttribute: input
    elementClassAttribute: ''
    elementErrorClassAttribute: error
Copied!
Description
A CSS class written to the form element.

properties.elementDescription 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Number.properties.elementDescription
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
Form editor can write this property into the form definition (for prototype 'standard')
Yes
Mandatory
No
Default value (for prototype 'standard')
Undefined
Good to know
Description
Set a description of the form element. By default, it is displayed below the form element.

properties.elementErrorClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Number.properties.elementErrorClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Number:
  properties:
    containerClassAttribute: input
    elementClassAttribute: ''
    elementErrorClassAttribute: error
Copied!
Description
A CSS class which is written to the form element if validation errors exists.

validators 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Number.validators
Data type
array
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
Yes
Mandatory
Yes
Default value (for prototype 'standard')
Number:
  validators:
    -
      identifier: Number
Copied!
Description
Predefined validators.

formEditor 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Number.formEditor
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Number:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.label.label
        propertyPath: label
      230:
        identifier: elementDescription
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.elementDescription.label
        propertyPath: properties.elementDescription
      400:
        identifier: placeholder
        templateName: Inspector-TextEditor
        label: formEditor.elements.TextMixin.editor.placeholder.label
        propertyPath: properties.fluidAdditionalAttributes.placeholder
        doNotSetIfPropertyValueIsEmpty: true
      500:
        identifier: defaultValue
        templateName: Inspector-TextEditor
        label: formEditor.elements.TextMixin.editor.defaultValue.label
        propertyPath: defaultValue
        propertyValidators:
          10: IntegerOrEmpty
      550:
        identifier: step
        templateName: Inspector-TextEditor
        label: formEditor.elements.TextMixin.editor.step.label
        propertyPath: properties.fluidAdditionalAttributes.step
        propertyValidators:
          10: Integer
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
      800:
        identifier: requiredValidator
        templateName: Inspector-RequiredValidatorEditor
        label: formEditor.elements.FormElement.editor.requiredValidator.label
        validatorIdentifier: NotEmpty
        propertyPath: properties.fluidAdditionalAttributes.required
        propertyValue: required
      900:
        identifier: validators
        templateName: Inspector-ValidatorsEditor
        label: formEditor.elements.TextMixin.editor.validators.label
        selectOptions:
          10:
            value: ''
            label: formEditor.elements.TextMixin.editor.validators.EmptyValue.label
          60:
            value: Number
            label: formEditor.elements.Number.editor.validators.Number.label
          80:
            value: NumberRange
            label: formEditor.elements.TextMixin.editor.validators.NumberRange.label
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
    predefinedDefaults:
      defaultValue: ''
      properties:
        fluidAdditionalAttributes:
          step: 1
      validators:
        -
          identifier: Number
    propertyCollections:
      validators:
        60:
          identifier: Number
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Number.editor.header.label
        70:
          identifier: NumberRange
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.NumberRange.editor.header.label
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.min
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.max
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
    label: formEditor.elements.Number.label
    group: html5
    groupSorting: 400
    iconIdentifier: form-number
Copied!

formEditor.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Number.formEditor.editors.100
Data type
array/ [FormElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Number:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
Copied!

formEditor.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Number.formEditor.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Number:
  formEditor:
    editors:
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.label.label
        propertyPath: label
Copied!

formEditor.editors.230 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Number.formEditor.editors.230
Data type
array/ [TextEditor]
Needed by
Frontend/ Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Date:
  formEditor:
    editors:
      230:
        identifier: elementDescription
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.elementDescription.label
        propertyPath: properties.elementDescription
Copied!

formEditor.editors.400 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Number.formEditor.editors.400
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Number:
  formEditor:
    editors:
      400:
        identifier: placeholder
        templateName: Inspector-TextEditor
        label: formEditor.elements.TextMixin.editor.placeholder.label
        propertyPath: properties.fluidAdditionalAttributes.placeholder
        compatibilityPropertyPath: properties.placeholder
        doNotSetIfPropertyValueIsEmpty: true
Copied!

formEditor.editors.500 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Number.formEditor.editors.500
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Number:
  formEditor:
    editors:
      500:
        identifier: defaultValue
        templateName: Inspector-TextEditor
        label: formEditor.elements.TextMixin.editor.defaultValue.label
        propertyPath: defaultValue
Copied!

formEditor.editors.550 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Number.formEditor.editors.550
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Number:
  formEditor:
    editors:
      550:
        identifier: step
        templateName: Inspector-TextEditor
        label: formEditor.elements.TextMixin.editor.step.label
        propertyPath: properties.fluidAdditionalAttributes.step
        propertyValidators:
          10: Integer
Copied!

formEditor.editors.700 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Number.formEditor.editors.700
Data type
array/ [GridColumnViewPortConfigurationEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Number:
  formEditor:
    editors:
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
Copied!

formEditor.editors.800 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Number.formEditor.editors.800
Data type
array/ [RequiredValidatorEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Number:
  formEditor:
    editors:
      800:
        identifier: requiredValidator
        templateName: Inspector-RequiredValidatorEditor
        label: formEditor.elements.FormElement.editor.requiredValidator.label
        validatorIdentifier: NotEmpty
        propertyPath: properties.fluidAdditionalAttributes.required
        propertyValue: required
Copied!

formEditor.editors.900 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Number.formEditor.editors.900
Data type
array/ [ValidatorsEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Number:
  formEditor:
    editors:
      900:
        identifier: validators
        templateName: Inspector-ValidatorsEditor
        label: formEditor.elements.TextMixin.editor.validators.label
        selectOptions:
          10:
            value: ''
            label: formEditor.elements.TextMixin.editor.validators.EmptyValue.label
          60:
            value: Number
            label: formEditor.elements.Number.editor.validators.Number.label
          80:
            value: NumberRange
            label: formEditor.elements.TextMixin.editor.validators.NumberRange.label
Copied!

formEditor.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Number.formEditor.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Number:
  formEditor:
    editors:
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
Copied!

formEditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Number.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Number:
  formEditor:
    predefinedDefaults:
      defaultValue: ''
      properties:
        fluidAdditionalAttributes:
          step: 1
      validators:
        -
          identifier: Number
Copied!
Description
Defines predefined defaults for form element properties which are prefilled, if the form element is added to a form.

formEditor.propertyCollections.validators.60 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Number.formEditor.propertyCollections.validators.60
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Number:
  formEditor:
    propertyCollections:
      validators:
        60:
          identifier: Number
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Number.editor.header.label
Copied!

formEditor.propertyCollections.validators.60.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Number.formEditor.propertyCollections.validators.60.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Number:
  formEditor:
    propertyCollections:
      validators:
        60:
          identifier: Number
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Number.editor.header.label
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.60.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Number.formEditor.propertyCollections.validators.60.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Number:
  formEditor:
    propertyCollections:
      validators:
        60:
          identifier: Number
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Number.editor.header.label
Copied!

formEditor.propertyCollections.validators.70 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Number.formEditor.propertyCollections.validators.70
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Number:
  formEditor:
    propertyCollections:
      validators:
        70:
          identifier: NumberRange
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.NumberRange.editor.header.label
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.min
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.max
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.70.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Number.formEditor.propertyCollections.validators.70.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Number:
  formEditor:
    propertyCollections:
      validators:
        70:
          identifier: NumberRange
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.70.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Number.formEditor.propertyCollections.validators.70.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Number:
  formEditor:
    propertyCollections:
      validators:
        70:
          identifier: NumberRange
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.NumberRange.editor.header.label
Copied!

formEditor.propertyCollections.validators.70.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Number.formEditor.propertyCollections.validators.70.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Number:
  formEditor:
    propertyCollections:
      validators:
        70:
          identifier: NumberRange
          editors:
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.min
Copied!

formEditor.propertyCollections.validators.70.editors.300 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Number.formEditor.propertyCollections.validators.70.editors.300
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Number:
  formEditor:
    propertyCollections:
      validators:
        70:
          identifier: NumberRange
          editors:
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.max
Copied!

formEditor.propertyCollections.validators.70.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Number.formEditor.propertyCollections.validators.70.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Number:
  formEditor:
    propertyCollections:
      validators:
        70:
          identifier: NumberRange
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Number.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Number:
  formEditor:
    label: formEditor.elements.Number.label
Copied!
Good to know
Description
This label will be shown within the "new element" Modal.

formEditor.group 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Number.formEditor.group
Data type
string
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Number:
  formEditor:
    group: html5
Copied!
Description
Define within which group within the form editor "new Element" modal the form element should be shown. The group value must be equal to an array key within formElementGroups.

formEditor.groupSorting 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Number.formEditor.groupSorting
Data type
int
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Number:
  formEditor:
    groupSorting: 400
Copied!
Description
The position within the formEditor.group for this form element.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Number.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Number:
  formEditor:
    iconIdentifier: form-number
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within

[Page] 

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Page.implementationClassName
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
No
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
Page:
  implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\Page
Copied!
Description
Classname which implements the form element.

renderingOptions._isCompositeFormElement 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Page.renderingOptions._isCompositeFormElement
Data type
bool
Needed by
Frontend
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
Page:
  renderingOptions:
    _isTopLevelFormElement: true
    _isCompositeFormElement: true
    nextButtonLabel: 'next Page'
    previousButtonLabel: 'previous Page'
Copied!
Description
Internal control setting to define that the form element contains child form elements.

renderingOptions._isTopLevelFormElement 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Page.renderingOptions._isTopLevelFormElement
Data type
bool
Needed by
Frontend
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
Page:
  renderingOptions:
    _isTopLevelFormElement: true
    _isCompositeFormElement: true
    nextButtonLabel: 'next Page'
    previousButtonLabel: 'previous Page'
Copied!
Description
Internal control setting to define that the form element must not have a parent form element.

renderingOptions.nextButtonLabel 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Page.renderingOptions.nextButtonLabel
Data type
string
Needed by
Frontend
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
Yes
Mandatory
No
Default value (for prototype 'standard')
Page:
  renderingOptions:
    _isTopLevelFormElement: true
    _isCompositeFormElement: false
    nextButtonLabel: 'next Page'
    previousButtonLabel: 'previous Page'
Copied!
Description
The label for the "next page" Button.

renderingOptions.previousButtonLabel 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Page.renderingOptions.previousButtonLabel
Data type
string
Needed by
Frontend
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
Yes
Mandatory
No
Default value (for prototype 'standard')
Page:
  renderingOptions:
    _isTopLevelFormElement: true
    _isCompositeFormElement: false
    nextButtonLabel: 'next Page'
    previousButtonLabel: 'previous Page'
Copied!
Description
The label for the "previous page" Button.

formEditor 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Page.formEditor
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Page:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.Page.editor.label.label
        propertyPath: label
      300:
        identifier: 'previousButtonLabel'
        templateName: 'Inspector-TextEditor'
        label: 'formEditor.elements.Page.editor.previousButtonLabel.label'
        propertyPath: 'renderingOptions.previousButtonLabel'
      400:
        identifier: 'nextButtonLabel'
        templateName: 'Inspector-TextEditor'
        label: 'formEditor.elements.Page.editor.nextButtonLabel.label'
        propertyPath: 'renderingOptions.nextButtonLabel'
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
    predefinedDefaults:
      renderingOptions:
        previousButtonLabel: 'formEditor.elements.Page.editor.previousButtonLabel.value'
        nextButtonLabel: 'formEditor.elements.Page.editor.nextButtonLabel.value'
    label: formEditor.elements.Page.label
    group: page
    groupSorting: 100
    _isTopLevelFormElement: true
    _isCompositeFormElement: true
    iconIdentifier: form-page
Copied!

formEditor.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Page.formEditor.editors.100
Data type
array/ [FormElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Page:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
Copied!

formEditor.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Page.formEditor.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Page:
  formEditor:
    editors:
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.Page.editor.label.label
        propertyPath: label
Copied!

formEditor.editors.300 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Page.formEditor.editors.300
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    editors:
      300:
        identifier: 'previousButtonLabel'
        templateName: 'Inspector-TextEditor'
        label: 'formEditor.elements.Page.editor.previousButtonLabel.label'
        propertyPath: 'renderingOptions.previousButtonLabel'
Copied!

formEditor.editors.400 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Page.formEditor.editors.400
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    editors:
      400:
        identifier: 'nextButtonLabel'
        templateName: 'Inspector-TextEditor'
        label: 'formEditor.elements.Page.editor.nextButtonLabel.label'
        propertyPath: 'renderingOptions.nextButtonLabel'
Copied!

formEditor.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Page.formEditor.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Page:
  formEditor:
    editors:
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
Copied!

formEditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Page.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Page:
  formEditor:
    predefinedDefaults:
      renderingOptions:
        previousButtonLabel: 'formEditor.elements.Page.editor.previousButtonLabel.value'
        nextButtonLabel: 'formEditor.elements.Page.editor.nextButtonLabel.value'
Copied!
Description
Defines predefined defaults for form element properties which are prefilled, if the form element is added to a form.

formEditor._isCompositeFormElement 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Page.formEditor._isCompositeFormElement
Data type
bool
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Page:
  formEditor:
    _isCompositeFormElement: true
Copied!
Description
Internal control setting to define that the form element contains child form elements.

formEditor._isTopLevelFormElement 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Page.formEditor._isTopLevelFormElement
Data type
bool
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Page:
  formEditor:
    _isTopLevelFormElement: true
Copied!
Description
Internal control setting to define that the form element must not have a parent form element.

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Page.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Page:
  formEditor:
    label: formEditor.elements.Page.label
Copied!
Good to know
Description
This label will be shown within the "new element" Modal.

formEditor.group 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Page.formEditor.group
Data type
string
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Page:
  formEditor:
    group: page
Copied!
Default value
Depends (see concrete element configuration)
Description
Define within which group within the form editor "new Element" modal the form element should be shown. The group value must be equal to an array key within formElementGroups.

formEditor.groupSorting 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Page.formEditor.groupSorting
Data type
int
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Page:
  formEditor:
    groupSorting: 100
Copied!
Description
The position within the formEditor.group for this form element.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Page.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Page:
  formEditor:
    iconIdentifier: form-page
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within

[Password] 

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.implementationClassName
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
No
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
Password:
  implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
Copied!
Description
Classname which implements the form element.

properties.containerClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.properties.containerClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Password:
  properties:
    containerClassAttribute: input
    elementClassAttribute: ''
    elementErrorClassAttribute: error
Copied!
Description
A CSS class which is typically wrapped around the form elements.

properties.elementClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.properties.elementClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Password:
  properties:
    containerClassAttribute: input
    elementClassAttribute: ''
    elementErrorClassAttribute: error
Copied!
Description
A CSS class written to the form element.

properties.elementDescription 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.properties.elementDescription
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
Form editor can write this property into the form definition (for prototype 'standard')
Yes
Mandatory
No
Default value (for prototype 'standard')
Undefined
Good to know
Description
Set a description of the form element. By default, it is displayed below the form element.

properties.elementErrorClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.properties.elementErrorClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Password:
  properties:
    containerClassAttribute: input
    elementClassAttribute: ''
    elementErrorClassAttribute: error
Copied!
Description
A CSS class which is written to the form element if validation errors exists.

formEditor 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Password:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.label.label
        propertyPath: label
      230:
         identifier: elementDescription
         templateName: Inspector-TextEditor
         label: formEditor.elements.FormElement.editor.elementDescription.label
         propertyPath: properties.elementDescription
      400:
        identifier: placeholder
        templateName: Inspector-TextEditor
        label: formEditor.elements.TextMixin.editor.placeholder.label
        propertyPath: properties.fluidAdditionalAttributes.placeholder
        compatibilityPropertyPath: properties.placeholder
        doNotSetIfPropertyValueIsEmpty: true
      500:
        identifier: defaultValue
        templateName: Inspector-TextEditor
        label: formEditor.elements.TextMixin.editor.defaultValue.label
        propertyPath: defaultValue
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
      800:
        identifier: requiredValidator
        templateName: Inspector-RequiredValidatorEditor
        label: formEditor.elements.FormElement.editor.requiredValidator.label
        validatorIdentifier: NotEmpty
        propertyPath: properties.fluidAdditionalAttributes.required
        propertyValue: required
      900:
        identifier: validators
        templateName: Inspector-ValidatorsEditor
        label: formEditor.elements.TextMixin.editor.validators.label
        selectOptions:
          10:
            value: ''
            label: formEditor.elements.TextMixin.editor.validators.EmptyValue.label
          20:
            value: Alphanumeric
            label: formEditor.elements.TextMixin.editor.validators.Alphanumeric.label
          40:
            value: StringLength
            label: formEditor.elements.TextMixin.editor.validators.StringLength.label
          50:
            value: EmailAddress
            label: formEditor.elements.TextMixin.editor.validators.EmailAddress.label
          60:
            value: Integer
            label: formEditor.elements.TextMixin.editor.validators.Integer.label
          70:
            value: Float
            label: formEditor.elements.TextMixin.editor.validators.Float.label
          80:
            value: NumberRange
            label: formEditor.elements.TextMixin.editor.validators.NumberRange.label
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
    predefinedDefaults:
      defaultValue: ''
    propertyCollections:
      validators:
        10:
          identifier: Alphanumeric
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Alphanumeric.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
        20:
          identifier: Text
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Text.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
        30:
          identifier: StringLength
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.StringLength.editor.header.label
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.minlength
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.maxlength
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
        40:
          identifier: EmailAddress
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.EmailAddress.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
        50:
          identifier: Integer
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Integer.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
        60:
          identifier: Float
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Float.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
        70:
          identifier: NumberRange
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.NumberRange.editor.header.label
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.min
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.max
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
        80:
          identifier: RegularExpression
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.header.label
            200:
              identifier: regex
              templateName: Inspector-TextEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.label
              description: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.description
              propertyPath: options.regularExpression
              propertyValidators:
                10: NotEmpty
                20: RegularExpressionPattern
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
    label: formEditor.elements.Password.label
    group: input
    groupSorting: 300
    iconIdentifier: form-password
Copied!

formEditor.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.editors.100
Data type
array/ [FormElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Password:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
Copied!

formEditor.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Password:
  formEditor:
    editors:
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.label.label
        propertyPath: label
Copied!

formEditor.editors.230 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.editors.230
Data type
array/ [TextEditor]
Needed by
Frontend/ Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Date:
  formEditor:
    editors:
      230:
        identifier: elementDescription
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.elementDescription.label
        propertyPath: properties.elementDescription
Copied!

formEditor.editors.400 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.editors.400
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Password:
  formEditor:
    editors:
      400:
        identifier: placeholder
        templateName: Inspector-TextEditor
        label: formEditor.elements.TextMixin.editor.placeholder.label
        propertyPath: properties.fluidAdditionalAttributes.placeholder
        compatibilityPropertyPath: properties.placeholder
        doNotSetIfPropertyValueIsEmpty: true
Copied!

formEditor.editors.500 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.editors.500
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Password:
  formEditor:
    editors:
      500:
        identifier: defaultValue
        templateName: Inspector-TextEditor
        label: formEditor.elements.TextMixin.editor.defaultValue.label
        propertyPath: defaultValue
Copied!

formEditor.editors.700 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.editors.700
Data type
array/ [GridColumnViewPortConfigurationEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Password:
  formEditor:
    editors:
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
Copied!

formEditor.editors.800 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.editors.800
Data type
array/ [RequiredValidatorEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Password:
  formEditor:
    editors:
      800:
        identifier: requiredValidator
        templateName: Inspector-RequiredValidatorEditor
        label: formEditor.elements.FormElement.editor.requiredValidator.label
        validatorIdentifier: NotEmpty
        propertyPath: properties.fluidAdditionalAttributes.required
        propertyValue: required
Copied!

formEditor.editors.900 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.editors.900
Data type
array/ [ValidatorsEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Password:
  formEditor:
    editors:
      900:
        identifier: validators
        templateName: Inspector-ValidatorsEditor
        label: formEditor.elements.TextMixin.editor.validators.label
        selectOptions:
          10:
            value: ''
            label: formEditor.elements.TextMixin.editor.validators.EmptyValue.label
          20:
            value: Alphanumeric
            label: formEditor.elements.TextMixin.editor.validators.Alphanumeric.label
          40:
            value: StringLength
            label: formEditor.elements.TextMixin.editor.validators.StringLength.label
          50:
            value: EmailAddress
            label: formEditor.elements.TextMixin.editor.validators.EmailAddress.label
          60:
            value: Integer
            label: formEditor.elements.TextMixin.editor.validators.Integer.label
          70:
            value: Float
            label: formEditor.elements.TextMixin.editor.validators.Float.label
          80:
            value: NumberRange
            label: formEditor.elements.TextMixin.editor.validators.NumberRange.label
Copied!

formEditor.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Password:
  formEditor:
    editors:
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
Copied!

formEditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Password:
  formEditor:
    predefinedDefaults:
      defaultValue: ''
Copied!
Description
Defines predefined defaults for form element properties which are prefilled, if the form element is added to a form.

formEditor.propertyCollections.validators.10 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.propertyCollections.validators.10
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Password:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: Alphanumeric
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Alphanumeric.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.10.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.propertyCollections.validators.10.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Password:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: Alphanumeric
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.10.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.propertyCollections.validators.10.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Password:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: Alphanumeric
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Alphanumeric.editor.header.label
Copied!

formEditor.propertyCollections.validators.10.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.propertyCollections.validators.10.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Password:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: Alphanumeric
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.20 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.propertyCollections.validators.20
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Password:
  formEditor:
    propertyCollections:
      validators:
        20:
          identifier: Text
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Text.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.20.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.propertyCollections.validators.20.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Password:
  formEditor:
    propertyCollections:
      validators:
        20:
          identifier: Text
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.20.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.propertyCollections.validators.20.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Password:
  formEditor:
    propertyCollections:
      validators:
        20:
          identifier: Text
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Text.editor.header.label
Copied!

formEditor.propertyCollections.validators.20.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.propertyCollections.validators.20.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Password:
  formEditor:
    propertyCollections:
      validators:
        20:
          identifier: Text
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.30 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.propertyCollections.validators.30
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Password:
  formEditor:
    propertyCollections:
      validators:
        30:
          identifier: StringLength
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.StringLength.editor.header.label
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.minlength
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.maxlength
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.30.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.propertyCollections.validators.30.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Password:
  formEditor:
    propertyCollections:
      validators:
        30:
          identifier: StringLength
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.30.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.propertyCollections.validators.30.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Password:
  formEditor:
    propertyCollections:
      validators:
        30:
          identifier: StringLength
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.StringLength.editor.header.label
Copied!

formEditor.propertyCollections.validators.30.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.propertyCollections.validators.30.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Password:
  formEditor:
    propertyCollections:
      validators:
        30:
          identifier: StringLength
          editors:
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.minlength
Copied!

formEditor.propertyCollections.validators.30.editors.300 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.propertyCollections.validators.30.editors.300
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Password:
  formEditor:
    propertyCollections:
      validators:
        30:
          identifier: StringLength
          editors:
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.maxlength
Copied!

formEditor.propertyCollections.validators.30.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.propertyCollections.validators.30.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Password:
  formEditor:
    propertyCollections:
      validators:
        30:
          identifier: StringLength
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.40 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.propertyCollections.validators.40
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Password:
  formEditor:
    propertyCollections:
      validators:
        40:
          identifier: EmailAddress
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.EmailAddress.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.40.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.propertyCollections.validators.40.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Password:
  formEditor:
    propertyCollections:
      validators:
        40:
          identifier: EmailAddress
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.40.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.propertyCollections.validators.40.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Password:
  formEditor:
    propertyCollections:
      validators:
        40:
          identifier: EmailAddress
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.EmailAddress.editor.header.label
Copied!

formEditor.propertyCollections.validators.40.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.propertyCollections.validators.40.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Password:
  formEditor:
    propertyCollections:
      validators:
        40:
          identifier: EmailAddress
          editors:
            100:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.50 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.propertyCollections.validators.50
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Password:
  formEditor:
    propertyCollections:
      validators:
        50:
          identifier: Integer
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Integer.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.50.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.propertyCollections.validators.50.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Password:
  formEditor:
    propertyCollections:
      validators:
        50:
          identifier: Integer
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.50.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.propertyCollections.validators.50.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Password:
  formEditor:
    propertyCollections:
      validators:
        50:
          identifier: Integer
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Integer.editor.header.label
Copied!

formEditor.propertyCollections.validators.50.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.propertyCollections.validators.50.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Password:
  formEditor:
    propertyCollections:
      validators:
        50:
          identifier: Integer
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.60 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.propertyCollections.validators.60
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Password:
  formEditor:
    propertyCollections:
      validators:
        60:
          identifier: Float
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Float.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.60.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.propertyCollections.validators.60.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Password:
  formEditor:
    propertyCollections:
      validators:
        60:
          identifier: Float
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.60.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.propertyCollections.validators.60.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Password:
  formEditor:
    propertyCollections:
      validators:
        60:
          identifier: Float
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Float.editor.header.label
Copied!

formEditor.propertyCollections.validators.60.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.propertyCollections.validators.60.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Password:
  formEditor:
    propertyCollections:
      validators:
        60:
          identifier: Float
          editors:
            100:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.70 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.propertyCollections.validators.70
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Password:
  formEditor:
    propertyCollections:
      validators:
        70:
          identifier: NumberRange
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.NumberRange.editor.header.label
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.min
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.max
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.70.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.propertyCollections.validators.70.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Password:
  formEditor:
    propertyCollections:
      validators:
        70:
          identifier: NumberRange
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.70.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.propertyCollections.validators.70.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Password:
  formEditor:
    propertyCollections:
      validators:
        70:
          identifier: NumberRange
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.NumberRange.editor.header.label
Copied!

formEditor.propertyCollections.validators.70.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.propertyCollections.validators.70.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Password:
  formEditor:
    propertyCollections:
      validators:
        70:
          identifier: NumberRange
          editors:
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.min
Copied!

formEditor.propertyCollections.validators.70.editors.300 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.propertyCollections.validators.70.editors.300
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Password:
  formEditor:
    propertyCollections:
      validators:
        70:
          identifier: NumberRange
          editors:
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.max
Copied!

formEditor.propertyCollections.validators.70.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.propertyCollections.validators.70.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Password:
  formEditor:
    propertyCollections:
      validators:
        70:
          identifier: NumberRange
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.80 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.propertyCollections.validators.80
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Password:
  formEditor:
    propertyCollections:
      validators:
        80:
          identifier: RegularExpression
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.header.label
            200:
              identifier: regex
              templateName: Inspector-TextEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.label
              description: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.description
              propertyPath: options.regularExpression
              propertyValidators:
                10: NotEmpty
                20: RegularExpressionPattern
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.80.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.propertyCollections.validators.80.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Password:
  formEditor:
    propertyCollections:
      validators:
        80:
          identifier: RegularExpression
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.80.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.propertyCollections.validators.80.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Password:
  formEditor:
    propertyCollections:
      validators:
        80:
          identifier: RegularExpression
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.header.label
Copied!

formEditor.propertyCollections.validators.80.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.propertyCollections.validators.80.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Password:
  formEditor:
    propertyCollections:
      validators:
        80:
          identifier: RegularExpression
          editors:
            200:
              identifier: regex
              templateName: Inspector-TextEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.label
              description: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.description
              propertyPath: options.regularExpression
              propertyValidators:
                10: NotEmpty
                20: RegularExpressionPattern
Copied!

formEditor.propertyCollections.validators.80.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.propertyCollections.validators.80.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Password:
  formEditor:
    propertyCollections:
      validators:
        80:
          identifier: RegularExpression
          editors:
            100:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Password:
  formEditor:
    label: formEditor.elements.Password.label
Copied!
Good to know
Description
This label will be shown within the "new element" Modal.

formEditor.group 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.group
Data type
string
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Password:
  formEditor:
    group: input
Copied!
Default value
Depends (see concrete element configuration)
Description
Define within which group within the form editor "new Element" modal the form element should be shown. The group value must be equal to an array key within formElementGroups.

formEditor.groupSorting 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.groupSorting
Data type
int
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Password:
  formEditor:
    groupSorting: 300
Copied!
Description
The position within the formEditor.group for this form element.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Password.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Password:
  formEditor:
    iconIdentifier: form-password
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within

[RadioButton] 

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.RadioButton.implementationClassName
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
No
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
RadioButton:
  implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
Copied!
Description
Classname which implements the form element.

properties.containerClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.RadioButton.properties.containerClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
RadioButton:
  properties:
    containerClassAttribute: input
    elementClassAttribute: xlarge
    elementErrorClassAttribute: error
Copied!
Description
A CSS class which is typically wrapped around the form elements.

properties.elementClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.RadioButton.properties.elementClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
RadioButton:
  properties:
    containerClassAttribute: input
    elementClassAttribute: xlarge
    elementErrorClassAttribute: error
Copied!
Description
A CSS class written to the form element.

properties.elementDescription 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.RadioButton.properties.elementDescription
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
Form editor can write this property into the form definition (for prototype 'standard')
Yes
Mandatory
No
Default value (for prototype 'standard')
Undefined
Good to know
Description
Set a description of the form element. By default, it is displayed below the form element.

properties.elementErrorClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.RadioButton.properties.elementErrorClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
RadioButton:
  properties:
    containerClassAttribute: input
    elementClassAttribute: xlarge
    elementErrorClassAttribute: error
Copied!
Description
A CSS class which is written to the form element if validation errors exists.

formEditor 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.RadioButton.formEditor
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
RadioButton:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.label.label
        propertyPath: label
      230:
         identifier: elementDescription
         templateName: Inspector-TextEditor
         label: formEditor.elements.FormElement.editor.elementDescription.label
         propertyPath: properties.elementDescription
      300:
        identifier: options
        templateName: Inspector-PropertyGridEditor
        label: formEditor.elements.SelectionMixin.editor.options.label
        propertyPath: properties.options
        isSortable: true
        enableAddRow: true
        enableDeleteRow: true
        removeLastAvailableRowFlashMessageTitle: formEditor.elements.SelectionMixin.editor.options.removeLastAvailableRowFlashMessageTitle
        removeLastAvailableRowFlashMessageMessage: formEditor.elements.SelectionMixin.editor.options.removeLastAvailableRowFlashMessageMessage
        multiSelection: false
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
      800:
        identifier: requiredValidator
        templateName: Inspector-RequiredValidatorEditor
        label: formEditor.elements.FormElement.editor.requiredValidator.label
        validatorIdentifier: NotEmpty
        propertyPath: properties.fluidAdditionalAttributes.required
        propertyValue: required
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
    predefinedDefaults:
      properties:
        options: {  }
    label: formEditor.elements.RadioButton.label
    group: select
    groupSorting: 300
    iconIdentifier: form-radio-button
Copied!

formEditor.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.RadioButton.formEditor.editors.100
Data type
array/ [FormElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
RadioButton:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
Copied!

formEditor.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.RadioButton.formEditor.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
RadioButton:
  formEditor:
    editors:
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.label.label
        propertyPath: label
Copied!

formEditor.editors.230 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.RadioButton.formEditor.editors.230
Data type
array/ [TextEditor]
Needed by
Frontend/ Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Date:
  formEditor:
    editors:
      230:
        identifier: elementDescription
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.elementDescription.label
        propertyPath: properties.elementDescription
Copied!

formEditor.editors.300 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.RadioButton.formEditor.editors.300
Data type
array/ [PropertyGridEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
RadioButton:
  formEditor:
    editors:
      300:
        identifier: options
        templateName: Inspector-PropertyGridEditor
        label: formEditor.elements.SelectionMixin.editor.options.label
        propertyPath: properties.options
        isSortable: true
        enableAddRow: true
        enableDeleteRow: true
        removeLastAvailableRowFlashMessageTitle: formEditor.elements.SelectionMixin.editor.options.removeLastAvailableRowFlashMessageTitle
        removeLastAvailableRowFlashMessageMessage: formEditor.elements.SelectionMixin.editor.options.removeLastAvailableRowFlashMessageMessage
        multiSelection: false
Copied!

formEditor.editors.700 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.RadioButton.formEditor.editors.700
Data type
array/ [GridColumnViewPortConfigurationEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
RadioButton:
  formEditor:
    editors:
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
Copied!

formEditor.editors.800 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.RadioButton.formEditor.editors.800
Data type
array/ [RequiredValidatorEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
RadioButton:
  formEditor:
    editors:
      800:
        identifier: requiredValidator
        templateName: Inspector-RequiredValidatorEditor
        label: formEditor.elements.FormElement.editor.requiredValidator.label
        validatorIdentifier: NotEmpty
        propertyPath: properties.fluidAdditionalAttributes.required
        propertyValue: required
Copied!

formEditor.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.RadioButton.formEditor.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
RadioButton:
  formEditor:
    editors:
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
Copied!

formEditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.RadioButton.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
RadioButton:
  formEditor:
    predefinedDefaults:
      properties:
        options: {  }
Copied!
Description
Defines predefined defaults for form element properties which are prefilled, if the form element is added to a form.

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.RadioButton.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
RadioButton:
  formEditor:
    label: formEditor.elements.RadioButton.label
Copied!
Good to know
Description
This label will be shown within the "new element" Modal.

formEditor.group 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.RadioButton.formEditor.group
Data type
string
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
RadioButton:
  formEditor:
    group: select
Copied!
Default value
Depends (see concrete element configuration)
Description
Define within which group within the form editor "new Element" modal the form element should be shown. The group value must be equal to an array key within formElementGroups.

formEditor.groupSorting 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.RadioButton.formEditor.groupSorting
Data type
int
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
RadioButton:
  formEditor:
    groupSorting: 300
Copied!
Description
The position within the formEditor.group for this form element.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.RadioButton.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
RadioButton:
  formEditor:
    iconIdentifier: form-radio-button
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within

[SingleSelect] 

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SingleSelect.implementationClassName
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
No
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
SingleSelect:
  implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
Copied!
Description
Classname which implements the form element.

properties.containerClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SingleSelect.properties.containerClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
SingleSelect:
  properties:
    containerClassAttribute: input
    elementClassAttribute: ''
    elementErrorClassAttribute: error
Copied!
Description
A CSS class which is typically wrapped around the form elements.

properties.elementClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SingleSelect.properties.elementClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
SingleSelect:
  properties:
    containerClassAttribute: input
    elementClassAttribute: ''
    elementErrorClassAttribute: error
Copied!
Description
A CSS class written to the form element.

properties.elementDescription 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SingleSelect.properties.elementDescription
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
Form editor can write this property into the form definition (for prototype 'standard')
Yes
Mandatory
No
Default value (for prototype 'standard')
Undefined
Good to know
Description
Set a description of the form element. By default, it is displayed below the form element.

properties.elementErrorClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SingleSelect.properties.elementErrorClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
SingleSelect:
  properties:
    containerClassAttribute: input
    elementClassAttribute: ''
    elementErrorClassAttribute: error
Copied!
Description
A CSS class which is written to the form element if validation errors exists.

properties.prependOptionLabel 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SingleSelect.properties.prependOptionLabel
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
Yes
Mandatory
No
Default value (for prototype 'standard')
undefined
Description
If set, this label will be shown as first select-option.

properties.prependOptionValue 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SingleSelect.properties.prependOptionValue
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
undefined
Description
If set, this value will be set for the first select-option.

formEditor 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SingleSelect.formEditor
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
SingleSelect:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.label.label
        propertyPath: label
      230:
         identifier: elementDescription
         templateName: Inspector-TextEditor
         label: formEditor.elements.FormElement.editor.elementDescription.label
         propertyPath: properties.elementDescription
      250:
        identifier: inactiveOption
        templateName: Inspector-TextEditor
        label: formEditor.elements.SelectionMixin.editor.inactiveOption.label
        propertyPath: properties.prependOptionLabel
        description: formEditor.elements.SelectionMixin.editor.inactiveOption.description
        doNotSetIfPropertyValueIsEmpty: true
      300:
        identifier: options
        templateName: Inspector-PropertyGridEditor
        label: formEditor.elements.SelectionMixin.editor.options.label
        propertyPath: properties.options
        isSortable: true
        enableAddRow: true
        enableDeleteRow: true
        removeLastAvailableRowFlashMessageTitle: formEditor.elements.SelectionMixin.editor.options.removeLastAvailableRowFlashMessageTitle
        removeLastAvailableRowFlashMessageMessage: formEditor.elements.SelectionMixin.editor.options.removeLastAvailableRowFlashMessageMessage
        multiSelection: false
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
      800:
        identifier: requiredValidator
        templateName: Inspector-RequiredValidatorEditor
        label: formEditor.elements.FormElement.editor.requiredValidator.label
        validatorIdentifier: NotEmpty
        propertyPath: properties.fluidAdditionalAttributes.required
        propertyValue: required
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
    predefinedDefaults:
      properties:
        options: {  }
    label: formEditor.elements.SingleSelect.label
    group: select
    groupSorting: 200
    iconIdentifier: form-single-select
Copied!

formEditor.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SingleSelect.formEditor.editors.100
Data type
array/ [FormElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
SingleSelect:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
Copied!

formEditor.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SingleSelect.formEditor.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
SingleSelect:
  formEditor:
    editors:
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.label.label
        propertyPath: label
Copied!

formEditor.editors.230 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SingleSelect.formEditor.editors.230
Data type
array/ [TextEditor]
Needed by
Frontend/ Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Date:
  formEditor:
    editors:
      230:
        identifier: elementDescription
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.elementDescription.label
        propertyPath: properties.elementDescription
Copied!

formEditor.editors.250 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SingleSelect.formEditor.editors.250
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
SingleSelect:
  formEditor:
    editors:
      250:
        identifier: inactiveOption
        templateName: Inspector-TextEditor
        label: formEditor.elements.SelectionMixin.editor.inactiveOption.label
        propertyPath: properties.prependOptionLabel
        description: formEditor.elements.SelectionMixin.editor.inactiveOption.description
        doNotSetIfPropertyValueIsEmpty: true
Copied!

formEditor.editors.300 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SingleSelect.formEditor.editors.300
Data type
array/ [PropertyGridEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
SingleSelect:
  formEditor:
    editors:
      300:
        identifier: options
        templateName: Inspector-PropertyGridEditor
        label: formEditor.elements.SelectionMixin.editor.options.label
        propertyPath: properties.options
        isSortable: true
        enableAddRow: true
        enableDeleteRow: true
        removeLastAvailableRowFlashMessageTitle: formEditor.elements.SelectionMixin.editor.options.removeLastAvailableRowFlashMessageTitle
        removeLastAvailableRowFlashMessageMessage: formEditor.elements.SelectionMixin.editor.options.removeLastAvailableRowFlashMessageMessage
        multiSelection: false
Copied!

formEditor.editors.700 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SingleSelect.formEditor.editors.700
Data type
array/ [GridColumnViewPortConfigurationEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
SingleSelect:
  formEditor:
    editors:
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
Copied!

formEditor.editors.800 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SingleSelect.formEditor.editors.800
Data type
array/ [RequiredValidatorEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
SingleSelect:
  formEditor:
    editors:
      800:
        identifier: requiredValidator
        templateName: Inspector-RequiredValidatorEditor
        label: formEditor.elements.FormElement.editor.requiredValidator.label
        validatorIdentifier: NotEmpty
        propertyPath: properties.fluidAdditionalAttributes.required
        propertyValue: required
Copied!

formEditor.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SingleSelect.formEditor.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
SingleSelect:
  formEditor:
    editors:
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
Copied!

formEditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SingleSelect.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
SingleSelect:
  formEditor:
    predefinedDefaults:
      properties:
        options: {  }
Copied!
Description
Defines predefined defaults for form element properties which are prefilled, if the form element is added to a form.

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SingleSelect.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
SingleSelect:
  formEditor:
    label: formEditor.elements.SingleSelect.label
Copied!
Good to know
Description
This label will be shown within the "new element" Modal.

formEditor.group 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SingleSelect.formEditor.group
Data type
string
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
SingleSelect:
  formEditor:
    group: select
Copied!
Default value
Depends (see concrete element configuration)
Description
Define within which group within the form editor "new Element" modal the form element should be shown. The group value must be equal to an array key within formElementGroups.

formEditor.groupSorting 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SingleSelect.formEditor.groupSorting
Data type
int
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
SingleSelect:
  formEditor:
    groupSorting: 200
Copied!
Description
The position within the formEditor.group for this form element.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SingleSelect.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
SingleSelect:
  formEditor:
    iconIdentifier: form-single-select
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within

[StaticText] 

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.StaticText.implementationClassName
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
No
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
StaticText:
  implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
Copied!
Description
Classname which implements the form element.

properties.text 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.StaticText.properties.text
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
Yes
Mandatory
No
Default value (for prototype 'standard')
StaticText:
  properties:
    text: ''
Copied!
Description
The text to display.

formEditor 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.StaticText.formEditor
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
StaticText:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.ReadOnlyFormElement.editor.label.label
        propertyPath: label
      300:
        identifier: staticText
        templateName: Inspector-TextareaEditor
        label: formEditor.elements.StaticText.editor.staticText.label
        propertyPath: properties.text
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
    predefinedDefaults:
      properties:
        text: ''
    label: formEditor.elements.StaticText.label
    group: custom
    groupSorting: 600
    iconIdentifier: form-static-text
Copied!

formEditor.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.StaticText.formEditor.editors.100
Data type
array/ [FormElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
StaticText:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
Copied!

formEditor.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.StaticText.formEditor.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
StaticText:
  formEditor:
    editors:
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.ReadOnlyFormElement.editor.label.label
        propertyPath: label
Copied!

formEditor.editors.300 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.StaticText.formEditor.editors.300
Data type
array/ [TextareaEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
StaticText:
  formEditor:
    editors:
      300:
        identifier: staticText
        templateName: Inspector-TextareaEditor
        label: formEditor.elements.StaticText.editor.staticText.label
        propertyPath: properties.text
Copied!

formEditor.editors.700 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.StaticText.formEditor.editors.700
Data type
array/ [GridColumnViewPortConfigurationEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
StaticText:
  formEditor:
    editors:
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
Copied!

formEditor.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.StaticText.formEditor.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
StaticText:
  formEditor:
    editors:
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
Copied!

formEditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.StaticText.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
StaticText:
  formEditor:
    predefinedDefaults:
      properties:
        text: ''
Copied!
Description
Defines predefined defaults for form element properties which are prefilled, if the form element is added to a form.

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.StaticText.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
StaticText:
  formEditor:
    label: formEditor.elements.StaticText.label
Copied!
Good to know
Description
This label will be shown within the "new element" Modal.

formEditor.group 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.StaticText.formEditor.group
Data type
string
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
StaticText:
  formEditor:
    group: custom
Copied!
Default value
Depends (see concrete element configuration)
Description
Define within which group within the form editor "new Element" modal the form element should be shown. The group value must be equal to an array key within formElementGroups.

formEditor.groupSorting 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.StaticText.formEditor.groupSorting
Data type
int
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
StaticText:
  formEditor:
    groupSorting: 600
Copied!
Description
The position within the formEditor.group for this form element.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.StaticText.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
StaticText:
  formEditor:
    iconIdentifier: form-static-text
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within

[SummaryPage] 

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SummaryPage.implementationClassName
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
No
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
SummaryPage:
  implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\Page
Copied!
Description
Classname which implements the form element.

renderingOptions._isCompositeFormElement 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SummaryPage.renderingOptions._isCompositeFormElement
Data type
bool
Needed by
Frontend
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
SummaryPage:
  renderingOptions:
    _isTopLevelFormElement: true
    _isCompositeFormElement: false
    nextButtonLabel: 'next Page'
    previousButtonLabel: 'previous Page'
Copied!
Description
Internal control setting to define that the form element contains child form elements.

renderingOptions._isTopLevelFormElement 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SummaryPage.renderingOptions._isTopLevelFormElement
Data type
bool
Needed by
Frontend
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
SummaryPage:
  renderingOptions:
    _isTopLevelFormElement: true
    _isCompositeFormElement: false
    nextButtonLabel: 'next Page'
    previousButtonLabel: 'previous Page'
Copied!
Description
Internal control setting to define that the form element must not have a parent form element.

renderingOptions.nextButtonLabel 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SummaryPage.renderingOptions.nextButtonLabel
Data type
string
Needed by
Frontend
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
Yes
Mandatory
No
Default value (for prototype 'standard')
SummaryPage:
  renderingOptions:
    _isTopLevelFormElement: true
    _isCompositeFormElement: false
    nextButtonLabel: 'next Page'
    previousButtonLabel: 'previous Page'
Copied!
Description
The label for the "next page" Button.

renderingOptions.previousButtonLabel 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SummaryPage.renderingOptions.previousButtonLabel
Data type
string
Needed by
Frontend
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
Yes
Mandatory
No
Default value (for prototype 'standard')
SummaryPage:
  renderingOptions:
    _isTopLevelFormElement: true
    _isCompositeFormElement: false
    nextButtonLabel: 'next Page'
    previousButtonLabel: 'previous Page'
Copied!
Description
The label for the "previous page" Button.

formEditor 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SummaryPage.formEditor
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
SummaryPage:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.SummaryPage.editor.label.label
        propertyPath: label
      300:
        identifier: 'previousButtonLabel'
        templateName: 'Inspector-TextEditor'
        label: 'formEditor.elements.SummaryPage.editor.previousButtonLabel.label'
        propertyPath: 'renderingOptions.previousButtonLabel'
      400:
        identifier: 'nextButtonLabel'
        templateName: 'Inspector-TextEditor'
        label: 'formEditor.elements.SummaryPage.editor.nextButtonLabel.label'
        propertyPath: 'renderingOptions.nextButtonLabel'
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
    predefinedDefaults:
      renderingOptions:
        previousButtonLabel: 'formEditor.elements.SummaryPage.editor.previousButtonLabel.value'
        nextButtonLabel: 'formEditor.elements.SummaryPage.editor.nextButtonLabel.value'
    label: formEditor.elements.SummaryPage.label
    group: page
    groupSorting: 200
    _isTopLevelFormElement: true
    _isCompositeFormElement: false
    iconIdentifier: form-summary-page
Copied!

formEditor.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SummaryPage.formEditor.editors.100
Data type
array/ [FormElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
SummaryPage:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
Copied!

formEditor.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SummaryPage.formEditor.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
SummaryPage:
  formEditor:
    editors:
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.SummaryPage.editor.label.label
        propertyPath: label
Copied!

formEditor.editors.300 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SummaryPage.formEditor.editors.300
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    editors:
      300:
        identifier: 'previousButtonLabel'
        templateName: 'Inspector-TextEditor'
        label: 'formEditor.elements.SummaryPage.editor.previousButtonLabel.label'
        propertyPath: 'renderingOptions.previousButtonLabel'
Copied!

formEditor.editors.400 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SummaryPage.formEditor.editors.400
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Form:
  formEditor:
    editors:
      400:
        identifier: 'nextButtonLabel'
        templateName: 'Inspector-TextEditor'
        label: 'formEditor.elements.SummaryPage.editor.nextButtonLabel.label'
        propertyPath: 'renderingOptions.nextButtonLabel'
Copied!

formEditor.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SummaryPage.formEditor.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
SummaryPage:
  formEditor:
    editors:
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
Copied!

formEditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SummaryPage.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
SummaryPage:
  formEditor:
    predefinedDefaults:
      renderingOptions:
        previousButtonLabel: 'formEditor.elements.SummaryPage.editor.previousButtonLabel.value'
        nextButtonLabel: 'formEditor.elements.SummaryPage.editor.nextButtonLabel.value'
Copied!
Description
Defines predefined defaults for form element properties which are prefilled, if the form element is added to a form.

formEditor._isCompositeFormElement 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SummaryPage.formEditor._isCompositeFormElement
Data type
bool
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
SummaryPage:
  formEditor:
    _isCompositeFormElement: false
Copied!
Description
Internal control setting to define that the form element contains child form elements.

formEditor._isTopLevelFormElement 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SummaryPage.formEditor._isTopLevelFormElement
Data type
bool
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
SummaryPage:
  formEditor:
    _isTopLevelFormElement: true
Copied!
Description
Internal control setting to define that the form element must not have a parent form element.

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SummaryPage.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
SummaryPage:
  formEditor:
    label: formEditor.elements.SummaryPage.label
Copied!
Good to know
Description
This label will be shown within the "new element" Modal.

formEditor.group 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SummaryPage.formEditor.group
Data type
string
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
SummaryPage:
  formEditor:
    group: page
Copied!
Default value
Depends (see concrete element configuration)
Description
Define within which group within the form editor "new Element" modal the form element should be shown. The group value must be equal to an array key within formElementGroups.

formEditor.groupSorting 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SummaryPage.formEditor.groupSorting
Data type
int
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
SummaryPage:
  formEditor:
    groupSorting: 200
Copied!
Description
The position within the formEditor.group for this form element.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.SummaryPage.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
SummaryPage:
  formEditor:
    iconIdentifier: form-summary-page
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within

[Telephone] 

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Telephone.implementationClassName
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
No
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
Telephone:
  implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
Copied!
Description
Classname which implements the form element.

properties.containerClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Telephone.properties.containerClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Telephone:
  properties:
    containerClassAttribute: input
    elementClassAttribute: ''
    elementErrorClassAttribute: error
Copied!
Description
A CSS class which is typically wrapped around the form elements.

properties.elementClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Telephone.properties.elementClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Telephone:
  properties:
    containerClassAttribute: input
    elementClassAttribute: ''
    elementErrorClassAttribute: error
Copied!
Description
A CSS class written to the form element.

properties.elementDescription 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Telephone.properties.elementDescription
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
Form editor can write this property into the form definition (for prototype 'standard')
Yes
Mandatory
No
Default value (for prototype 'standard')
Undefined
Good to know
Description
Set a description of the form element. By default, it is displayed below the form element.

properties.elementErrorClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Telephone.properties.elementErrorClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Telephone:
  properties:
    containerClassAttribute: input
    elementClassAttribute: ''
    elementErrorClassAttribute: error
Copied!
Description
A CSS class which is written to the form element if validation errors exists.

validators 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Telephone.validators
Data type
array
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
Yes
Mandatory
Yes
Default value (for prototype 'standard')
Telephone:
  validators:
    -
      identifier: RegularExpression
      options:
        regularExpression: '/^.*$/'
Copied!
Description
Predefined validators.

formEditor 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Telephone.formEditor
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Telephone:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.label.label
        propertyPath: label
     230:
        identifier: elementDescription
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.elementDescription.label
        propertyPath: properties.elementDescription
      400:
        identifier: placeholder
        templateName: Inspector-TextEditor
        label: formEditor.elements.TextMixin.editor.placeholder.label
        propertyPath: properties.fluidAdditionalAttributes.placeholder
        doNotSetIfPropertyValueIsEmpty: true
      500:
        identifier: defaultValue
        templateName: Inspector-TextEditor
        label: formEditor.elements.TextMixin.editor.defaultValue.label
        propertyPath: defaultValue
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
      800:
        identifier: requiredValidator
        templateName: Inspector-RequiredValidatorEditor
        label: formEditor.elements.FormElement.editor.requiredValidator.label
        validatorIdentifier: NotEmpty
        propertyPath: properties.fluidAdditionalAttributes.required
        propertyValue: required
      900:
        identifier: validators
        templateName: Inspector-ValidatorsEditor
        label: formEditor.elements.TextMixin.editor.validators.label
        selectOptions:
          10:
            value: ''
            label: formEditor.elements.TextMixin.editor.validators.EmptyValue.label
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
    predefinedDefaults:
      defaultValue: ''
    propertyCollections:
      validators:
        80:
          identifier: RegularExpression
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.header.label
            200:
              identifier: regex
              templateName: Inspector-TextEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.label
              description: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.description
              propertyPath: options.regularExpression
              propertyValidators:
                10: NotEmpty
                20: RegularExpressionPattern
    label: formEditor.elements.Telephone.label
    group: html5
    groupSorting: 200
    iconIdentifier: form-telephone
Copied!

formEditor.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Telephone.formEditor.editors.100
Data type
array/ [FormElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Telephone:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
Copied!

formEditor.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Telephone.formEditor.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Telephone:
  formEditor:
    editors:
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.label.label
        propertyPath: label
Copied!

formEditor.editors.230 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Telephone.formEditor.editors.230
Data type
array/ [TextEditor]
Needed by
Frontend/ Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Date:
  formEditor:
    editors:
      230:
        identifier: elementDescription
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.elementDescription.label
        propertyPath: properties.elementDescription
Copied!

formEditor.editors.400 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Telephone.formEditor.editors.400
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Telephone:
  formEditor:
    editors:
      400:
        identifier: placeholder
        templateName: Inspector-TextEditor
        label: formEditor.elements.TextMixin.editor.placeholder.label
        propertyPath: properties.fluidAdditionalAttributes.placeholder
        compatibilityPropertyPath: properties.placeholder
        doNotSetIfPropertyValueIsEmpty: true
Copied!

formEditor.editors.500 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Telephone.formEditor.editors.500
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Telephone:
  formEditor:
    editors:
      500:
        identifier: defaultValue
        templateName: Inspector-TextEditor
        label: formEditor.elements.TextMixin.editor.defaultValue.label
        propertyPath: defaultValue
Copied!

formEditor.editors.700 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Telephone.formEditor.editors.700
Data type
array/ [GridColumnViewPortConfigurationEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Telephone:
  formEditor:
    editors:
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
Copied!

formEditor.editors.800 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Telephone.formEditor.editors.800
Data type
array/ [RequiredValidatorEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Telephone:
  formEditor:
    editors:
      800:
        identifier: requiredValidator
        templateName: Inspector-RequiredValidatorEditor
        label: formEditor.elements.FormElement.editor.requiredValidator.label
        validatorIdentifier: NotEmpty
        propertyPath: properties.fluidAdditionalAttributes.required
        propertyValue: required
Copied!

formEditor.editors.900 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Telephone.formEditor.editors.900
Data type
array/ [ValidatorsEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Telephone:
  formEditor:
    editors:
      900:
        identifier: validators
        templateName: Inspector-ValidatorsEditor
        label: formEditor.elements.TextMixin.editor.validators.label
        selectOptions:
          10:
            value: ''
            label: formEditor.elements.TextMixin.editor.validators.EmptyValue.label
Copied!

formEditor.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Telephone.formEditor.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Telephone:
  formEditor:
    editors:
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
Copied!

formEditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Telephone.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Telephone:
  formEditor:
    predefinedDefaults:
      defaultValue: ''
Copied!
Description
Defines predefined defaults for form element properties which are prefilled, if the form element is added to a form.

formEditor.propertyCollections.validators.80 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Telephone.formEditor.propertyCollections.validators.80
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Telephone:
  formEditor:
    propertyCollections:
      validators:
        80:
          identifier: RegularExpression
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.header.label
            200:
              identifier: regex
              templateName: Inspector-TextEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.label
              description: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.description
              propertyPath: options.regularExpression
              propertyValidators:
                10: NotEmpty
                20: RegularExpressionPattern
Copied!

formEditor.propertyCollections.validators.80.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Telephone.formEditor.propertyCollections.validators.80.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Telephone:
  formEditor:
    propertyCollections:
      validators:
        80:
          identifier: RegularExpression
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.80.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.80.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        80:
          identifier: RegularExpression
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.header.label
Copied!

formEditor.propertyCollections.validators.80.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Telephone.formEditor.propertyCollections.validators.80.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Telephone:
  formEditor:
    propertyCollections:
      validators:
        80:
          identifier: RegularExpression
          editors:
            200:
              identifier: regex
              templateName: Inspector-TextEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.label
              description: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.description
              propertyPath: options.regularExpression
              propertyValidators:
                10: NotEmpty
                20: RegularExpressionPattern
Copied!

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Telephone.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Telephone:
  formEditor:
    label: formEditor.elements.Telephone.label
Copied!
Good to know
Description
This label will be shown within the "new element" Modal.

formEditor.group 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Telephone.formEditor.group
Data type
string
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Telephone:
  formEditor:
    group: html5
Copied!
Description
Define within which group within the form editor "new Element" modal the form element should be shown. The group value must be equal to an array key within formElementGroups.

formEditor.groupSorting 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Telephone.formEditor.groupSorting
Data type
int
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Telephone:
  formEditor:
    groupSorting: 200
Copied!
Description
The position within the formEditor.group for this form element.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Telephone.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Telephone:
  formEditor:
    iconIdentifier: form-telephone
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within

[Text] 

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.implementationClassName
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
No
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
Text:
  implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
Copied!
Description
Classname which implements the form element.

properties.containerClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.properties.containerClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Text:
  properties:
    containerClassAttribute: input
    elementClassAttribute: ''
    elementErrorClassAttribute: error
Copied!
Description
A CSS class which is typically wrapped around the form elements.

properties.elementClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.properties.elementClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Text:
  properties:
    containerClassAttribute: input
    elementClassAttribute: ''
    elementErrorClassAttribute: error
Copied!
Description
A CSS class written to the form element.

properties.elementDescription 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.properties.elementDescription
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
Form editor can write this property into the form definition (for prototype 'standard')
Yes
Mandatory
No
Default value (for prototype 'standard')
Undefined
Good to know
Description
Set a description of the form element. By default, it is displayed below the form element.

properties.elementErrorClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.properties.elementErrorClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Text:
  properties:
    containerClassAttribute: input
    elementClassAttribute: ''
    elementErrorClassAttribute: error
Copied!
Description
A CSS class which is written to the form element if validation errors exists.

formEditor 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Text:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.label.label
        propertyPath: label
      230:
         identifier: elementDescription
         templateName: Inspector-TextEditor
         label: formEditor.elements.FormElement.editor.elementDescription.label
         propertyPath: properties.elementDescription
      400:
        identifier: placeholder
        templateName: Inspector-TextEditor
        label: formEditor.elements.TextMixin.editor.placeholder.label
        propertyPath: properties.fluidAdditionalAttributes.placeholder
        compatibilityPropertyPath: properties.placeholder
        doNotSetIfPropertyValueIsEmpty: true
      500:
        identifier: defaultValue
        templateName: Inspector-TextEditor
        label: formEditor.elements.TextMixin.editor.defaultValue.label
        propertyPath: defaultValue
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
         viewPorts:
           10:
             viewPortIdentifier: xs
             label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
           20:
             viewPortIdentifier: sm
             label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
           30:
             viewPortIdentifier: md
             label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
           40:
             viewPortIdentifier: lg
             label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
         numbersOfColumnsToUse:
           label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
           propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
           description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
      800:
        identifier: requiredValidator
        templateName: Inspector-RequiredValidatorEditor
        label: formEditor.elements.FormElement.editor.requiredValidator.label
        validatorIdentifier: NotEmpty
        propertyPath: properties.fluidAdditionalAttributes.required
        propertyValue: required
      900:
        identifier: validators
        templateName: Inspector-ValidatorsEditor
        label: formEditor.elements.TextMixin.editor.validators.label
        selectOptions:
         10:
           value: ''
           label: formEditor.elements.TextMixin.editor.validators.EmptyValue.label
         20:
           value: Alphanumeric
           label: formEditor.elements.TextMixin.editor.validators.Alphanumeric.label
         40:
           value: StringLength
           label: formEditor.elements.TextMixin.editor.validators.StringLength.label
         50:
           value: EmailAddress
           label: formEditor.elements.TextMixin.editor.validators.EmailAddress.label
         60:
           value: Integer
           label: formEditor.elements.TextMixin.editor.validators.Integer.label
         70:
           value: Float
           label: formEditor.elements.TextMixin.editor.validators.Float.label
         80:
           value: NumberRange
           label: formEditor.elements.TextMixin.editor.validators.NumberRange.label
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
    predefinedDefaults:
      defaultValue: ''
    propertyCollections:
      validators:
        10:
         identifier: Alphanumeric
         editors:
           100:
             identifier: header
             templateName: Inspector-CollectionElementHeaderEditor
             label: formEditor.elements.TextMixin.validators.Alphanumeric.editor.header.label
           9999:
             identifier: removeButton
             templateName: Inspector-RemoveElementEditor
        20:
         identifier: Text
         editors:
           100:
             identifier: header
             templateName: Inspector-CollectionElementHeaderEditor
             label: formEditor.elements.TextMixin.validators.Text.editor.header.label
           9999:
             identifier: removeButton
             templateName: Inspector-RemoveElementEditor
        30:
         identifier: StringLength
         editors:
           100:
             identifier: header
             templateName: Inspector-CollectionElementHeaderEditor
             label: formEditor.elements.TextMixin.validators.StringLength.editor.header.label
           200:
             identifier: minimum
             templateName: Inspector-TextEditor
             label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
             propertyPath: options.minimum
             propertyValidators:
               10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.minlength
           300:
             identifier: maximum
             templateName: Inspector-TextEditor
             label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
             propertyPath: options.maximum
             propertyValidators:
               10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.maxlength
           9999:
             identifier: removeButton
             templateName: Inspector-RemoveElementEditor
        40:
         identifier: EmailAddress
         editors:
           100:
             identifier: header
             templateName: Inspector-CollectionElementHeaderEditor
             label: formEditor.elements.TextMixin.validators.EmailAddress.editor.header.label
           9999:
             identifier: removeButton
             templateName: Inspector-RemoveElementEditor
        50:
         identifier: Integer
         editors:
           100:
             identifier: header
             templateName: Inspector-CollectionElementHeaderEditor
             label: formEditor.elements.TextMixin.validators.Integer.editor.header.label
           9999:
             identifier: removeButton
             templateName: Inspector-RemoveElementEditor
        60:
         identifier: Float
         editors:
           100:
             identifier: header
             templateName: Inspector-CollectionElementHeaderEditor
             label: formEditor.elements.TextMixin.validators.Float.editor.header.label
           9999:
             identifier: removeButton
             templateName: Inspector-RemoveElementEditor
        70:
         identifier: NumberRange
         editors:
           100:
             identifier: header
             templateName: Inspector-CollectionElementHeaderEditor
             label: formEditor.elements.TextMixin.validators.NumberRange.editor.header.label
           200:
             identifier: minimum
             templateName: Inspector-TextEditor
             label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
             propertyPath: options.minimum
             propertyValidators:
               10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.min
           300:
             identifier: maximum
             templateName: Inspector-TextEditor
             label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
             propertyPath: options.maximum
             propertyValidators:
               10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.max
           9999:
             identifier: removeButton
             templateName: Inspector-RemoveElementEditor
        80:
         identifier: RegularExpression
         editors:
           100:
             identifier: header
             templateName: Inspector-CollectionElementHeaderEditor
             label: formEditor.elements.TextMixin.validators.RegularExpression.editor.header.label
           200:
             identifier: regex
             templateName: Inspector-TextEditor
             label: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.label
             description: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.description
             propertyPath: options.regularExpression
             propertyValidators:
               10: NotEmpty
               20: RegularExpressionPattern
           9999:
             identifier: removeButton
             templateName: Inspector-RemoveElementEditor
    label: formEditor.elements.Text.label
    group: input
    groupSorting: 100
    iconIdentifier: form-text
Copied!

formEditor.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.editors.100
Data type
array/ [FormElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Text:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
Copied!

formEditor.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Text:
  formEditor:
    editors:
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.label.label
        propertyPath: label
Copied!

formEditor.editors.230 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.editors.230
Data type
array/ [TextEditor]
Needed by
Frontend/ Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Date:
  formEditor:
    editors:
      230:
        identifier: elementDescription
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.elementDescription.label
        propertyPath: properties.elementDescription
Copied!

formEditor.editors.400 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.editors.400
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Text:
  formEditor:
    editors:
      400:
        identifier: placeholder
        templateName: Inspector-TextEditor
        label: formEditor.elements.TextMixin.editor.placeholder.label
        propertyPath: properties.fluidAdditionalAttributes.placeholder
        compatibilityPropertyPath: properties.placeholder
        doNotSetIfPropertyValueIsEmpty: true
Copied!

formEditor.editors.500 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.editors.500
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Text:
  formEditor:
    editors:
      500:
        identifier: defaultValue
        templateName: Inspector-TextEditor
        label: formEditor.elements.TextMixin.editor.defaultValue.label
        propertyPath: defaultValue
Copied!

formEditor.editors.700 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.editors.700
Data type
array/ [GridColumnViewPortConfigurationEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Text:
  formEditor:
    editors:
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
Copied!

formEditor.editors.800 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.editors.800
Data type
array/ [RequiredValidatorEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Text:
  formEditor:
    editors:
      800:
        identifier: requiredValidator
        templateName: Inspector-RequiredValidatorEditor
        label: formEditor.elements.FormElement.editor.requiredValidator.label
        validatorIdentifier: NotEmpty
        propertyPath: properties.fluidAdditionalAttributes.required
        propertyValue: required
Copied!

formEditor.editors.900 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.editors.900
Data type
array/ [ValidatorsEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Text:
  formEditor:
    editors:
      900:
        identifier: validators
        templateName: Inspector-ValidatorsEditor
        label: formEditor.elements.TextMixin.editor.validators.label
        selectOptions:
          10:
            value: ''
            label: formEditor.elements.TextMixin.editor.validators.EmptyValue.label
          20:
            value: Alphanumeric
            label: formEditor.elements.TextMixin.editor.validators.Alphanumeric.label
          40:
            value: StringLength
            label: formEditor.elements.TextMixin.editor.validators.StringLength.label
          50:
            value: EmailAddress
            label: formEditor.elements.TextMixin.editor.validators.EmailAddress.label
          60:
            value: Integer
            label: formEditor.elements.TextMixin.editor.validators.Integer.label
          70:
            value: Float
            label: formEditor.elements.TextMixin.editor.validators.Float.label
          80:
            value: NumberRange
            label: formEditor.elements.TextMixin.editor.validators.NumberRange.label
Copied!

formEditor.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Text:
  formEditor:
    editors:
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
Copied!

formEditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Text:
  formEditor:
    predefinedDefaults:
      defaultValue: ''
Copied!
Description
Defines predefined defaults for form element properties which are prefilled, if the form element is added to a form.

formEditor.propertyCollections.validators.10 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.10
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: Alphanumeric
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Alphanumeric.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.10.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.10.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: Alphanumeric
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.10.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.10.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: Alphanumeric
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Alphanumeric.editor.header.label
Copied!

formEditor.propertyCollections.validators.10.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.10.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: Alphanumeric
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.20 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.20
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        20:
          identifier: Text
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Text.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.20.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.20.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        20:
          identifier: Text
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.20.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.20.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        20:
          identifier: Text
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Text.editor.header.label
Copied!

formEditor.propertyCollections.validators.20.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.20.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        20:
          identifier: Text
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.30 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.30
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        30:
          identifier: StringLength
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.StringLength.editor.header.label
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.minlength
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.maxlength
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.30.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.30.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        30:
          identifier: StringLength
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.30.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.30.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        30:
          identifier: StringLength
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.StringLength.editor.header.label
Copied!

formEditor.propertyCollections.validators.30.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.30.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        30:
          identifier: StringLength
          editors:
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.minlength
Copied!

formEditor.propertyCollections.validators.30.editors.300 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.30.editors.300
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        30:
          identifier: StringLength
          editors:
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.maxlength
Copied!

formEditor.propertyCollections.validators.30.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.30.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        30:
          identifier: StringLength
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.40 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.40
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        40:
          identifier: EmailAddress
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.EmailAddress.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.40.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.40.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        40:
          identifier: EmailAddress
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.40.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.40.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        40:
          identifier: EmailAddress
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.EmailAddress.editor.header.label
Copied!

formEditor.propertyCollections.validators.40.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.40.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        40:
          identifier: EmailAddress
          editors:
            100:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.50 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.50
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        50:
          identifier: Integer
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Integer.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.50.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.50.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        50:
          identifier: Integer
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.50.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.50.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        50:
          identifier: Integer
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Integer.editor.header.label
Copied!

formEditor.propertyCollections.validators.50.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.50.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        50:
          identifier: Integer
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.60 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.60
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        60:
          identifier: Float
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Float.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.60.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.60.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        60:
          identifier: Float
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.60.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.60.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        60:
          identifier: Float
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Float.editor.header.label
Copied!

formEditor.propertyCollections.validators.60.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.60.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        60:
          identifier: Float
          editors:
            100:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.70 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.70
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        70:
          identifier: NumberRange
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.NumberRange.editor.header.label
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.min
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.max
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.70.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.70.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        70:
          identifier: NumberRange
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.70.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.70.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        70:
          identifier: NumberRange
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.NumberRange.editor.header.label
Copied!

formEditor.propertyCollections.validators.70.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.70.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        70:
          identifier: NumberRange
          editors:
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.min
Copied!

formEditor.propertyCollections.validators.70.editors.300 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.70.editors.300
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        70:
          identifier: NumberRange
          editors:
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.max
Copied!

formEditor.propertyCollections.validators.70.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.70.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        70:
          identifier: NumberRange
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.80 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.80
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        80:
          identifier: RegularExpression
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.header.label
            200:
              identifier: regex
              templateName: Inspector-TextEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.label
              description: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.description
              propertyPath: options.regularExpression
              propertyValidators:
                10: NotEmpty
                20: RegularExpressionPattern
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.80.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.80.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        80:
          identifier: RegularExpression
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.80.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.80.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        80:
          identifier: RegularExpression
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.header.label
Copied!

formEditor.propertyCollections.validators.80.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.80.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        80:
          identifier: RegularExpression
          editors:
            200:
              identifier: regex
              templateName: Inspector-TextEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.label
              description: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.description
              propertyPath: options.regularExpression
              propertyValidators:
                10: NotEmpty
                20: RegularExpressionPattern
Copied!

formEditor.propertyCollections.validators.80.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.80.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        80:
          identifier: RegularExpression
          editors:
            100:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Text:
  formEditor:
    label: formEditor.elements.Text.label
Copied!
Good to know
Description
This label will be shown within the "new element" Modal.

formEditor.group 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.group
Data type
string
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Text:
  formEditor:
    group: input
Copied!
Default value
Depends (see concrete element configuration)
Description
Define within which group within the form editor "new Element" modal the form element should be shown. The group value must be equal to an array key within formElementGroups.

formEditor.groupSorting 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.groupSorting
Data type
int
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Text:
  formEditor:
    groupSorting: 100
Copied!
Description
The position within the formEditor.group for this form element.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Text:
  formEditor:
    iconIdentifier: form-text
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within

[Textarea] 

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.implementationClassName
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
No
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
Textarea:
  implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
Copied!
Description
Classname which implements the form element.

properties.containerClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.properties.containerClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Textarea:
  properties:
    containerClassAttribute: input
    elementClassAttribute: xxlarge
    elementErrorClassAttribute: error
Copied!
Description
A CSS class which is typically wrapped around the form elements.

properties.elementClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.properties.elementClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Textarea:
  properties:
    containerClassAttribute: input
    elementClassAttribute: xxlarge
    elementErrorClassAttribute: error
Copied!
Description
A CSS class written to the form element.

properties.elementDescription 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.properties.elementDescription
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
Form editor can write this property into the form definition (for prototype 'standard')
Yes
Mandatory
No
Default value (for prototype 'standard')
Undefined
Good to know
Description
Set a description of the form element. By default, it is displayed below the form element.

properties.elementErrorClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.properties.elementErrorClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Textarea:
  properties:
    containerClassAttribute: input
    elementClassAttribute: xxlarge
    elementErrorClassAttribute: error
Copied!
Description
A CSS class which is written to the form element if validation errors exists.

formEditor 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Textarea:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.label.label
        propertyPath: label
      230:
         identifier: elementDescription
         templateName: Inspector-TextEditor
         label: formEditor.elements.FormElement.editor.elementDescription.label
         propertyPath: properties.elementDescription
      400:
        identifier: placeholder
        templateName: Inspector-TextEditor
        label: formEditor.elements.TextMixin.editor.placeholder.label
        propertyPath: properties.fluidAdditionalAttributes.placeholder
        compatibilityPropertyPath: properties.placeholder
        doNotSetIfPropertyValueIsEmpty: true
      500:
        identifier: defaultValue
        templateName: Inspector-TextEditor
        label: formEditor.elements.TextMixin.editor.defaultValue.label
        propertyPath: defaultValue
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
         viewPorts:
           10:
             viewPortIdentifier: xs
             label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
           20:
             viewPortIdentifier: sm
             label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
           30:
             viewPortIdentifier: md
             label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
           40:
             viewPortIdentifier: lg
             label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
         numbersOfColumnsToUse:
           label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
           propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
           description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
      800:
        identifier: requiredValidator
        templateName: Inspector-RequiredValidatorEditor
        label: formEditor.elements.FormElement.editor.requiredValidator.label
        validatorIdentifier: NotEmpty
        propertyPath: properties.fluidAdditionalAttributes.required
        propertyValue: required
      900:
        identifier: validators
        templateName: Inspector-ValidatorsEditor
        label: formEditor.elements.TextMixin.editor.validators.label
        selectOptions:
         10:
           value: ''
           label: formEditor.elements.TextMixin.editor.validators.EmptyValue.label
         20:
           value: Alphanumeric
           label: formEditor.elements.TextMixin.editor.validators.Alphanumeric.label
         40:
           value: StringLength
           label: formEditor.elements.TextMixin.editor.validators.StringLength.label
         60:
           value: Integer
           label: formEditor.elements.TextMixin.editor.validators.Integer.label
         70:
           value: Float
           label: formEditor.elements.TextMixin.editor.validators.Float.label
         80:
           value: NumberRange
           label: formEditor.elements.TextMixin.editor.validators.NumberRange.label
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
    predefinedDefaults:
      defaultValue: ''
    propertyCollections:
      validators:
        10:
          identifier: Alphanumeric
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Alphanumeric.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
        20:
          identifier: Text
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Text.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
        30:
          identifier: StringLength
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.StringLength.editor.header.label
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.minlength
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.maxlength
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
        40:
          identifier: EmailAddress
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.EmailAddress.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
        50:
          identifier: Integer
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Integer.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
        60:
          identifier: Float
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Float.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
        70:
          identifier: NumberRange
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.NumberRange.editor.header.label
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.min
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.max
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
        80:
          identifier: RegularExpression
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.header.label
            200:
              identifier: regex
              templateName: Inspector-TextEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.label
              description: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.description
              propertyPath: options.regularExpression
              propertyValidators:
                10: NotEmpty
                20: RegularExpressionPattern
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
    label: formEditor.elements.Textarea.label
    group: input
    groupSorting: 200
    iconIdentifier: form-textarea
Copied!

formEditor.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.editors.100
Data type
array/ [FormElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Textarea:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
Copied!

formEditor.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Textarea:
  formEditor:
    editors:
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.label.label
        propertyPath: label
Copied!

formEditor.editors.230 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.editors.230
Data type
array/ [TextEditor]
Needed by
Frontend/ Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Date:
  formEditor:
    editors:
      230:
        identifier: elementDescription
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.elementDescription.label
        propertyPath: properties.elementDescription
Copied!

formEditor.editors.400 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.editors.400
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Textarea:
  formEditor:
    editors:
      400:
        identifier: placeholder
        templateName: Inspector-TextEditor
        label: formEditor.elements.TextMixin.editor.placeholder.label
        propertyPath: properties.fluidAdditionalAttributes.placeholder
        compatibilityPropertyPath: properties.placeholder
        doNotSetIfPropertyValueIsEmpty: true
Copied!

formEditor.editors.500 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.editors.500
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Textarea:
  formEditor:
    editors:
      500:
        identifier: defaultValue
        templateName: Inspector-TextEditor
        label: formEditor.elements.TextMixin.editor.defaultValue.label
        propertyPath: defaultValue
Copied!

formEditor.editors.700 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.editors.700
Data type
array/ [GridColumnViewPortConfigurationEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Textarea:
  formEditor:
    editors:
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
Copied!

formEditor.editors.800 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.editors.800
Data type
array/ [RequiredValidatorEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Textarea:
  formEditor:
    editors:
      800:
        identifier: requiredValidator
        templateName: Inspector-RequiredValidatorEditor
        label: formEditor.elements.FormElement.editor.requiredValidator.label
        validatorIdentifier: NotEmpty
        propertyPath: properties.fluidAdditionalAttributes.required
        propertyValue: required
Copied!

formEditor.editors.900 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.editors.900
Data type
array/ [ValidatorsEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Textarea:
  formEditor:
    editors:
      900:
        identifier: validators
        templateName: Inspector-ValidatorsEditor
        label: formEditor.elements.TextMixin.editor.validators.label
        selectOptions:
          10:
            value: ''
            label: formEditor.elements.TextMixin.editor.validators.EmptyValue.label
          20:
            value: Alphanumeric
            label: formEditor.elements.TextMixin.editor.validators.Alphanumeric.label
          40:
            value: StringLength
            label: formEditor.elements.TextMixin.editor.validators.StringLength.label
          50:
            value: EmailAddress
            label: formEditor.elements.TextMixin.editor.validators.EmailAddress.label
          60:
            value: Integer
            label: formEditor.elements.TextMixin.editor.validators.Integer.label
          70:
            value: Float
            label: formEditor.elements.TextMixin.editor.validators.Float.label
          80:
            value: NumberRange
            label: formEditor.elements.TextMixin.editor.validators.NumberRange.label
Copied!

formEditor.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Textarea:
  formEditor:
    editors:
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
Copied!

formEditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Textarea:
  formEditor:
    predefinedDefaults:
      defaultValue: ''
Copied!
Description
Defines predefined defaults for form element properties which are prefilled, if the form element is added to a form.

formEditor.propertyCollections.validators.10 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.propertyCollections.validators.10
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Textarea:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: Alphanumeric
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Alphanumeric.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.10.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.propertyCollections.validators.10.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Textarea:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: Alphanumeric
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.10.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.propertyCollections.validators.10.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Textarea:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: Alphanumeric
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Alphanumeric.editor.header.label
Copied!

formEditor.propertyCollections.validators.10.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.propertyCollections.validators.10.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Textarea:
  formEditor:
    propertyCollections:
      validators:
        10:
          identifier: Alphanumeric
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.20 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.propertyCollections.validators.20
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Textarea:
  formEditor:
    propertyCollections:
      validators:
        20:
          identifier: Text
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Text.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.20.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.propertyCollections.validators.20.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Textarea:
  formEditor:
    propertyCollections:
      validators:
        20:
          identifier: Text
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.20.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.propertyCollections.validators.20.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Textarea:
  formEditor:
    propertyCollections:
      validators:
        20:
          identifier: Text
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Text.editor.header.label
Copied!

formEditor.propertyCollections.validators.20.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.propertyCollections.validators.20.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Textarea:
  formEditor:
    propertyCollections:
      validators:
        20:
          identifier: Text
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.30 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.propertyCollections.validators.30
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Textarea:
  formEditor:
    propertyCollections:
      validators:
        30:
          identifier: StringLength
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.StringLength.editor.header.label
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.minlength
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.maxlength
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.30.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.propertyCollections.validators.30.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Textarea:
  formEditor:
    propertyCollections:
      validators:
        30:
          identifier: StringLength
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.30.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.propertyCollections.validators.30.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Textarea:
  formEditor:
    propertyCollections:
      validators:
        30:
          identifier: StringLength
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.StringLength.editor.header.label
Copied!

formEditor.propertyCollections.validators.30.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.propertyCollections.validators.30.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Textarea:
  formEditor:
    propertyCollections:
      validators:
        30:
          identifier: StringLength
          editors:
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.minlength
Copied!

formEditor.propertyCollections.validators.30.editors.300 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.propertyCollections.validators.30.editors.300
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Textarea:
  formEditor:
    propertyCollections:
      validators:
        30:
          identifier: StringLength
          editors:
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.maxlength
Copied!

formEditor.propertyCollections.validators.30.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.propertyCollections.validators.30.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Textarea:
  formEditor:
    propertyCollections:
      validators:
        30:
          identifier: StringLength
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.40 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.propertyCollections.validators.40
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Textarea:
  formEditor:
    propertyCollections:
      validators:
        40:
          identifier: EmailAddress
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.EmailAddress.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.40.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.propertyCollections.validators.40.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Textarea:
  formEditor:
    propertyCollections:
      validators:
        40:
          identifier: EmailAddress
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.40.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.propertyCollections.validators.40.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Textarea:
  formEditor:
    propertyCollections:
      validators:
        40:
          identifier: EmailAddress
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.EmailAddress.editor.header.label
Copied!

formEditor.propertyCollections.validators.40.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.propertyCollections.validators.40.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Textarea:
  formEditor:
    propertyCollections:
      validators:
        40:
          identifier: EmailAddress
          editors:
            100:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.50 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.propertyCollections.validators.50
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Textarea:
  formEditor:
    propertyCollections:
      validators:
        50:
          identifier: Integer
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Integer.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.50.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.propertyCollections.validators.50.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Textarea:
  formEditor:
    propertyCollections:
      validators:
        50:
          identifier: Integer
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.50.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.propertyCollections.validators.50.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Textarea:
  formEditor:
    propertyCollections:
      validators:
        50:
          identifier: Integer
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Integer.editor.header.label
Copied!

formEditor.propertyCollections.validators.50.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.propertyCollections.validators.50.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Textarea:
  formEditor:
    propertyCollections:
      validators:
        50:
          identifier: Integer
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.60 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.propertyCollections.validators.60
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Textarea:
  formEditor:
    propertyCollections:
      validators:
        60:
          identifier: Float
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Float.editor.header.label
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.60.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.propertyCollections.validators.60.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Textarea:
  formEditor:
    propertyCollections:
      validators:
        60:
          identifier: Float
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.60.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.propertyCollections.validators.60.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Textarea:
  formEditor:
    propertyCollections:
      validators:
        60:
          identifier: Float
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.Float.editor.header.label
Copied!

formEditor.propertyCollections.validators.60.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.propertyCollections.validators.60.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Textarea:
  formEditor:
    propertyCollections:
      validators:
        60:
          identifier: Float
          editors:
            100:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.70 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.propertyCollections.validators.70
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Textarea:
  formEditor:
    propertyCollections:
      validators:
        70:
          identifier: NumberRange
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.NumberRange.editor.header.label
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.min
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.max
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.70.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.propertyCollections.validators.70.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Textarea:
  formEditor:
    propertyCollections:
      validators:
        70:
          identifier: NumberRange
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.70.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.propertyCollections.validators.70.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Textarea:
  formEditor:
    propertyCollections:
      validators:
        70:
          identifier: NumberRange
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.NumberRange.editor.header.label
Copied!

formEditor.propertyCollections.validators.70.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.propertyCollections.validators.70.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Textarea:
  formEditor:
    propertyCollections:
      validators:
        70:
          identifier: NumberRange
          editors:
            200:
              identifier: minimum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.minimum.label
              propertyPath: options.minimum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.min
Copied!

formEditor.propertyCollections.validators.70.editors.300 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.propertyCollections.validators.70.editors.300
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Textarea:
  formEditor:
    propertyCollections:
      validators:
        70:
          identifier: NumberRange
          editors:
            300:
              identifier: maximum
              templateName: Inspector-TextEditor
              label: formEditor.elements.MinimumMaximumEditorsMixin.editor.maximum.label
              propertyPath: options.maximum
              propertyValidators:
                10: Integer
              additionalElementPropertyPaths:
                10: properties.fluidAdditionalAttributes.max
Copied!

formEditor.propertyCollections.validators.70.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.propertyCollections.validators.70.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Textarea:
  formEditor:
    propertyCollections:
      validators:
        70:
          identifier: NumberRange
          editors:
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.80 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.propertyCollections.validators.80
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Textarea:
  formEditor:
    propertyCollections:
      validators:
        80:
          identifier: RegularExpression
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.header.label
            200:
              identifier: regex
              templateName: Inspector-TextEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.label
              description: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.description
              propertyPath: options.regularExpression
              propertyValidators:
                10: NotEmpty
                20: RegularExpressionPattern
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.propertyCollections.validators.80.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.propertyCollections.validators.80.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Textarea:
  formEditor:
    propertyCollections:
      validators:
        80:
          identifier: RegularExpression
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.80.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.propertyCollections.validators.80.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Textarea:
  formEditor:
    propertyCollections:
      validators:
        80:
          identifier: RegularExpression
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.header.label
Copied!

formEditor.propertyCollections.validators.80.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.propertyCollections.validators.80.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Textarea:
  formEditor:
    propertyCollections:
      validators:
        80:
          identifier: RegularExpression
          editors:
            200:
              identifier: regex
              templateName: Inspector-TextEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.label
              description: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.description
              propertyPath: options.regularExpression
              propertyValidators:
                10: NotEmpty
                20: RegularExpressionPattern
Copied!

formEditor.propertyCollections.validators.80.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.propertyCollections.validators.80.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Textarea:
  formEditor:
    propertyCollections:
      validators:
        80:
          identifier: RegularExpression
          editors:
            100:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Textarea:
  formEditor:
    label: formEditor.elements.Textarea.label
Copied!
Good to know
Description
This label will be shown within the "new element" Modal.

formEditor.group 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.group
Data type
string
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Textarea:
  formEditor:
    group: input
Copied!
Default value
Depends (see concrete element configuration)
Description
Define within which group within the form editor "new Element" modal the form element should be shown. The group value must be equal to an array key within formElementGroups.

formEditor.groupSorting 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.groupSorting
Data type
int
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Textarea:
  formEditor:
    groupSorting: 200
Copied!
Description
The position within the formEditor.group for this form element.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Textarea.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Textarea:
  formEditor:
    iconIdentifier: form-textarea
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within

[Url] 

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Url.implementationClassName
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
No
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
Yes
Default value (for prototype 'standard')
Url:
  implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
Copied!
Description
Classname which implements the form element.

properties.containerClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Url.properties.containerClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Url:
  properties:
    containerClassAttribute: input
    elementClassAttribute: ''
    elementErrorClassAttribute: error
Copied!
Description
A CSS class which is typically wrapped around the form elements.

properties.elementClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Url.properties.elementClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Url:
  properties:
    containerClassAttribute: input
    elementClassAttribute: ''
    elementErrorClassAttribute: error
Copied!
Description
A CSS class written to the form element.

properties.elementDescription 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Url.properties.elementDescription
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
Form editor can write this property into the form definition (for prototype 'standard')
Yes
Mandatory
No
Default value (for prototype 'standard')
Undefined
Good to know
Description
Set a description of the form element. By default, it is displayed below the form element.

properties.elementErrorClassAttribute 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Url.properties.elementErrorClassAttribute
Data type
string
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
No
Mandatory
No
Default value (for prototype 'standard')
Url:
  properties:
    containerClassAttribute: input
    elementClassAttribute: ''
    elementErrorClassAttribute: error
Copied!
Description
A CSS class which is written to the form element if validation errors exists.

validators 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Url.validators
Data type
array
Needed by
Frontend/ Backend (form editor)
Overwritable within form definition
Yes
form editor can write this property into the form definition (for prototype 'standard')
Yes
Mandatory
Yes
Default value (for prototype 'standard')
Url:
  validators:
    -
      identifier: RegularExpression
      options:
        regularExpression: '/^.*$/'
Copied!
Description
Predefined validators.

formEditor 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Url.formEditor
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Url:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.label.label
        propertyPath: label
     230:
        identifier: elementDescription
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.elementDescription.label
        propertyPath: properties.elementDescription
      400:
        identifier: placeholder
        templateName: Inspector-TextEditor
        label: formEditor.elements.TextMixin.editor.placeholder.label
        propertyPath: properties.fluidAdditionalAttributes.placeholder
        doNotSetIfPropertyValueIsEmpty: true
      500:
        identifier: defaultValue
        templateName: Inspector-TextEditor
        label: formEditor.elements.TextMixin.editor.defaultValue.label
        propertyPath: defaultValue
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
      800:
        identifier: requiredValidator
        templateName: Inspector-RequiredValidatorEditor
        label: formEditor.elements.FormElement.editor.requiredValidator.label
        validatorIdentifier: NotEmpty
        propertyPath: properties.fluidAdditionalAttributes.required
        propertyValue: required
      900:
        identifier: validators
        templateName: Inspector-ValidatorsEditor
        label: formEditor.elements.TextMixin.editor.validators.label
        selectOptions:
          10:
            value: ''
            label: formEditor.elements.TextMixin.editor.validators.EmptyValue.label
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
    propertyCollections:
      validators:
        80:
          identifier: RegularExpression
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.header.label
            200:
              identifier: regex
              templateName: Inspector-TextEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.label
              description: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.description
              propertyPath: options.regularExpression
              propertyValidators:
                10: NotEmpty
                20: RegularExpressionPattern
    label: formEditor.elements.Url.label
    group: html5
    groupSorting: 300
    iconIdentifier: form-url
Copied!

formEditor.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Url.formEditor.editors.100
Data type
array/ [FormElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Url:
  formEditor:
    editors:
      100:
        identifier: header
        templateName: Inspector-FormElementHeaderEditor
Copied!

formEditor.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Url.formEditor.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Url:
  formEditor:
    editors:
      200:
        identifier: label
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.label.label
        propertyPath: label
Copied!

formEditor.editors.230 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Url.formEditor.editors.230
Data type
array/ [TextEditor]
Needed by
Frontend/ Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Date:
  formEditor:
    editors:
      230:
        identifier: elementDescription
        templateName: Inspector-TextEditor
        label: formEditor.elements.FormElement.editor.elementDescription.label
        propertyPath: properties.elementDescription
Copied!

formEditor.editors.400 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Url.formEditor.editors.400
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Url:
  formEditor:
    editors:
      400:
        identifier: placeholder
        templateName: Inspector-TextEditor
        label: formEditor.elements.TextMixin.editor.placeholder.label
        propertyPath: properties.fluidAdditionalAttributes.placeholder
        compatibilityPropertyPath: properties.placeholder
        doNotSetIfPropertyValueIsEmpty: true
Copied!

formEditor.editors.500 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Url.formEditor.editors.500
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Url:
  formEditor:
    editors:
      500:
        identifier: defaultValue
        templateName: Inspector-TextEditor
        label: formEditor.elements.TextMixin.editor.defaultValue.label
        propertyPath: defaultValue
Copied!

formEditor.editors.700 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Url.formEditor.editors.700
Data type
array/ [GridColumnViewPortConfigurationEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Url:
  formEditor:
    editors:
      700:
        identifier: gridColumnViewPortConfiguration
        templateName: Inspector-GridColumnViewPortConfigurationEditor
        label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
        configurationOptions:
          viewPorts:
            10:
              viewPortIdentifier: xs
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
            20:
              viewPortIdentifier: sm
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
            30:
              viewPortIdentifier: md
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
            40:
              viewPortIdentifier: lg
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
          numbersOfColumnsToUse:
            label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
            propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
            description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
Copied!

formEditor.editors.800 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Url.formEditor.editors.800
Data type
array/ [RequiredValidatorEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Url:
  formEditor:
    editors:
      800:
        identifier: requiredValidator
        templateName: Inspector-RequiredValidatorEditor
        label: formEditor.elements.FormElement.editor.requiredValidator.label
        validatorIdentifier: NotEmpty
        propertyPath: properties.fluidAdditionalAttributes.required
        propertyValue: required
Copied!

formEditor.editors.900 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Url.formEditor.editors.900
Data type
array/ [ValidatorsEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Url:
  formEditor:
    editors:
      900:
        identifier: validators
        templateName: Inspector-ValidatorsEditor
        label: formEditor.elements.TextMixin.editor.validators.label
        selectOptions:
          10:
            value: ''
            label: formEditor.elements.TextMixin.editor.validators.EmptyValue.label
Copied!

formEditor.editors.9999 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Url.formEditor.editors.9999
Data type
array/ [RemoveElementEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Url:
  formEditor:
    editors:
      9999:
        identifier: removeButton
        templateName: Inspector-RemoveElementEditor
Copied!

formEditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Url.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Url:
  formEditor:
    predefinedDefaults:
      defaultValue: ''
Copied!
Description
Defines predefined defaults for form element properties which are prefilled, if the form element is added to a form.

formEditor.propertyCollections.validators.80 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Url.formEditor.propertyCollections.validators.80
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Url:
  formEditor:
    propertyCollections:
      validators:
        80:
          identifier: RegularExpression
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.header.label
            200:
              identifier: regex
              templateName: Inspector-TextEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.label
              description: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.description
              propertyPath: options.regularExpression
              propertyValidators:
                10: NotEmpty
                20: RegularExpressionPattern
Copied!

formEditor.propertyCollections.validators.80.identifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Url.formEditor.propertyCollections.validators.80.identifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Url:
  formEditor:
    propertyCollections:
      validators:
        80:
          identifier: RegularExpression
Copied!
Good to know
Description
Identifies the validator which should be attached to the form element. Must be equal to an existing <validatorIdentifier>.

formEditor.propertyCollections.validators.80.editors.100 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Text.formEditor.propertyCollections.validators.80.editors.100
Data type
array/ [CollectionElementHeaderEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Text:
  formEditor:
    propertyCollections:
      validators:
        80:
          identifier: RegularExpression
          editors:
            100:
              identifier: header
              templateName: Inspector-CollectionElementHeaderEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.header.label
Copied!

formEditor.propertyCollections.validators.80.editors.200 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Url.formEditor.propertyCollections.validators.80.editors.200
Data type
array/ [TextEditor]
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Url:
  formEditor:
    propertyCollections:
      validators:
        80:
          identifier: RegularExpression
          editors:
            200:
              identifier: regex
              templateName: Inspector-TextEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.label
              description: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.description
              propertyPath: options.regularExpression
              propertyValidators:
                10: NotEmpty
                20: RegularExpressionPattern
Copied!

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Url.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Url:
  formEditor:
    label: formEditor.elements.Url.label
Copied!
Good to know
Description
This label will be shown within the "new element" Modal.

formEditor.group 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Url.formEditor.group
Data type
string
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Url:
  formEditor:
    group: html5
Copied!
Description
Define within which group within the form editor "new Element" modal the form element should be shown. The group value must be equal to an array key within formElementGroups.

formEditor.groupSorting 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Url.formEditor.groupSorting
Data type
int
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Url:
  formEditor:
    groupSorting: 300
Copied!
Description
The position within the formEditor.group for this form element.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Url.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Recommended
Default value (for prototype 'standard')
Url:
  formEditor:
    iconIdentifier: form-url
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within

[finishersDefinition] 

Properties 

[finishersDefinition] 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition
Data type
array
Needed by
Frontend/ Backend (form editor)
Mandatory
Yes
Default value
prototypes:
  <prototypeIdentifier>:
    finishersDefinition:
      [...]
Copied!
Good to know
Description
Array which defines the available finishers. Every key within this array is called the <finisherIdentifier>.

<finisherIdentifier> 

Option path
prototypes.<prototypeIdentifier>.finishersdefinition.<finisherIdentifier>
Data type
string
Needed by
Frontend/ Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
prototypes:
  standard:
    Closure:
      [...]
    Confirmation:
      [...]
    EmailToSender:
      [...]
    EmailToReceiver:
      [...]
    DeleteUploads:
      [...]
    FlashMessage:
      [...]
    Redirect:
      [...]
    SaveToDatabase:
      [...]
Copied!
Related options
Good to know
Description
This array key identifies a finisher. This identifier could be used to attach a finisher to a form.

Common <finisherIdentifier> properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.<finisherIdentifier>.implementationClassName
Data type
string
Needed by
Frontend
Mandatory
Yes
Default value
Depends (see concrete finishers configuration)
Good to know
Description

Classname which implements the finisher.

options 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.<finisherIdentifier>.options
Data type
array
Needed by
Frontend
Mandatory
Depends (see concrete finishers configuration)
Default value
Depends (see concrete finishers configuration)
Good to know
Description
Array with finisher options.

translation.translationFiles 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.<finisherIdentifier>.translation.translationFiles
Data type
string/ array
Needed by
Frontend
Mandatory
No
Default value
Depends (see concrete element configuration)
Good to know
Description
Filesystem path(s) to translation files which should be searched for finisher translations. If the property is undefined, - "prototypes.prototypeIdentifier.formElementsDefinition.Form.renderingOptions.translation.translationFiles" will be used.

formEditor 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.<finisherIdentifier>.formEditor
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value
Depends (see concrete finishers configuration)
Description
Array with configurations for the form editor

formeditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.<finisherIdentifier>.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete finishers configuration)
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the finisher is selected.

formeditor.label 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.<finisherIdentifier>.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete finishers configuration)
Good to know
Description

This label will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the finisher is selected.

formeditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.<finisherIdentifier>.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value
Depends (see concrete finishers configuration)
Description

Defines predefined defaults for finisher options which are prefilled, if the finisher is added to a form.

FormEngine 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.<finisherIdentifier>.FormEngine
Data type
array
Needed by
Backend (plugin)
Mandatory
No
Default value
Depends (see concrete finishers configuration)
Description
Array with configurations for the form plugin

FormEngine.label 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.<finisherIdentifier>.FormEngine.label
Data type
string
Needed by
Backend (plugin)
Mandatory
No
Default value
Depends (see concrete finishers configuration)
Good to know
Description

Finisher options are overwritable within the form plugin. If the "Override finisher settings" checkbox is selected within the form plugin, every finisher who has a - "FormEngine" configuration, is shown in a separate tab. label is the label for such a tab.

FormEngine.elements 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.<finisherIdentifier>.FormEngine.elements
Data type
array
Needed by
Backend (plugin)
Mandatory
No
Default value
Depends (see concrete finishers configuration)
Good to know
Description

Every array key must match to the related finisher option name. For example, the - "[Redirect] finisher" has the option - "pageUid". If you want to make the pageUid overwritable within the form plugin, then an array key pageUid has to exists within prototypes.prototypeIdentifier.finishersDefinition.finisheridentifier.FormEngine.elements. The configuration within prototypes.prototypeIdentifier.finishersDefinition.Redirect.FormEngine.elements.pageUid must follow the TCA syntax.

Concrete configurations 

[Closure] 

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.Closure.implementationClassName
Data type
string
Needed by
Frontend
Mandatory
Yes
Default value
Closure:
  implementationClassName: TYPO3\CMS\Form\Domain\Finishers\ClosureFinisher
Copied!
Good to know
Description

Classname which implements the finisher.

options.closure 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.Closure.options.closure
Data type
Closure
Needed by
Frontend
Mandatory
Yes
Default value
null
Description
The closure which is invoked if the finisher is triggered.

formeditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.Closure.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Closure:
  formEditor:
    iconIdentifier: form-finisher
    label: formEditor.elements.Form.finisher.Closure.editor.header.label
    predefinedDefaults:
      options:
        closure: ''
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the finisher is selected.

formeditor.label 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.Closure.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Closure:
  formEditor:
    iconIdentifier: form-finisher
    label: formEditor.elements.Form.finisher.Closure.editor.header.label
    predefinedDefaults:
      options:
        closure: ''
Copied!
Good to know
Description

This label will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the finisher is selected.

formeditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.Closure.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value
Closure:
  formEditor:
    iconIdentifier: form-finisher
    label: formEditor.elements.Form.finisher.Closure.editor.header.label
    predefinedDefaults:
      options:
        closure: ''
Copied!
Description

Defines predefined defaults for finisher options which are prefilled, if the finisher is added to a form.

[Confirmation] 

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.Confirmation.implementationClassName
Data type
string
Needed by
Frontend
Mandatory
Yes
Default value
Confirmation:
  implementationClassName: TYPO3\CMS\Form\Domain\Finishers\ConfirmationFinisher
Copied!
Good to know
Description

Classname which implements the finisher.

options.message 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.Confirmation.options.message
Data type
string
Needed by
Frontend
Mandatory
Yes
Default value
The form has been submitted.
Good to know
Description
The text which is shown if the finisher is invoked.

options.contentElementUid 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.Confirmation.options.contentElementUid
Data type
integer
Needed by
Frontend
Mandatory
No
Default value
undefined
Description
The option "contentElementUid" can be used to render a content element. If contentElementUid is set, the option "message" will be ignored.

options.typoscriptObjectPath 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.Confirmation.options.typoscriptObjectPath
Data type
string
Needed by
Frontend
Mandatory
No
Default value
'lib.tx_form.contentElementRendering'
Description
The option "typoscriptObjectPath" can be used to render the content element (options.contentElementUid) through a typoscript lib.

options.variables 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.Confirmation.options.variables
Data type
array
Needed by
Frontend
Mandatory
No
Default value
undefined
Description
Variables which should be available within the template.

options.templateName 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.Confirmation.options.templateName
Data type
string
Needed by
Frontend
Mandatory
Yes
Default value
'Confirmation'
Description
Define a custom template name which should be used.

options.templateRootPaths 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.Confirmation.options.templateRootPaths
Data type
array
Needed by
Frontend
Mandatory
Yes
Default value
Confirmation:
  options:
    templateRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Templates/Finishers/Confirmation/'
    layoutRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Layout/Finishers/Confirmation/'
    partialRootPaths:
      10: 'EXT:form/Resources/Private/Frontend/Partials/Finishers/Confirmation/'
Copied!
Description
Used to define several paths for templates, which will be tried in reversed order (the paths are searched from bottom to top).

options.translation.propertiesExcludedFromTranslation 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.Confirmation.options.translation.propertiesExcludedFromTranslation
Data type
array
Needed by
Frontend
Mandatory
No
Default value
undefined
Good to know
Description
Localization from translation files will be skipped for all specified finisher options.

options.translation.translationFiles 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.Confirmation.options.translation.translationFiles
Data type
string/ array
Needed by
Frontend
Mandatory
No
Default value
undefined
Good to know
Description
If set, this translation file(s) will be used for finisher option translations. If not set, the translation file(s) from the 'Form' element will be used. Read Translate finisher options for more informations.

formeditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.Confirmation.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Confirmation:
  formEditor:
    iconIdentifier: form-finisher
    label: formEditor.elements.Form.finisher.Confirmation.editor.header.label
    predefinedDefaults:
      options:
        message: ''
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the finisher is selected.

formeditor.label 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.Confirmation.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Confirmation:
  formEditor:
    iconIdentifier: form-finisher
    label: formEditor.elements.Form.finisher.Confirmation.editor.header.label
    predefinedDefaults:
      options:
        message: ''
Copied!
Good to know
Description

This label will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the finisher is selected.

formeditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.Confirmation.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value
Confirmation:
  formEditor:
    iconIdentifier: form-finisher
    label: formEditor.elements.Form.finisher.Confirmation.editor.header.label
    predefinedDefaults:
      options:
        message: ''
Copied!
Description

Defines predefined defaults for finisher options which are prefilled, if the finisher is added to a form.

[EmailToReceiver] 

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToReceiver.implementationClassName
Data type
string
Needed by
Frontend
Mandatory
Yes
Default value
EmailToReceiver:
  implementationClassName: TYPO3\CMS\Form\Domain\Finishers\EmailFinisher
Copied!
Good to know
Description

Classname which implements the finisher.

options.subject 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToReceiver.options.subject
Data type
string
Needed by
Frontend
Mandatory
Yes
Default value
undefined
Good to know
Description
Subject of the email.

options.recipients 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToReceiver.options.recipients
Data type
array
Needed by
Frontend
Mandatory
Yes
Default value
undefined
Good to know
Description

Email addresses and names of the recipients (To).

The form editor in the backend module provides a visual UI to enter an arbitrary amount of recipients.

This option must contain a YAML hash with email addresses as keys and recipient names as values:

recipients:
  first@example.org: First Recipient
  second@example.org: Second Recipient
Copied!

options.senderAddress 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToReceiver.options.senderAddress
Data type
string
Needed by
Frontend
Mandatory
Yes
Default value
undefined
Good to know
Description
Email address of the sender/ visitor (From).

options.senderName 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToReceiver.options.senderName
Data type
string
Needed by
Frontend
Mandatory
No
Default value
empty string
Good to know
Description
Human-readable name of the sender.

options.replyToRecipients 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToReceiver.options.replyToRecipients
Data type
array
Needed by
Frontend
Mandatory
No
Default value
undefined
Good to know
Description
Email addresses of to be used as reply-to emails.

options.carbonCopyRecipients 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToReceiver.options.carbonCopyRecipients
Data type
array
Needed by
Frontend
Mandatory
No
Default value
undefined
Good to know
Description
Email addresses of the copy recipient.

options.blindCarbonCopyRecipients 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToReceiver.options.blindCarbonCopyRecipients
Data type
array
Needed by
Frontend
Mandatory
No
Default value
undefined
Good to know
Description
Email address of the blind copy recipient.

options.addHtmlPart 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToReceiver.options.addHtmlPart
Data type
bool
Needed by
Frontend
Mandatory
No
Default value
true
Good to know
Description
If set, mails will contain a plaintext and HTML part, otherwise only a plaintext part. That way, it can be used to disable HTML and enforce plaintext-only mails.

options.attachUploads 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToReceiver.options.attachUploads
Data type
bool
Needed by
Frontend
Mandatory
No
Default value
true
Good to know
Description
If set, all uploaded items are attached to the email.

options.title 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToReceiver.options.title
Data type
string
Needed by
Frontend
Mandatory
No
Default value
undefined
Good to know
Description
The title, being shown in the email. The templates are based onFluidEmail. The template renders the title field in the header section right above the email body. Do not confuse this field with the subject of the email.

options.translation.language 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToReceiver.options.translation.language
Data type
string
Needed by
Frontend
Mandatory
No
Default value
undefined
Good to know
Description
If not set, the finisher options are translated depending on the current frontend language (if translations exists). This option allows you to force translations for a given language isocode, e.g 'da' or 'de'. Read Translate finisher options for more informations.

options.translation.propertiesExcludedFromTranslation 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToReceiver.options.translation.propertiesExcludedFromTranslation
Data type
array
Needed by
Frontend
Mandatory
No
Default value
undefined
Good to know
Description
Localization from translation files will be skipped for all specified finisher options.

options.translation.translationFiles 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToReceiver.options.translation.translationFiles
Data type
array
Needed by
Frontend
Mandatory
No
Default value
undefined
Good to know
Description
If set, this translation file(s) will be used for finisher option translations. If not set, the translation file(s) from the 'Form' element will be used. Read Translate finisher options for more informations.

options.partialRootPaths 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToReceiver.options.partialRootPaths
Data type
array
Needed by
Frontend
Mandatory
No
Default value
undefined
Good to know
Description
Fluid partial paths.

options.layoutRootPaths 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToReceiver.options.layoutRootPaths
Data type
array
Needed by
Frontend
Mandatory
No
Default value
undefined
Good to know
Description
Fluid layout paths.

options.variables 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToReceiver.options.variables
Data type
array
Needed by
Frontend
Mandatory
No
Default value
undefined
Good to know
Description
Associative array of variables which are available inside the Fluid template.

formeditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToReceiver.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
EmailToReceiver:
  formEditor:
    iconIdentifier: form-finisher
    label: formEditor.elements.Form.finisher.EmailToReceiver.editor.header.label
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the finisher is selected.

formeditor.label 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToReceiver.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
EmailToReceiver:
  formEditor:
    iconIdentifier: form-finisher
    label: formEditor.elements.Form.finisher.EmailToReceiver.editor.header.label
Copied!
Good to know
Description

This label will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the finisher is selected.

formeditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToReceiver.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value
EmailToReceiver:
  formEditor:
    iconIdentifier: form-finisher
    label: formEditor.elements.Form.finisher.EmailToReceiver.editor.header.label
    predefinedDefaults:
      options:
        subject: ''
        recipients: {  }
        senderAddress: ''
        senderName: ''
        replyToRecipients: {  }
        carbonCopyRecipients: {  }
        blindCarbonCopyRecipients: {  }
        addHtmlPart: true
        attachUploads: true
        translation:
          language: 'default'
        title: ''
Copied!
Description

Defines predefined defaults for finisher options which are prefilled, if the finisher is added to a form.

FormEngine.label 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToReceiver.FormEngine.label
Data type
array
Needed by
Backend (plugin)
Mandatory
Yes
Default value
EmailToReceiver:
  FormEngine:
    label: tt_content.finishersDefinition.EmailToReceiver.label
Copied!
Good to know
Description

Finisher options are overwritable within the form plugin. If the "Override finisher settings" checkbox is selected within the form plugin, every finisher who has a - "FormEngine" configuration, is shown in a separate tab. label is the label for such a tab.

@ToDo .. _prototypes.prototypeIdentifier.finishersdefinition.emailtoreceiver.formengine.elements:

FormEngine.elements 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToReceiver.FormEngine.elements
Data type
array
Needed by
Backend (plugin)
Mandatory
Yes
Default value
EmailToReceiver:
  FormEngine:
    label: tt_content.finishersDefinition.EmailToReceiver.label
    elements:
      subject:
        label: tt_content.finishersDefinition.EmailToReceiver.subject.label
        config:
          type: input
          required: true
      recipients:
        title: tt_content.finishersDefinition.EmailToReceiver.recipients.label
        type: array
        section: true
        sectionItemKey: email
        sectionItemValue: name
        el:
          _arrayContainer:
            type: array
            title: tt_content.finishersDefinition.EmailToSender.recipients.item.label
            el:
              email:
                label: tt_content.finishersDefinition.EmailToSender.recipients.email.label
                config:
                  type: email
                  required: true
              name:
                label: tt_content.finishersDefinition.EmailToSender.recipients.name.label
                config:
                  type: input
      senderAddress:
        label: tt_content.finishersDefinition.EmailToReceiver.senderAddress.label
        config:
          type: input
          required: true
      senderName:
        label: tt_content.finishersDefinition.EmailToReceiver.senderName.label
        config:
          type: input
      replyToRecipients:
        title: tt_content.finishersDefinition.EmailToReceiver.replyToRecipients.label
        type: array
        section: true
        sectionItemKey: email
        sectionItemValue: name
        el:
          _arrayContainer:
            type: array
            title: tt_content.finishersDefinition.EmailToSender.replyToRecipients.item.label
            el:
              email:
                label: tt_content.finishersDefinition.EmailToSender.recipients.email.label
                config:
                  type: email
                  required: true
              name:
                label: tt_content.finishersDefinition.EmailToSender.recipients.name.label
                config:
                  type: input
      carbonCopyRecipients:
        title: tt_content.finishersDefinition.EmailToReceiver.carbonCopyRecipients.label
        type: array
        section: true
        sectionItemKey: email
        sectionItemValue: name
        el:
          _arrayContainer:
            type: array
            title: tt_content.finishersDefinition.EmailToSender.carbonCopyRecipients.item.label
            el:
              email:
                label: tt_content.finishersDefinition.EmailToSender.recipients.email.label
                config:
                  type: email
                  required: true
              name:
                label: tt_content.finishersDefinition.EmailToSender.recipients.name.label
                config:
                  type: input
      blindCarbonCopyRecipients:
        title: tt_content.finishersDefinition.EmailToReceiver.blindCarbonCopyRecipients.label
        type: array
        section: true
        sectionItemKey: email
        sectionItemValue: name
        el:
          _arrayContainer:
            type: array
            title: tt_content.finishersDefinition.EmailToSender.blindCarbonCopyRecipients.item.label
            el:
              email:
                label: tt_content.finishersDefinition.EmailToSender.recipients.email.label
                config:
                  type: email
                  required: true
              name:
                label: tt_content.finishersDefinition.EmailToSender.recipients.name.label
                config:
                  type: input
      addHtmlPart:
        label: tt_content.finishersDefinition.EmailToReceiver.addHtmlPart.label
        config:
          type: check
          default: 1
      translation:
        language:
          label: tt_content.finishersDefinition.EmailToReceiver.language.label
          config:
            type: select
            renderType: selectSingle
            minitems: 1
            maxitems: 1
            size: 1
            items:
              10:
                - tt_content.finishersDefinition.EmailToReceiver.language.1
                - default
      title:
        label: tt_content.finishersDefinition.EmailToReceiver.title.label
        config:
          type: input
Copied!
Good to know
Description

Every array key must match to the related finisher option name. For example, the - "[Redirect] finisher" has the option - "pageUid". If you want to make the pageUid overwritable within the form plugin, then an array key pageUid has to exists within prototypes.prototypeIdentifier.finishersDefinition.finisheridentifier.FormEngine.elements. The configuration within prototypes.prototypeIdentifier.finishersDefinition.Redirect.FormEngine.elements.pageUid must follow the TCA syntax.

[EmailToSender] 

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.implementationClassName
Data type
string
Needed by
Frontend
Mandatory
Yes
Default value
EmailToSender:
  implementationClassName: TYPO3\CMS\Form\Domain\Finishers\EmailFinisher
Copied!
Good to know
Description

Classname which implements the finisher.

options.subject 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.options.subject
Data type
string
Needed by
Frontend
Mandatory
Yes
Default value
undefined
Good to know
Description
Subject of the email.

options.recipients 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.options.recipients
Data type
array
Needed by
Frontend
Mandatory
Yes
Default value
undefined
Good to know
Description

Email addresses and names of the recipients (To).

The form editor in the backend module provides a visual UI to enter an arbitrary amount of recipients.

This option must contain a YAML hash with email addresses as keys and recipient names as values:

recipients:
  first@example.org: First Recipient
  second@example.org: Second Recipient
Copied!

options.senderAddress 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.options.senderAddress
Data type
string
Needed by
Frontend
Mandatory
Yes
Default value
undefined
Good to know
Description
Email address of the sender/ visitor (From).

options.senderName 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.options.senderName
Data type
string
Needed by
Frontend
Mandatory
No
Default value
empty string
Good to know
Description
Human-readable name of the sender.

options.replyToRecipients 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.options.replyToRecipients
Data type
array
Needed by
Frontend
Mandatory
No
Default value
undefined
Good to know
Description
Email addresses of to be used as reply-to emails.

options.carbonCopyRecipients 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.options.carbonCopyRecipients
Data type
array
Needed by
Frontend
Mandatory
No
Default value
undefined
Good to know
Description
Email addresses of the copy recipient.

options.blindCarbonCopyRecipients 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.options.blindCarbonCopyRecipients
Data type
array
Needed by
Frontend
Mandatory
No
Default value
undefined
Good to know
Description
Email address of the blind copy recipient.

options.addHtmlPart 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.options.addHtmlPart
Data type
bool
Needed by
Frontend
Mandatory
No
Default value
true
Good to know
Description
If set, mails will contain a plaintext and HTML part, otherwise only a plaintext part. That way, it can be used to disable HTML and enforce plaintext-only mails.

options.attachUploads 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.options.attachUploads
Data type
bool
Needed by
Frontend
Mandatory
No
Default value
true
Good to know
Description
If set, all uploaded items are attached to the email.

options.title 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.options.title
Data type
string
Needed by
Frontend
Mandatory
No
Default value
undefined
Good to know
Description
The title, being shown in the email. The templates are based onFluidEmail. The template renders the title field in the header section right above the email body. Do not confuse this field with the subject of the email.

options.translation.language 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.options.translation.language
Data type
string
Needed by
Frontend
Mandatory
No
Default value
undefined
Good to know
Description
If not set, the finisher options are translated depending on the current frontend language (if translations exists). This option allows you to force translations for a given language isocode, e.g 'da' or 'de'. Read Translate finisher options for more informations.

options.translation.propertiesExcludedFromTranslation 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.options.translation.propertiesExcludedFromTranslation
Data type
array
Needed by
Frontend
Mandatory
No
Default value
undefined
Good to know
Description
Localization from translation files will be skipped for all specified finisher options.

options.translation.translationFiles 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.options.translation.translationFiles
Data type
array
Needed by
Frontend
Mandatory
No
Default value
undefined
Good to know
Description
If set, this translation file(s) will be used for finisher option translations. If not set, the translation file(s) from the 'Form' element will be used. Read Translate finisher options for more informations.

options.partialRootPaths 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.options.partialRootPaths
Data type
array
Needed by
Frontend
Mandatory
No
Default value
undefined
Good to know
Description
Fluid layout paths.

options.layoutRootPaths 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.options.layoutRootPaths
Data type
array
Needed by
Frontend
Mandatory
No
Default value
undefined
Good to know
Description
Fluid partial paths.

options.variables 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.options.variables
Data type
array
Needed by
Frontend
Mandatory
No
Default value
undefined
Good to know
Description
Associative array of variables which are available inside the Fluid template.

formeditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
EmailToSender:
  formEditor:
    iconIdentifier: form-finisher
    label: formEditor.elements.Form.finisher.EmailToSender.editor.header.label
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the finisher is selected.

formeditor.label 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
EmailToSender:
  formEditor:
    iconIdentifier: form-finisher
    label: formEditor.elements.Form.finisher.EmailToSender.editor.header.label
Copied!
Good to know
Description

This label will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the finisher is selected.

formeditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value
EmailToSender:
  formEditor:
    iconIdentifier: form-finisher
    label: formEditor.elements.Form.finisher.EmailToSender.editor.header.label
    predefinedDefaults:
      options:
        subject: ''
        recipients: {  }
        senderAddress: ''
        senderName: ''
        replyToRecipients: {  }
        carbonCopyRecipients: {  }
        blindCarbonCopyRecipients: {  }
        addHtmlPart: true
        attachUploads: true
        translation:
          language: 'default'
        title: ''
Copied!
Description

Defines predefined defaults for finisher options which are prefilled, if the finisher is added to a form.

FormEngine.label 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.FormEngine.label
Data type
array
Needed by
Backend (plugin)
Mandatory
Yes
Default value
EmailToSender:
  FormEngine:
    label: tt_content.finishersDefinition.EmailToSender.label
Copied!
Good to know
Description

Finisher options are overwritable within the form plugin. If the "Override finisher settings" checkbox is selected within the form plugin, every finisher who has a - "FormEngine" configuration, is shown in a separate tab. label is the label for such a tab.

FormEngine.elements 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.EmailToSender.FormEngine.elements
Data type
array
Needed by
Backend (plugin)
Mandatory
Yes
Default value
EmailToSender:
  FormEngine:
    label: tt_content.finishersDefinition.EmailToSender.label
    elements:
      subject:
        label: tt_content.finishersDefinition.EmailToSender.subject.label
        config:
          type: input
          required: true
      recipients:
        title: tt_content.finishersDefinition.EmailToSender.recipients.label
        type: array
        section: true
        sectionItemKey: email
        sectionItemValue: name
        el:
          _arrayContainer:
            type: array
            title: tt_content.finishersDefinition.EmailToSender.recipients.item.label
            el:
              email:
                label: tt_content.finishersDefinition.EmailToSender.recipients.email.label
                config:
                  type: email
                  required: true
              name:
                label: tt_content.finishersDefinition.EmailToSender.recipients.name.label
                config:
                  type: input
      senderAddress:
        label: tt_content.finishersDefinition.EmailToSender.senderAddress.label
        config:
          type: input
          required: true
      senderName:
        label: tt_content.finishersDefinition.EmailToSender.senderName.label
        config:
          type: input
      replyToRecipients:
        title: tt_content.finishersDefinition.EmailToSender.replyToRecipients.label
        type: array
        section: true
        sectionItemKey: email
        sectionItemValue: name
        el:
          _arrayContainer:
            type: array
            title: tt_content.finishersDefinition.EmailToSender.replyToRecipients.item.label
            el:
              email:
                label: tt_content.finishersDefinition.EmailToSender.recipients.email.label
                config:
                  type: email
                  required: true
              name:
                label: tt_content.finishersDefinition.EmailToSender.recipients.name.label
                config:
                  type: input
      carbonCopyRecipients:
        title: tt_content.finishersDefinition.EmailToSender.carbonCopyRecipients.label
        type: array
        section: true
        sectionItemKey: email
        sectionItemValue: name
        el:
          _arrayContainer:
            type: array
            title: tt_content.finishersDefinition.EmailToSender.carbonCopyRecipients.item.label
            el:
              email:
                label: tt_content.finishersDefinition.EmailToSender.recipients.email.label
                config:
                  type: email
                  required: true
              name:
                label: tt_content.finishersDefinition.EmailToSender.recipients.name.label
                config:
                  type: input
      blindCarbonCopyRecipients:
        title: tt_content.finishersDefinition.EmailToSender.blindCarbonCopyRecipients.label
        type: array
        section: true
        sectionItemKey: email
        sectionItemValue: name
        el:
          _arrayContainer:
            type: array
            title: tt_content.finishersDefinition.EmailToSender.blindCarbonCopyRecipients.item.label
            el:
              email:
                label: tt_content.finishersDefinition.EmailToSender.recipients.email.label
                config:
                  type: email
                  required: true
              name:
                label: tt_content.finishersDefinition.EmailToSender.recipients.name.label
                config:
                  type: input
      addHtmlPart:
        label: tt_content.finishersDefinition.EmailToSender.addHtmlPart.label
        config:
          type: check
          default: 1
      translation:
        language:
          label: tt_content.finishersDefinition.EmailToSender.language.label
          config:
            type: select
            renderType: selectSingle
            minitems: 1
            maxitems: 1
            size: 1
            items:
              10:
                - tt_content.finishersDefinition.EmailToSender.language.1
                - default
      title:
        label: tt_content.finishersDefinition.EmailToSender.title.label
        config:
          type: input
Copied!
Good to know
Description

Every array key must match to the related finisher option name. For example, the - "[Redirect] finisher" has the option - "pageUid". If you want to make the pageUid overwritable within the form plugin, then an array key pageUid has to exists within prototypes.prototypeIdentifier.finishersDefinition.finisheridentifier.FormEngine.elements. The configuration within prototypes.prototypeIdentifier.finishersDefinition.Redirect.FormEngine.elements.pageUid must follow the TCA syntax.

[DeleteUploads] 

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.DeleteUploads.implementationClassName
Data type
string
Needed by
Frontend
Mandatory
Yes
Default value
DeleteUploads:
  implementationClassName: TYPO3\CMS\Form\Domain\Finishers\DeleteUploadsFinisher
Copied!
Good to know
Description
Array which defines the available finishers. Every key within this array is called the <finisherIdentifier>

formeditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.DeleteUploads.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
DeleteUploads:
  formEditor:
    iconIdentifier: form-finisher
    label: formEditor.elements.Form.finisher.DeleteUploads.editor.header.label
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the finisher is selected.

formeditor.label 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.DeleteUploads.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
DeleteUploads:
  formEditor:
    iconIdentifier: form-finisher
    label: formEditor.elements.Form.finisher.DeleteUploads.editor.header.label
Copied!
Good to know
Description

This label will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the finisher is selected.

[FlashMessage] 

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.FlashMessage.implementationClassName
Data type
string
Needed by
Frontend
Mandatory
Yes
Default value
FlashMessage:
  implementationClassName: TYPO3\CMS\Form\Domain\Finishers\FlashMessageFinisher
Copied!
Good to know
Description

Classname which implements the finisher.

options.messageBody 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.FlashMessage.options.messageBody
Data type
string
Needed by
Frontend
Mandatory
Yes
Default value
null
Good to know
Description
The flash message body TEXT.

options.messageTitle 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.FlashMessage.options.messageTitle
Data type
string
Needed by
Frontend
Mandatory
No
Default value
empty string
Good to know
Description
The flash message title.

options.messageArguments 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.FlashMessage.options.messageArguments
Data type
array
Needed by
Frontend
Mandatory
No
Default value
empty array
Good to know
Description
The flash message arguments, if needed.

options.messageCode 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.FlashMessage.options.messageCode
Data type
int
Needed by
Frontend
Mandatory
Yes
Default value
null
Good to know
Description
The flash message code, if needed.

options.severity 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.FlashMessage.options.severity
Data type
Enum<TYPO3CMSCoreTypeContextualFeedbackSeverity>|int
Needed by
Frontend
Mandatory
No
Default value
\TYPO3\CMS\Core\Type\ContextualFeedbackSeverity::OK (0)
Good to know
Description

The flash message severity code. See EXT:core/Classes/Type/ContextualFeedbackSeverity.php (GitHub) cases for the codes.

Important: in YAML-based form definitions, the PHP enums cannot be used.

options.translation.propertiesExcludedFromTranslation 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.FlashMessage.options.translation.propertiesExcludedFromTranslation
Data type
array
Needed by
Frontend
Mandatory
No
Default value
undefined
Good to know
Description
Localization from translation files will be skipped for all specified finisher options.

options.translation.translationFiles 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.FlashMessage.options.translation.translationFiles
Data type
string/ array
Needed by
Frontend
Mandatory
No
Default value
undefined
Good to know
Description
If set, this translation file(s) will be used for finisher option translations. If not set, the translation file(s) from the 'Form' element will be used. Read Translate finisher options for more informations.

formeditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.FlashMessage.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
FlashMessage:
  formEditor:
    iconIdentifier: form-finisher
    label: formEditor.elements.Form.finisher.FlashMessage.editor.header.label
    predefinedDefaults:
      options:
        messageBody: ''
        messageTitle: ''
        messageArguments: ''
        messageCode: 0
        severity: 0
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the finisher is selected.

formeditor.label 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.FlashMessage.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
FlashMessage:
  formEditor:
    iconIdentifier: form-finisher
    label: formEditor.elements.Form.finisher.FlashMessage.editor.header.label
    predefinedDefaults:
      options:
        messageBody: ''
        messageTitle: ''
        messageArguments: ''
        messageCode: 0
        severity: 0
Copied!
Good to know
Description

This label will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the finisher is selected.

formeditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.FlashMessage.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value
FlashMessage:
  formEditor:
    iconIdentifier: form-finisher
    label: formEditor.elements.Form.finisher.FlashMessage.editor.header.label
    predefinedDefaults:
      options:
        messageBody: ''
        messageTitle: ''
        messageArguments: ''
        messageCode: 0
        severity: 0
Copied!
Description

Defines predefined defaults for finisher options which are prefilled, if the finisher is added to a form.

[Redirect] 

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.Redirect.implementationClassName
Data type
string
Needed by
Frontend
Mandatory
Yes
Default value
Redirect:
  implementationClassName: TYPO3\CMS\Form\Domain\Finishers\RedirectFinisher
Copied!
Good to know
Description

Classname which implements the finisher.

options.pageUid 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.Redirect.options.pageUid
Data type
int
Needed by
Frontend
Mandatory
Yes
Default value
1
Good to know
Description
Redirect to this page uid.

options.additionalParameters 

Option path
prototypes.prototypeIdentifier.finishersDefinition.Redirect.options.additionalParameters
Data type
string
Needed by
Frontend
Mandatory
No
Default value
empty string
Good to know
Description
Additional parameters which should be used on the target page.

options.fragment 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.Redirect.options.fragment
Data type
string
Needed by
Frontend
Mandatory
No
Default value
empty string
Good to know
Description
Add a fragment (e.g. #c9 or #foo) to the redirect link. The # character can be omitted.

options.delay 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.Redirect.options.delay
Data type
int
Needed by
Frontend
Mandatory
No
Default value
0
Good to know
Description
The redirect delay in seconds.

options.statusCode 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.Redirect.options.statusCode
Data type
int
Needed by
Frontend
Mandatory
No
Default value
303
Good to know
Description
The HTTP status code for the redirect. Default is "303 See Other".

options.translation.propertiesExcludedFromTranslation 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.Redirect.options.translation.propertiesExcludedFromTranslation
Data type
array
Needed by
Frontend
Mandatory
No
Default value
undefined
Good to know
Description
Localization from translation files will be skipped for all specified finisher options.

options.translation.translationFiles 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.Redirect.options.translation.translationFiles
Data type
string/ array
Needed by
Frontend
Mandatory
No
Default value
undefined
Good to know
Description
If set, this translation file(s) will be used for finisher option translations. If not set, the translation file(s) from the 'Form' element will be used. Read Translate finisher options for more informations.

formeditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.Redirect.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Redirect:
  formEditor:
    iconIdentifier: form-finisher
    label: formEditor.elements.Form.finisher.Redirect.editor.header.label
    predefinedDefaults:
      options:
        pageUid: ''
        additionalParameters: ''
        fragment: ''
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the finisher is selected.

formeditor.label 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.Redirect.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Redirect:
  formEditor:
    iconIdentifier: form-finisher
    label: formEditor.elements.Form.finisher.Redirect.editor.header.label
    predefinedDefaults:
      options:
        pageUid: ''
        additionalParameters: ''
        fragment: ''
Copied!
Good to know
Description

This label will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the finisher is selected.

formeditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.Redirect.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value
Redirect:
  formEditor:
    iconIdentifier: form-finisher
    label: formEditor.elements.Form.finisher.Redirect.editor.header.label
    predefinedDefaults:
      options:
        pageUid: ''
        additionalParameters: ''
        fragment: ''
Copied!
Description

Defines predefined defaults for finisher options which are prefilled, if the finisher is added to a form.

FormEngine.label 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.Redirect.FormEngine.label
Data type
array
Needed by
Backend (plugin)
Mandatory
Yes
Default value
Redirect:
  FormEngine:
    label: tt_content.finishersDefinition.Redirect.label
Copied!
Good to know
Description

Finisher options are overwritable within the form plugin. If the "Override finisher settings" checkbox is selected within the form plugin, every finisher who has a - "FormEngine" configuration, is shown in a separate tab. label is the label for such a tab.

FormEngine.elements 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.Redirect.FormEngine.elements
Data type
array
Needed by
Backend (plugin)
Mandatory
Yes
Default value
Redirect:
  FormEngine:
    label: tt_content.finishersDefinition.Redirect.label
    elements:
      pageUid:
        label: tt_content.finishersDefinition.Redirect.pageUid.label
        config:
          type: group
          allowed: pages
          size: 1
          minitems: 1
          maxitems: 1
          fieldWizard:
            recordsOverview:
              disabled: 1
      additionalParameters:
        label: tt_content.finishersDefinition.Redirect.additionalParameters.label
        config:
          type: input
     fragment:
       label: tt_content.finishersDefinition.Redirect.fragment.label
       config:
         type: input
Copied!
Good to know
Description

Every array key must match to the related finisher option name. For example, the - "[Redirect] finisher" has the option - "pageUid". If you want to make the pageUid overwritable within the form plugin, then an array key pageUid has to exists within prototypes.prototypeIdentifier.finishersDefinition.finisheridentifier.FormEngine.elements. The configuration within prototypes.prototypeIdentifier.finishersDefinition.Redirect.FormEngine.elements.pageUid must follow the TCA syntax.

[SaveToDatabase] 

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.SaveToDatabase.implementationClassName
Data type
string
Needed by
Frontend
Mandatory
Yes
Default value
SaveToDatabase:
  implementationClassName: TYPO3\CMS\Form\Domain\Finishers\SaveToDatabaseFinisher
Copied!
Good to know
Description

Classname which implements the finisher.

options.table 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.SaveToDatabase.options.table
Data type
string
Needed by
Frontend
Mandatory
Yes
Default value
null
Good to know
Description
Insert or update values into this table.

options.mode 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.SaveToDatabase.options.mode
Data type
string
Needed by
Frontend
Mandatory
No
Default value
'insert'
Possible values
insert/ update
Good to know
Description

insert will create a new database row with the values from the submitted form and/or some predefined values. @see options.elements and options.databaseFieldMappings

update will update a given database row with the values from the submitted form and/or some predefined values. 'options.whereClause' is then required.

options.whereClause 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.SaveToDatabase.options.whereClause
Data type
array
Needed by
Frontend
Mandatory
Yes, if mode = update
Default value
empty array
Good to know
Description
This where clause will be used for a database update action.

options.elements 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.SaveToDatabase.options.elements
Data type
array
Needed by
Frontend
Mandatory
Yes
Default value
empty array
Good to know
Description
Use options.elements to map form element values to existing database columns. Each key within options.elements has to match with a form element identifier. The value for each key within options.elements is an array with additional informations.

options.elements.<formElementIdentifier>.mapOnDatabaseColumn 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.SaveToDatabase.options.elements.<formElementIdentifier>.mapOnDatabaseColumn
Data type
string
Needed by
Frontend
Mandatory
Yes
Default value
undefined
Good to know
Description
The value from the submitted form element with the identifier <formElementIdentifier> will be written into this database column.

options.elements.<formElementIdentifier>.saveFileIdentifierInsteadOfUid 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.SaveToDatabase.options.elements.<formElementIdentifier>.saveFileIdentifierInsteadOfUid
Data type
bool
Needed by
Frontend
Mandatory
No
Default value
false
Good to know
Description

Set this to true if the database column should not be written if the value from the submitted form element with the identifier <formElementIdentifier> is empty (think about password fields etc.).

This setting only rules for form elements which creates a FAL object like FileUpload or ImageUpload. By default, the uid of the FAL object will be written into the database column. Set this to true if you want to store the FAL identifier (1:/user_uploads/some_uploaded_pic.jpg) instead.

options.elements.<formElementIdentifier>.skipIfValueIsEmpty 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.SaveToDatabase.options.elements.<formElementIdentifier>.skipIfValueIsEmpty
Data type
bool
Needed by
Frontend
Mandatory
No
Default value
false
Good to know
Description
Set this to true if the database column should not be written if the value from the submitted form element with the identifier <formElementIdentifier> is empty (think about password fields etc.). Empty means strings without content, whitespace is valid content.

options.elements.<formElementIdentifier>.hashed 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.SaveToDatabase.options.elements.<formElementIdentifier>.hashed
Data type
bool
Needed by
Frontend
Mandatory
No
Default value
false
Good to know
Description
Set this to true if the value from the submitted form element should be hashed before writing into the database.

options.elements.<formElementIdentifier>.dateFormat 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.SaveToDatabase.options.elements.<formElementIdentifier>.dateFormat
Data type
string
Needed by
Frontend
Mandatory
No
Default value
'U'
Good to know
Description
If the internal Datatype is DateTime which is true for the form element types "DatePicker" and "Date", the object needs to be converted into a string value. This option allows you to define the format of the date. You can use every format accepted by PHP's date() function (https://php.net/manual/en/function.date.php#refsect1-function.date-parameters). The default value is "U" which means a Unix timestamp.

options.databaseColumnMappings 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.SaveToDatabase.options.databaseColumnMappings
Data type
array
Needed by
Frontend
Mandatory
No
Default value
empty array
Good to know
Description

Use this to map database columns to static values. Each key within options.databaseColumnMappings has to match with an existing database column. The value for each key within options.databaseColumnMappings is an array with additional informations.

This mapping is done before the options.element mapping. This means if you map a database column to a value through options.databaseColumnMappings and map a submitted form element value to the same database column through options.element, the submitted form element value will override the value you set within options.databaseColumnMappings.

options.databaseColumnMappings.<databaseColumnName>.value 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.SaveToDatabase.options.databaseColumnMappings.<databaseColumnName>.value
Data type
string
Needed by
Frontend
Mandatory
Yes
Default value
undefined
Good to know
Description

The value which will be written to the database column. You can also use the FormRuntime accessor feature to access every getable property from the FormRuntime In short: use something like {<formElementIdentifier>} to get the value from the submitted form element with the identifier <formElementIdentifier>.

If you use the FormRuntime accessor feature within options.databaseColumnMappings the functionality is nearly equal to the options.elements configuration variant.

options.databaseColumnMappings.<databaseColumnName>.skipIfValueIsEmpty 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.SaveToDatabase.options.databaseColumnMappings.<databaseColumnName>.skipIfValueIsEmpty
Data type
bool
Needed by
Frontend
Mandatory
No
Default value
undefined
Good to know
Description
Set this to true if the database column should not be written if the value from options.databaseColumnMappings. <databaseColumnName>.value is empty. Empty means strings without content, whitespace is valid content.

options.translation.propertiesExcludedFromTranslation 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.SaveToDatabase.options.translation.propertiesExcludedFromTranslation
Data type
array
Needed by
Frontend
Mandatory
No
Default value
undefined
Good to know
Description
Localization from translation files will be skipped for all specified finisher options.

options.translation.translationFiles 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.SaveToDatabase.options.translation.translationFiles
Data type
string/ array
Needed by
Frontend
Mandatory
No
Default value
undefined
Good to know
Description
If set, this translation file(s) will be used for finisher option translations. If not set, the translation file(s) from the 'Form' element will be used. Read Translate finisher options for more informations.

formeditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.SaveToDatabase.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
SaveToDatabase:
  formEditor:
    iconIdentifier: form-finisher
    label: formEditor.elements.Form.finisher.SaveToDatabase.editor.header.label
    predefinedDefaults:
      options: {  }
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the finisher is selected.

formeditor.label 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.SaveToDatabase.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
SaveToDatabase:
  formEditor:
    iconIdentifier: form-finisher
    label: formEditor.elements.Form.finisher.SaveToDatabase.editor.header.label
    predefinedDefaults:
      options: {  }
Copied!
Good to know
Description

This label will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the finisher is selected.

formeditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.finishersDefinition.SaveToDatabase.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value
SaveToDatabase:
  formEditor:
    iconIdentifier: form-finisher
    label: formEditor.elements.Form.finisher.SaveToDatabase.editor.header.label
    predefinedDefaults:
      options: {  }
Copied!
Description

Defines predefined defaults for finisher options which are prefilled, if the finisher is added to a form.

[validatorsDefinition] 

Properties 

[validatorsDefinition] 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition
Data type
array
Needed by
Frontend/ Backend (form editor)
Mandatory
Yes
Default value
prototypes:
  <prototypeIdentifier>:
    validatorsDefinition:
      [...]
Copied!
Good to know
Description
Array which defines the available serverside validators. Every key within this array is called the <validatoridentifier>.

<validatorIdentifier> 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.<validatorIdentifier>
Data type
array
Needed by
Frontend/ Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
prototypes:
  standard:
    NotEmpty:
      [...]
    DateTime:
      [...]
    Alphanumeric:
      [...]
    Text:
      [...]
    StringLength:
      [...]
    EmailAddress:
      [...]
    Integer:
      [...]
    Float:
      [...]
    NumberRange:
      [...]
    RegularExpression:
      [...]
    Count:
      [...]
    FileSize:
      [...]
Copied!
Related options
Good to know
Description
This array key identifies a validator. This identifier could be used to attach a validator to a form element.

Common <validatorIdentifier> properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.<validatorIdentifier>.implementationClassName
Data type
string
Needed by
Frontend
Mandatory
Yes
Default value
Depends (see concrete validators configuration)
Good to know
Description

Classname which implements the validator.

options 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.<validatorIdentifier>.options
Data type
array
Needed by
Frontend/ Backend (form editor)
Mandatory
Depends (see concrete validators configuration)
Default value
Depends (see concrete validators configuration)
Good to know
Description
Array with validator options.

formEditor 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.<validatorIdentifier>.formEditor
Data type
array
Needed by
Backend (form editor)
Mandatory
Recommended
Default value
Depends (see concrete validators configuration)
Description
Array with configurations for the form editor

formeditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.<validatorIdentifier>.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete validators configuration)
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the validator is selected.

formeditor.label 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.<validatorIdentifier>.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value
Depends (see concrete validators configuration)
Good to know
Description

This label will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the validator is selected.

formeditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.<validatorIdentifier>.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value
Depends (see concrete validators configuration)
Description

Defines predefined defaults for validator options which are prefilled, if the validator is added to a form element.

Concrete configurations 

[Alphanumeric] 

Validation error codes 

  • Error code: 1221551320
  • Error message: The given subject was not a valid alphanumeric string.

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.Alphanumeric.implementationClassName
Data type
string
Needed by
Frontend
Mandatory
Yes
Default value (for prototype 'standard')
Alphanumeric:
  implementationClassName: TYPO3\CMS\Extbase\Validation\Validator\AlphanumericValidator
Copied!
Good to know
Description

Classname which implements the validator.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.Alphanumeric.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Alphanumeric:
  formEditor:
    iconIdentifier: form-validator
    label: formEditor.elements.TextMixin.editor.validators.Alphanumeric.label
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the validator is selected.

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.Alphanumeric.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Alphanumeric:
  formEditor:
    iconIdentifier: form-validator
    label: formEditor.elements.TextMixin.editor.validators.Alphanumeric.label
Copied!
Good to know
Description

This label will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the validator is selected.

[Count] 

Validation error codes 

  • Error code: 1475002976
  • Error message: You must enter a countable subject.
  • Error code: 1475002994
  • Error message: You must select between %s to %s elements.

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.Count.implementationClassName
Data type
string
Needed by
Frontend
Mandatory
Yes
Default value (for prototype 'standard')
Count:
  implementationClassName: TYPO3\CMS\Form\Mvc\Validation\CountValidator
Copied!
Good to know
Description

Classname which implements the validator.

options.minimum 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.Count.options.minimum
Data type
int
Needed by
Frontend
Mandatory
Yes
Default value (for prototype 'standard')
undefined
Description
The minimum count to accept.

options.maximum 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.Count.options.maximum
Data type
int
Needed by
Frontend
Mandatory
Yes
Default value (for prototype 'standard')
undefined
Description
The maximum count to accept.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.Count.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Count:
  formEditor:
    iconIdentifier: form-validator
    label: formEditor.elements.MultiSelectionMixin.validators.Count.editor.header.label
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the validator is selected.

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.Count.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Count:
  formEditor:
    iconIdentifier: form-validator
    label: formEditor.elements.MultiSelectionMixin.validators.Count.editor.header.label
Copied!
Good to know
Description

This label will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the validator is selected.

formEditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.Count.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
Count:
  formEditor:
    predefinedDefaults:
      options:
        minimum: ''
        maximum: ''
Copied!
Description

Defines predefined defaults for validator options which are prefilled, if the validator is added to a form element.

[DateRange] 

Validation error codes 

  • Error code: 1521293685
  • Error message: You must enter an instance of DateTime.
  • Error code: 1521293686
  • Error message: You must select a date before %s.
  • Error code: 1521293687
  • Error message: You must select a date after %s.

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.DateRange.implementationClassName
Data type
string
Needed by
Frontend
Mandatory
Yes
Default value (for prototype 'standard')
Count:
  implementationClassName: TYPO3\CMS\Form\Mvc\Validation\DateRangeValidator
Copied!
Good to know
Description

Classname which implements the validator.

options.format 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.DateRange.options.format
Data type
string
Needed by
Frontend
Mandatory
Yes
Default value (for prototype 'standard')
DateRange:
  options:
    format: Y-m-d
Copied!
Description
The format of the minimum and maximum option.

options.minimum 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.DateRange.options.minimum
Data type
int
Needed by
Frontend
Mandatory
Yes
Default value (for prototype 'standard')
undefined
Description
The minimum date formatted as Y-m-d.

options.maximum 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.DateRange.options.maximum
Data type
int
Needed by
Frontend
Mandatory
Yes
Default value (for prototype 'standard')
undefined
Description
The maximum date formatted as Y-m-d.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.DateRange.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
DateRange:
  formEditor:
    iconIdentifier: form-validator
    label: formEditor.elements.FormElement.validators.DateRange.editor.header.label
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the validator is selected.

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.DateRange.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
DateRange:
  formEditor:
    iconIdentifier: form-validator
    label: formEditor.elements.FormElement.validators.DateRange.editor.header.label
Copied!
Good to know
Description

This label will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the validator is selected.

formEditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.DateRange.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
DateRange:
  formEditor:
    predefinedDefaults:
      options:
        minimum: ''
        maximum: ''
Copied!
Description

Defines predefined defaults for validator options which are prefilled, if the validator is added to a form element.

[DateTime] 

validation error codes 

  • Error code: 1238087674
  • Error message: The given subject was not a valid DateTime. Got: '%s'

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.DateTime.implementationClassName
Data type
string
Needed by
Frontend
Mandatory
Yes
Default value (for prototype 'standard')
DateTime:
  implementationClassName: TYPO3\CMS\Extbase\Validation\Validator\DateTimeValidator
Copied!
Good to know
Description

Classname which implements the validator.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.DateTime.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
DateTime:
  formEditor:
    iconIdentifier: form-validator
    label: formEditor.elements.DatePicker.validators.DateTime.editor.header.label
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the validator is selected.

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.DateTime.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
DateTime:
  formEditor:
    iconIdentifier: form-validator
    label: formEditor.elements.DatePicker.validators.DateTime.editor.header.label
Copied!
Good to know
Description

This label will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the validator is selected.

[EmailAddress] 

Validation error codes 

  • Error code: 1221559976
  • Error message: The given subject was not a valid email address.

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.EmailAddress.implementationClassName
Data type
string
Needed by
Frontend
Mandatory
Yes
Default value (for prototype 'standard')
EmailAddress:
  formEditor:
    iconIdentifier: form-validator
    label: formEditor.elements.TextMixin.editor.validators.EmailAddress.label
Copied!
Good to know
Description

Classname which implements the validator.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.EmailAddress.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
EmailAddress:
  formEditor:
    iconIdentifier: form-validator
    label: formEditor.elements.TextMixin.editor.validators.EmailAddress.label
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the validator is selected.

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.EmailAddress.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
EmailAddress:
  formEditor:
    iconIdentifier: form-validator
    label: formEditor.elements.TextMixin.editor.validators.EmailAddress.label
Copied!
Good to know
Description

This label will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the validator is selected.

[FileSize] 

Validation error codes 

  • Error code: 1505303626
  • Error message: You must enter an instance of TYPO3CMSExtbaseDomainModelFileReference or TYPO3CMSCoreResourceFile.
  • Error code: 1505305752
  • Error message: You must select a file that is larger than %s in size.
  • Error code: 1505305753
  • Error message: You must select a file that is no larger than %s.

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.FileSize.implementationClassName
Data type
string
Needed by
Frontend
Mandatory
Yes
Default value (for prototype 'standard')
FileSize:
  implementationClassName: TYPO3\CMS\Form\Mvc\Validation\FileSizeValidator
Copied!
Good to know
Description

Classname which implements the validator.

options.minimum 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.FileSize.options.minimum
Data type
string
Needed by
Frontend
Mandatory
Yes
Default value (for prototype 'standard')
undefined
Description
The minimum filesize to accept. Use the format <size>B|K|M|G. For example: 10M means 10 Megabytes.

options.maximum 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.FileSize.options.maximum
Data type
string
Needed by
Frontend
Mandatory
Yes
Default value (for prototype 'standard')
undefined
Description
The maximum filesize to accept. Use the format <size>B|K|M|G. For example: 10M means 10 Megabytes.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.FileSize.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
FileSize:
  formEditor:
    iconIdentifier: form-validator
    label: formEditor.elements.FileUploadMixin.validators.FileSize.editor.header.label
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the validator is selected.

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.FileSize.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
FileSize:
  formEditor:
    iconIdentifier: form-validator
    label: formEditor.elements.FileUploadMixin.validators.FileSize.editor.header.label
Copied!
Good to know
Description

This label will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the validator is selected.

formEditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.FileSize.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
FileSize:
  formEditor:
    predefinedDefaults:
      options:
        minimum: '0B'
        maximum: '10M'
Copied!
Description

Defines predefined defaults for validator options which are prefilled, if the validator is added to a form element.

[Float] 

Validation error codes 

  • Error code: 1221560288
  • Error message: The given subject was not a valid float.

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.Float.implementationClassName
Data type
string
Needed by
Frontend
Mandatory
Yes
Default value (for prototype 'standard')
Float:
  implementationClassName: TYPO3\CMS\Extbase\Validation\Validator\FloatValidator
Copied!
Good to know
Description

Classname which implements the validator.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.Float.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Float:
  formEditor:
    iconIdentifier: form-validator
    label: formEditor.elements.TextMixin.editor.validators.Float.label
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the validator is selected.

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.Float.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Float:
  formEditor:
    iconIdentifier: form-validator
    label: formEditor.elements.TextMixin.editor.validators.Float.label
Copied!
Good to know
Description

This label will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the validator is selected.

[Integer] 

Validation error codes 

  • Error code: 1221560494
  • Error message: The given subject was not a valid integer.

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.Integer.implementationClassName
Data type
string
Needed by
Frontend
Mandatory
Yes
Default value (for prototype 'standard')
Integer:
  implementationClassName: TYPO3\CMS\Extbase\Validation\Validator\IntegerValidator
Copied!
Good to know
Description

Classname which implements the validator.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.Integer.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Integer:
  formEditor:
    iconIdentifier: form-validator
    label: formEditor.elements.TextMixin.editor.validators.Integer.label
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the validator is selected.

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.Integer.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Integer:
  formEditor:
    iconIdentifier: form-validator
    label: formEditor.elements.TextMixin.editor.validators.Integer.label
Copied!
Good to know
Description

This label will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the validator is selected.

[NotEmpty] 

Validation error codes 

  • Error code: 1221560910
  • Error message: The given subject was NULL.
  • Error code: 1221560718
  • Error message: The given subject was empty.
  • Error code: 1347992400
  • Error message: The given subject was empty.
  • Error code: 1347992453
  • Error message: The given subject was empty.

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.NotEmpty.implementationClassName
Data type
string
Needed by
Frontend
Mandatory
Yes
Default value (for prototype 'standard')
NotEmpty:
  implementationClassName: TYPO3\CMS\Extbase\Validation\Validator\NotEmptyValidator
Copied!
Good to know
Description

Classname which implements the validator.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.NotEmpty.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
NotEmpty:
  formEditor:
    iconIdentifier: form-validator
    label: formEditor.elements.FormElement.editor.requiredValidator.label
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the validator is selected.

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.NotEmpty.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
NotEmpty:
  formEditor:
    iconIdentifier: form-validator
    label: formEditor.elements.FormElement.editor.requiredValidator.label
Copied!
Good to know
Description

This label will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the validator is selected.

[Number] 

Validation error codes 

  • Error code: 1221563685
  • Error message: The given subject was not a valid number.

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.Number.implementationClassName
Data type
string
Needed by
Frontend
Mandatory
Yes
Default value (for prototype 'standard')
Number:
  implementationClassName: TYPO3\CMS\Extbase\Validation\Validator\NumberValidator
Copied!
Good to know
Description

Classname which implements the validator.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.Number.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Number:
  formEditor:
    iconIdentifier: form-validator
    label: formEditor.elements.TextMixin.editor.validators.Number.label
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the validator is selected.

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.Number.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Number:
  formEditor:
    iconIdentifier: form-validator
    label: formEditor.elements.TextMixin.editor.validators.Number.label
Copied!
Good to know
Description

This label will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the validator is selected.

[NumberRange] 

Validation error codes 

  • Error code: 1221563685
  • Error message: The given subject was not a valid number.
  • Error code: 1221561046
  • Error message: The given subject was not in the valid range (%s - %s).

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.NumberRange.implementationClassName
Data type
string
Needed by
Frontend
Mandatory
Yes
Default value (for prototype 'standard')
NumberRange:
  implementationClassName: TYPO3\CMS\Extbase\Validation\Validator\NumberRangeValidator
Copied!
Good to know
Description

Classname which implements the validator.

options.minimum 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.NumberRange.options.minimum
Data type
int
Needed by
Frontend
Mandatory
Yes
Default value (for prototype 'standard')
undefined
Description
The minimum value to accept.

options.maximum 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.NumberRange.options.maximum
Data type
int
Needed by
Frontend
Mandatory
Yes
Default value (for prototype 'standard')
undefined
Description
The maximum value to accept.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.NumberRange.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
NumberRange:
  formEditor:
    iconIdentifier: form-validator
    label: formEditor.elements.TextMixin.editor.validators.NumberRange.label
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the validator is selected.

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.NumberRange.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
NumberRange:
  formEditor:
    iconIdentifier: form-validator
    label: formEditor.elements.TextMixin.editor.validators.NumberRange.label
Copied!
Good to know
Description

This label will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the validator is selected.

formEditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.NumberRange.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
NumberRange:
  formEditor:
    predefinedDefaults:
      options:
        minimum: ''
        maximum: ''
Copied!
Description

Defines predefined defaults for validator options which are prefilled, if the validator is added to a form element.

[RegularExpression] 

Validation error codes 

  • Error code: 1221565130
  • Error message: The given subject did not match the pattern.

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.RegularExpression.implementationClassName
Data type
string
Needed by
Frontend
Mandatory
Yes
Default value (for prototype 'standard')
RegularExpression:
  implementationClassName: TYPO3\CMS\Extbase\Validation\Validator\RegularExpressionValidator
Copied!
Good to know
Description

Classname which implements the validator.

options.regularExpression 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.RegularExpression.options.regularExpression
Data type
string
Needed by
Frontend
Mandatory
Yes
Default value (for prototype 'standard')
undefined
Description
The regular expression to use for validation, used as given.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.RegularExpression.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
RegularExpression:
  formEditor:
    iconIdentifier: form-validator
    label: formEditor.elements.TextMixin.editor.validators.RegularExpression.label
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the validator is selected.

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.RegularExpression.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
RegularExpression:
  formEditor:
    iconIdentifier: form-validator
    label: formEditor.elements.TextMixin.editor.validators.RegularExpression.label
Copied!
Good to know
Description

This label will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the validator is selected.

formEditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.RegularExpression.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
RegularExpression:
  formEditor:
    predefinedDefaults:
      options:
        regularExpression: ''
Copied!
Description

Defines predefined defaults for validator options which are prefilled, if the validator is added to a form element.

[StringLength] 

Validation error codes 

  • Error code: 1238110957
  • Error message: The given object could not be converted to a string.
  • Error code: 1269883975
  • Error message: The given value was not a valid string.
  • Error code: 1428504122
  • Error message: The length of the given string was not between %s and %s characters.
  • Error code: 1238108068
  • Error message: The length of the given string is less than %s characters.
  • Error code: 1238108069
  • Error message: The length of the given string exceeded %s characters.

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.StringLength.implementationClassName
Data type
string
Needed by
Frontend
Mandatory
Yes
Default value (for prototype 'standard')
StringLength:
  implementationClassName: TYPO3\CMS\Extbase\Validation\Validator\StringLengthValidator
Copied!
Good to know
Description

Classname which implements the validator.

options.minimum 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.StringLength.options.minimum
Data type
int
Needed by
Frontend
Mandatory
Yes
Default value (for prototype 'standard')
undefined
Description
Minimum length for a valid string.

options.maximum 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.StringLength.options.maximum
Data type
int
Needed by
Frontend
Mandatory
Yes
Default value (for prototype 'standard')
undefined
Description
Maximum length for a valid string.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.StringLength.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
StringLength:
  formEditor:
    iconIdentifier: form-validator
    label: formEditor.elements.TextMixin.editor.validators.StringLength.label
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the validator is selected.

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.StringLength.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
StringLength:
  formEditor:
    iconIdentifier: form-validator
    label: formEditor.elements.TextMixin.editor.validators.StringLength.label
Copied!
Good to know
Description

This label will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the validator is selected.

formEditor.predefinedDefaults 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.StringLength.formEditor.predefinedDefaults
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (for prototype 'standard')
StringLength:
  formEditor:
    predefinedDefaults:
      options:
        minimum: ''
        maximum: ''
Copied!
Description

Defines predefined defaults for validator options which are prefilled, if the validator is added to a form element.

[Text] 

Validation error codes 

  • Error code: 1221565786
  • Error message: The given subject was not a valid text (e.g. contained XML tags).

Properties 

implementationClassName 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.Text.implementationClassName
Data type
string
Needed by
Frontend
Mandatory
Yes
Default value (for prototype 'standard')
Text:
  implementationClassName: TYPO3\CMS\Extbase\Validation\Validator\TextValidator
Copied!
Good to know
Description

Classname which implements the validator.

formEditor.iconIdentifier 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.Text.formEditor.iconIdentifier
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Text:
  formEditor:
    iconIdentifier: form-validator
    label: formEditor.elements.TextMixin.editor.validators.Text.label
Copied!
Description

An icon identifier which must be registered through the \TYPO3\CMS\Core\Imaging\IconRegistry . This icon will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the validator is selected.

formEditor.label 

Option path
prototypes.<prototypeIdentifier>.validatorsDefinition.Text.formEditor.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Text:
  formEditor:
    iconIdentifier: form-validator
    label: formEditor.elements.TextMixin.editor.validators.Text.label
Copied!
Good to know
Description

This label will be shown within the - "Inspector [CollectionElementHeaderEditor]" if the validator is selected.

[formEditor] 

Properties 

translationFiles 

Option path
prototypes.<prototypeIdentifier>.formeditor.translationFiles
Data type
string/ array
Needed by
Backend (form editor)
Mandatory
Yes
Default value (prototype 'standard')
formEditor:
  translationFiles:
    10: 'EXT:form/Resources/Private/Language/Database.xlf'
Copied!
Good to know
Description
Filesystem path(s) to translation files which should be searched for form editor translations.

dynamicJavaScriptModules.app 

Option path
prototypes.<prototypeIdentifier>.formeditor.dynamicJavaScriptModules.app
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (prototype 'standard')
formEditor:
  dynamicJavaScriptModules:
    app: TYPO3/CMS/Form/Backend/FormEditor
    mediator: TYPO3/CMS/Form/Backend/FormEditor/Mediator
    viewModel: TYPO3/CMS/Form/Backend/FormEditor/ViewModel
Copied!
Good to know
Description
ES6 module specifier for the form editor JavaScript app.

dynamicJavaScriptModules.mediator 

Option path
prototypes.<prototypeIdentifier>.formeditor.dynamicJavaScriptModules.mediator
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (prototype 'standard')
formEditor:
  dynamicJavaScriptModules:
    app: TYPO3/CMS/Form/Backend/FormEditor
    mediator: TYPO3/CMS/Form/Backend/FormEditor/Mediator
    viewModel: TYPO3/CMS/Form/Backend/FormEditor/ViewModel
Copied!
Good to know
Description
ES6 module specifier for the form editor JavaScript mediator.

dynamicJavaScriptModules.viewModel 

Option path
prototypes.<prototypeIdentifier>.formeditor.dynamicJavaScriptModules.viewModel
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (prototype 'standard')
formEditor:
  dynamicJavaScriptModules:
    app: TYPO3/CMS/Form/Backend/FormEditor
    mediator: TYPO3/CMS/Form/Backend/FormEditor/Mediator
    viewModel: TYPO3/CMS/Form/Backend/FormEditor/ViewModel
Copied!
Good to know
Description
ES6 module specifier for the form editor JavaScript view model.

dynamicJavaScriptModules.additionalViewModelModules 

Option path
prototypes.<prototypeIdentifier>.formeditor.dynamicJavaScriptModules.additionalViewModelModules
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (prototype 'standard')
undefined
Good to know
Description
Array with ES6 module specifiers for custom JavaScript modules.

addInlineSettings 

Option path
prototypes.<prototypeIdentifier>.formeditor.addInlineSettings
Data type
array
Needed by
Backend (form editor)
Mandatory
No
Default value (prototype 'standard')
undefined
Good to know
Description
Adds Javascript Inline Setting. This will occur in TYPO3.settings - object.

maximumUndoSteps 

Option path
prototypes.<prototypeIdentifier>.formeditor.maximumUndoSteps
Data type
int
Needed by
Backend (form editor)
Mandatory
Yes
Default value (prototype 'standard')
formEditor:
  maximumUndoSteps: 10
Copied!
Good to know
Description
Define the maximum possible undo steps within the form editor.

stylesheets 

Option path
prototypes.<prototypeIdentifier>.formeditor.stylesheets
Data type
array
Needed by
Backend (form editor)
Mandatory
Yes
Default value (prototype 'standard')
formEditor:
  stylesheets:
    200: 'EXT:form/Resources/Public/Css/form.css'
Copied!
Good to know
Description
The CSS files to be used by the form editor.

formEditorFluidConfiguration 

Option path
prototypes.<prototypeIdentifier>.formeditor.formEditorFluidConfiguration
Data type
array
Needed by
Backend (form editor)
Mandatory
Yes
Default value (prototype 'standard')
formEditor:
  formEditorFluidConfiguration:
    templatePathAndFilename: 'EXT:form/Resources/Private/Backend/Templates/FormEditor/InlineTemplates.fluid.html'
    partialRootPaths:
      10: 'EXT:form/Resources/Private/Backend/Partials/FormEditor/'
    layoutRootPaths:
      10: 'EXT:form/Resources/Private/Backend/Layouts/FormEditor/'
Copied!
Good to know
Description
Basic fluid template search path configurations.

formEditorFluidConfiguration.templatePathAndFilename 

Option path
prototypes.<prototypeIdentifier>.formeditor.formEditorFluidConfiguration.templatePathAndFilename
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (prototype 'standard')
formEditor:
  formEditorFluidConfiguration:
    templatePathAndFilename: 'EXT:form/Resources/Private/Backend/Templates/FormEditor/InlineTemplates.fluid.html'
    partialRootPaths:
      10: 'EXT:form/Resources/Private/Backend/Partials/FormEditor/'
    layoutRootPaths:
      10: 'EXT:form/Resources/Private/Backend/Layouts/FormEditor/'
Copied!
Good to know
Description
Internal setting. Template which render the inline HTML templates which are used by the form editor JavaScript.

formEditorFluidConfiguration.partialRootPaths 

Option path
prototypes.<prototypeIdentifier>.formeditor.formEditorFluidConfiguration.partialRootPaths
Data type
array
Needed by
Backend (form editor)
Mandatory
Yes
Default value (prototype 'standard')
formEditor:
  formEditorFluidConfiguration:
    templatePathAndFilename: 'EXT:form/Resources/Private/Backend/Templates/FormEditor/InlineTemplates.fluid.html'
    partialRootPaths:
      10: 'EXT:form/Resources/Private/Backend/Partials/FormEditor/'
    layoutRootPaths:
      10: 'EXT:form/Resources/Private/Backend/Layouts/FormEditor/'
Copied!
Good to know
Description
Array with fluid partial search paths for the inline HTML templates which are used by the form editor JavaScript.

formEditorFluidConfiguration.layoutRootPaths 

Option path
prototypes.<prototypeIdentifier>.formeditor.formEditorFluidConfiguration.layoutRootPaths
Data type
array
Needed by
Backend (form editor)
Mandatory
Yes
Default value (prototype 'standard')
formEditor:
  formEditorFluidConfiguration:
    templatePathAndFilename: 'EXT:form/Resources/Private/Backend/Templates/FormEditor/InlineTemplates.fluid.html'
    partialRootPaths:
      10: 'EXT:form/Resources/Private/Backend/Partials/FormEditor/'
    layoutRootPaths:
      10: 'EXT:form/Resources/Private/Backend/Layouts/FormEditor/'
Copied!
Good to know
Description
Internal setting. Array with fluid layout search paths.

formEditorPartials 

Option path
prototypes.<prototypeIdentifier>.formeditor.formEditorPartials
Data type
array
Needed by
Backend (form editor)
Mandatory
Yes
Default value (prototype 'standard')
formEditor:
  formEditorPartials:
    FormElement-_ElementToolbar: Stage/_ElementToolbar
    FormElement-_UnknownElement: Stage/_UnknownElement
    FormElement-Page: Stage/Page
    FormElement-SummaryPage: Stage/SummaryPage
    FormElement-Fieldset: Stage/Fieldset
    FormElement-GridRow: Stage/Fieldset
    FormElement-Text: Stage/SimpleTemplate
    FormElement-Password: Stage/SimpleTemplate
    FormElement-AdvancedPassword: Stage/SimpleTemplate
    FormElement-Textarea: Stage/SimpleTemplate
    FormElement-Checkbox: Stage/SimpleTemplate
    FormElement-MultiCheckbox: Stage/SelectTemplate
    FormElement-MultiSelect: Stage/SelectTemplate
    FormElement-RadioButton: Stage/SelectTemplate
    FormElement-SingleSelect: Stage/SelectTemplate
    FormElement-DatePicker: Stage/SimpleTemplate
    FormElement-StaticText: Stage/StaticText
    FormElement-Hidden: Stage/SimpleTemplate
    FormElement-ContentElement: Stage/ContentElement
    FormElement-FileUpload: Stage/FileUploadTemplate
    FormElement-ImageUpload: Stage/FileUploadTemplate
    FormElement-Email: 'Stage/SimpleTemplate'
    FormElement-Telephone: 'Stage/SimpleTemplate'
    FormElement-Url: 'Stage/SimpleTemplate'
    FormElement-Number: 'Stage/SimpleTemplate'
    FormElement-Date: 'Stage/SimpleTemplate'
    Modal-InsertElements: Modals/InsertElements
    Modal-InsertPages: Modals/InsertPages
    Modal-ValidationErrors: Modals/ValidationErrors
    Inspector-FormElementHeaderEditor: Inspector/FormElementHeaderEditor
    Inspector-CollectionElementHeaderEditor: Inspector/CollectionElementHeaderEditor
    Inspector-TextEditor: Inspector/TextEditor
    Inspector-PropertyGridEditor: Inspector/PropertyGridEditor
    Inspector-SingleSelectEditor: Inspector/SingleSelectEditor
    Inspector-MultiSelectEditor: Inspector/MultiSelectEditor
    Inspector-GridColumnViewPortConfigurationEditor: Inspector/GridColumnViewPortConfigurationEditor
    Inspector-TextareaEditor: Inspector/TextareaEditor
    Inspector-RemoveElementEditor: Inspector/RemoveElementEditor
    Inspector-FinishersEditor: Inspector/FinishersEditor
    Inspector-ValidatorsEditor: Inspector/ValidatorsEditor
    Inspector-RequiredValidatorEditor: Inspector/RequiredValidatorEditor
    Inspector-CheckboxEditor: Inspector/CheckboxEditor
    Inspector-ValidationErrorMessageEditor: 'Inspector/ValidationErrorMessageEditor'
    Inspector-Typo3WinBrowserEditor: Inspector/Typo3WinBrowserEditor
Copied!
Good to know
Description
Array with mappings for the inline HTML templates. The keys are identifiers which could be used within the JavaScript code. The values are partial paths, relative to "prototypes.prototypeIdentifier.formeditor.formEditorFluidConfiguration.partialRootPaths". The partials content will be rendered as inline HTML. This inline HTML templates can be identified and used by such a key (e.g. "Inspector-TextEditor") within the JavaScript code.

formElementPropertyValidatorsDefinition 

Option path
prototypes.<prototypeIdentifier>.formeditor.formElementPropertyValidatorsDefinition
Data type
array
Needed by
Backend (form editor)
Mandatory
Yes
Default value (prototype 'standard')
formEditor:
  formElementPropertyValidatorsDefinition:
    NotEmpty:
      errorMessage: formEditor.formElementPropertyValidatorsDefinition.NotEmpty.label
    Integer:
      errorMessage: formEditor.formElementPropertyValidatorsDefinition.Integer.label
    NaiveEmail:
      errorMessage: formEditor.formElementPropertyValidatorsDefinition.NaiveEmail.label
    NaiveEmailOrEmpty:
      errorMessage: formEditor.formElementPropertyValidatorsDefinition.NaiveEmail.label
    FormElementIdentifierWithinCurlyBracesInclusive:
      errorMessage: formEditor.formElementPropertyValidatorsDefinition.FormElementIdentifierWithinCurlyBraces.label
    FormElementIdentifierWithinCurlyBracesExclusive:
      errorMessage: formEditor.formElementPropertyValidatorsDefinition.FormElementIdentifierWithinCurlyBraces.label
    FileSize:
      errorMessage: formEditor.formElementPropertyValidatorsDefinition.FileSize.label
    RFC3339FullDate:
      errorMessage: formEditor.formElementPropertyValidatorsDefinition.RFC3339FullDate.label
    RegularExpressionPattern:
      errorMessage: formEditor.formElementPropertyValidatorsDefinition.RegularExpressionPattern.label
Copied!
Related options
Good to know
Description
Some inspector editors are able to validate it's values through a JavaScript methods. formElementPropertyValidatorsDefinition define basic configurations for such JavaScript validators. This JavaScript validators can be registered through getFormEditorApp().addPropertyValidationValidator(). The first method argument is the identifier for this validator. Every array key within formElementPropertyValidatorsDefinition must be equal to such an identifier.

formElementPropertyValidatorsDefinition.<formElementPropertyValidatorIdentifier>.errorMessage 

Option path
prototypes.<prototypeIdentifier>.formeditor.formElementPropertyValidatorsDefinition.<formElementPropertyValidatorIdentifier>.errorMessage
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (prototype 'standard')
formEditor:
  formElementPropertyValidatorsDefinition:
    NotEmpty:
      errorMessage: formEditor.formElementPropertyValidatorsDefinition.NotEmpty.label
    Integer:
      errorMessage: formEditor.formElementPropertyValidatorsDefinition.Integer.label
    NaiveEmail:
      errorMessage: formEditor.formElementPropertyValidatorsDefinition.NaiveEmail.label
    NaiveEmailOrEmpty:
      errorMessage: formEditor.formElementPropertyValidatorsDefinition.NaiveEmail.label
    FormElementIdentifierWithinCurlyBracesInclusive:
      errorMessage: formEditor.formElementPropertyValidatorsDefinition.FormElementIdentifierWithinCurlyBraces.label
    FormElementIdentifierWithinCurlyBracesExclusive:
      errorMessage: formEditor.formElementPropertyValidatorsDefinition.FormElementIdentifierWithinCurlyBraces.label
    FileSize:
      errorMessage: formEditor.formElementPropertyValidatorsDefinition.FileSize.label
    RFC3339FullDate:
      errorMessage: formEditor.formElementPropertyValidatorsDefinition.RFC3339FullDate.label
    RegularExpressionPattern:
      errorMessage: formEditor.formElementPropertyValidatorsDefinition.RegularExpressionPattern.label
Copied!
Related options
Good to know
Description
The error message for an inspector editor property validator which is shown if the validation fails.

formElementGroups 

Option path
prototypes.<prototypeIdentifier>.formeditor.formElementGroups
Data type
array
Needed by
Backend (form editor)
Mandatory
Yes
Default value (prototype 'standard')
formEditor:
  formElementGroups:
    input:
      label: formEditor.formElementGroups.input.label
    html5:
      label: 'formEditor.formElementGroups.html5.label'
    select:
      label: formEditor.formElementGroups.select.label
    custom:
      label: formEditor.formElementGroups.custom.label
    container:
      label: formEditor.formElementGroups.container.label
    page:
      label: formEditor.formElementGroups.page.label
Copied!
Related options
Good to know
Description
Every form element can be placed within a group within the form editor "new Element" modal. Every form element which should be shown within such a group, must have a group property. The form element group property value must be equal to an array key within formElementGroups.

formElementGroups.<formElementGroupIdentifier>.label 

Option path
prototypes.<prototypeIdentifier>.formeditor.formElementGroups.<formElementGroupIdentifier>.label
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (prototype 'standard')
formEditor:
  formElementGroups:
    input:
      label: formEditor.formElementGroups.input.label
    select:
      label: formEditor.formElementGroups.select.label
    custom:
      label: formEditor.formElementGroups.custom.label
    container:
      label: formEditor.formElementGroups.container.label
    page:
      label: formEditor.formElementGroups.page.label
Copied!
Good to know
Description
The label for a group within the form editor "new Element" modal.

[formEngine] 

Properties 

translationFiles 

Option path
prototypes.<prototypeIdentifier>.formEngine.translationFiles
Data type
string/ array
Needed by
Backend (plugin)
Mandatory
Yes
Default value (for prototype 'standard')
formEngine:
  translationFiles:
    10: 'EXT:form/Resources/Private/Language/Database.xlf'
Copied!
Good to know
Description
Filesystem path(s) to translation files which should be searched for form plugin translations.

[formManager] 

Properties 

dynamicJavaScriptModules.app 

Option path
formManager.dynamicJavaScriptModules.app
Data type
string
Needed by
Backend (form manager)
Mandatory
Yes
Default value
dynamicJavaScriptModules:
  app: TYPO3/CMS/Form/Backend/FormManager
  viewModel: TYPO3/CMS/Form/Backend/FormManager/ViewModel
Copied!
Description
Internal setting. ES6 module specifier for the form manager JavaScript app.

dynamicJavaScriptModules.viewModel 

Option path
formManager.dynamicJavaScriptModules.viewModel
Data type
string
Needed by
Backend (form manager)
Mandatory
Yes
Default value
dynamicJavaScriptModules:
  app: '@typo3/form/backend/form-manager.js'
  viewModel: '@typo3/form/backend/form-manager/view-model.js'
Copied!
Description
Internal setting. ES6 module specifier for the form manager JavaScript view model.

stylesheets 

Option path
formManager.stylesheets
Data type
array
Needed by
Backend (form manager)
Mandatory
Yes
Default value
stylesheets:
  100: 'EXT:form/Resources/Public/Css/form.css'
Copied!
Description
Internal setting. Path for the form manager CSS file.

translationFiles 

Option path
formManager.translationFiles
Data type
string/ array
Needed by
Backend (form manager)
Mandatory
Yes
Default value
translationFiles:
  10: 'EXT:form/Resources/Private/Language/Database.xlf'
Copied!
Good to know
Translate "Start template" options
Description
The translation file(s) which should be used to translate parts of the form manager.

selectablePrototypesConfiguration 

Option path
formManager.selectablePrototypesConfiguration
Data type
array
Needed by
Backend (form manager)
Mandatory
Yes
Default value
selectablePrototypesConfiguration:
  100:
    identifier: standard
    label: formManager.selectablePrototypesConfiguration.standard.label
    newFormTemplates:
      100:
        templatePath: 'EXT:form/Resources/Private/Backend/Templates/FormEditor/Yaml/NewForms/BlankForm.yaml'
        label: formManager.selectablePrototypesConfiguration.standard.newFormTemplates.blankForm.label
      200:
        templatePath: 'EXT:form/Resources/Private/Backend/Templates/FormEditor/Yaml/NewForms/SimpleContactForm.yaml'
        label: formManager.selectablePrototypesConfiguration.standard.newFormTemplates.simpleContactForm.label
Copied!
Good to know
Description
Array with numerical Keys. Configure the Start template selection list within the form manager "Advanced settings" step.

selectablePrototypesConfiguration.*.identifier 

Option path
formManager.selectablePrototypesConfiguration.*.identifier
Data type
string
Needed by
Backend (form manager)
Mandatory
Yes
Related options
Good to know
Description
Reference to a prototype which should be used for the newly created form definition.

selectablePrototypesConfiguration.*.label 

Option path
formManager.selectablePrototypesConfiguration.*.label
Data type
string
Needed by
Backend (form manager)
Mandatory
Yes
Good to know
Description
The Form prototype selectlist label for this prototype within the form manager "Advanced settings" step.

selectablePrototypesConfiguration.*.newFormTemplates 

Option path
formManager.selectablePrototypesConfiguration.*.newFormTemplates
Data type
array
Needed by
Backend (form manager)
Mandatory
Yes
Default value
selectablePrototypesConfiguration:
  100:
    identifier: standard
    label: formManager.selectablePrototypesConfiguration.standard.label
    newFormTemplates:
      100:
        templatePath: 'EXT:form/Resources/Private/Backend/Templates/FormEditor/Yaml/NewForms/BlankForm.yaml'
        label: formManager.selectablePrototypesConfiguration.standard.newFormTemplates.blankForm.label
      200:
        templatePath: 'EXT:form/Resources/Private/Backend/Templates/FormEditor/Yaml/NewForms/SimpleContactForm.yaml'
        label: formManager.selectablePrototypesConfiguration.standard.newFormTemplates.simpleContactForm.label
Copied!
Good to know
Description
Array with numerical Keys. Configure the Start templates selectlist for this prototype within the form manager "Advanced settings" step.

selectablePrototypesConfiguration..newFormTemplates..templatePath 

Option path
formManager.selectablePrototypesConfiguration..newFormTemplates..templatePath
Data type
string
Needed by
Backend (form manager)
Mandatory
Yes
Good to know
Description
The filesystem path to the Start template` YAML file.

selectablePrototypesConfiguration..newFormTemplates..label 

Option path
formManager.selectablePrototypesConfiguration..newFormTemplates..label
Data type
string
Needed by
Backend (form manager)
Mandatory
Yes
Good to know
Description
The Start template selectlist label for this Start template within the form manager "Advanced settings" step.

controller 

Option path
formManager.controller
Data type
array
Needed by
Backend (form manager)
Mandatory
Yes
Default value
controller:
  deleteAction:
    errorTitle: formManagerController.deleteAction.error.title
    errorMessage: formManagerController.deleteAction.error.body
Copied!
Description
Internal setting. Configure the form manager flash message texts.

controller.deleteAction.errorTitle 

Option path
formManager.controller.deleteAction.errorTitle
Data type
string
Needed by
Backend (form manager)
Mandatory
Yes
Default value
controller:
  deleteAction:
    errorTitle: formManagerController.deleteAction.error.title
    errorMessage: formManagerController.deleteAction.error.body
Copied!
Description
Internal setting. Configure the form manager flash message texts.

controller.deleteAction.errorMessage 

Option path
formManager.controller.deleteAction.errorMessage
Data type
string
Needed by
Backend (form manager)
Mandatory
Yes
Default value
controller:
  deleteAction:
    errorTitle: formManagerController.deleteAction.error.title
    errorMessage: formManagerController.deleteAction.error.body
Copied!
Description
Internal setting. Configure the form manager flash message texts.

Creating a custom form element 

This tutorial shows you how to create a custom form element for the TYPO3 Form Framework. We'll create a "Gender Select" element as an example.

Prerequisites 

Before you start, make sure you have:

  • Basic knowledge of YAML configuration
  • A sitepackage where you can add configuration files

Step 1: Create the configuration files 

Create a form set directory in your extension. The sub-directory name is arbitrary — we use CustomElement here.

File location 

Create the following structure in your extension:

EXT:my_extension/
  Configuration/
    Form/
      CustomElement/
        config.yaml
Copied!

Configuration structure 

Here's the complete configuration for our Gender Select element:

EXT:my_extension/Configuration/Form/CustomElement/config.yaml (after metadata)
prototypes:
  standard:
    formElementsDefinition:
      GenderSelect:
        implementationClassName: TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
        renderingOptions:
          templateName: 'RadioButton'
        properties:
          options:
            f: 'Female'
            m: 'Male'
            d: 'Diverse'
        formEditor:
          label: 'Gender Select'
          group: select
          groupSorting: 9000
          iconIdentifier: form-single-select
          editors:
            100:
              identifier: header
              templateName: Inspector-FormElementHeaderEditor
            200:
              identifier: label
              templateName: Inspector-TextEditor
              # Labels are retrieved from the default language file "EXT:form/Resources/Private/Language/Database.xlf"
              # The most keys follow the pattern: formEditor.elements.FormElement.editor.[identifier].[key]
              # In this example: "formEditor.elements.FormElement.editor.label.label"
              label: formEditor.elements.FormElement.editor.label.label
              propertyPath: label
            230:
              identifier: elementDescription
              templateName: Inspector-TextEditor
              label: formEditor.elements.FormElement.editor.elementDescription.label
              propertyPath: properties.elementDescription
            700:
              identifier: gridColumnViewPortConfiguration
              templateName: Inspector-GridColumnViewPortConfigurationEditor
              label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.label
              configurationOptions:
                viewPorts:
                  10:
                    viewPortIdentifier: xs
                    label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xs.label
                  20:
                    viewPortIdentifier: sm
                    label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.sm.label
                  30:
                    viewPortIdentifier: md
                    label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.md.label
                  40:
                    viewPortIdentifier: lg
                    label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.lg.label
                  50:
                    viewPortIdentifier: xl
                    label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xl.label
                  60:
                    viewPortIdentifier: xxl
                    label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.xxl.label
                numbersOfColumnsToUse:
                  label: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.label
                  propertyPath: 'properties.gridColumnClassAutoConfiguration.viewPorts.{@viewPortIdentifier}.numbersOfColumnsToUse'
                  description: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.description
            800:
              identifier: requiredValidator
              templateName: Inspector-RequiredValidatorEditor
              label: formEditor.elements.FormElement.editor.requiredValidator.label
              validatorIdentifier: NotEmpty
              propertyPath: properties.fluidAdditionalAttributes.required
              propertyValue: required
              configurationOptions:
                validationErrorMessage:
                  label: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.label
                  propertyPath: properties.validationErrorMessages
                  description: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.description
                  errorCodes:
                    10: 1221560910
                    20: 1221560718
                    30: 1347992400
                    40: 1347992453
            9999:
              identifier: removeButton
              templateName: Inspector-RemoveElementEditor
Copied!

Common inspector editors 

Here are some commonly used inspector editors (Inspector) you can add to your form elements:

Inspector-FormElementHeaderEditor (100)
Shows the element header in the inspector panel
Inspector-TextEditor (200-300)
A simple text input field for properties like label and description
Inspector-PropertyGridEditor (400)
A grid editor for managing key-value pairs (like options)
Inspector-GridColumnViewPortConfigurationEditor (700)
Controls responsive behavior and column widths for different screen sizes
Inspector-RequiredValidatorEditor (800)
Adds a checkbox to make the field required
Inspector-ValidationErrorMessageEditor (900)
Allows customizing validation error messages
Inspector-RemoveElementEditor (9999)
Shows a button to remove the element from the form

Step 2: Register the configuration 

No PHP or TypoScript registration is needed. TYPO3 discovers YAML files automatically from any extension that follows the directory convention.

Create a form set with a single config.yaml:

EXT:my_extension/
  Configuration/
    Form/
      CustomElement/
        config.yaml     ← set metadata + all configuration
Copied!

Set the priority in config.yaml to a value greater than 10 (the EXT:form core base set) so your configuration is merged on top:

EXT:my_extension/Configuration/Form/CustomElement/config.yaml
name: my-vendor/custom-element
label: 'My Custom Form Element'
priority: 200

# Form element configuration goes here:
prototypes:
  standard:
    ...
Copied!

Step 3: Clear Caches 

After adding the configuration, you must clear all TYPO3 caches.

Step 4: Using your custom element 

Now you can use your custom element in the form editor:

  1. Open the Form Editor user interface (Forms > [Your Form] > Edit)
  2. Look for "Gender Select" in the form element browser.
  3. Add the element to the form.
  4. Configure the element using the inspector panel on the right.
  5. Save your form.
  6. Add a form content element to a page and select the form you just edited.
  7. Preview the page in the frontend.

The element will now be available in your forms and will render using the RadioButton template in the frontend.

Step 5: Customizing frontend output (optional) 

If you want to use a custom template instead of reusing an existing one, follow these steps:

Create custom template 

Create your own Fluid template:

EXT:my_extension/Resources/Private/Partials/Form/GenderSelect.fluid.html

EXT:my_extension/Resources/Private/Partials/Form/GenderSelect.fluid.html
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
      xmlns:formvh="http://typo3.org/ns/TYPO3/CMS/Form/ViewHelpers"
      data-namespace-typo3-fluid="true">

    <f:comment>
        Custom form element template for a gender selection field.
    </f:comment>

    <formvh:renderRenderable renderable="{element}">

        <f:comment>Render the field wrapper with optional fieldset and legend</f:comment>
        <f:render partial="Field/Field"
                  arguments="{
                      element: element,
                      renderFieldset: '{true}',
                      doNotShowLabel: '{true}'
                  }"
                  contentAs="elementContent">

            <f:form.validationResults for="{element.rootForm.identifier}.{element.identifier}">

                <f:comment>Apply error class if validation errors exist</f:comment>
                <f:variable name="errorClass">
                    {f:if(
                        condition: '{validationResults.errors}',
                        then: 'is-invalid'
                    )}
                </f:variable>

                <f:comment>Radio button group container</f:comment>
                <div id="{element.uniqueIdentifier}"
                     class="gender-select {errorClass}"
                     role="radiogroup"
                     aria-label="{element.label}">

                    <f:comment>Loop through all available options (e.g., male, female, diverse)</f:comment>
                    <f:for each="{element.properties.options}" as="label" key="value" iteration="idIterator">

                        <f:comment>Set ARIA attributes for accessibility</f:comment>
                        <f:if condition="{element.properties.elementDescription}">
                            <f:variable name="aria" value="{describedby: '{element.uniqueIdentifier}-desc'}" />
                        </f:if>

                        <f:comment>Add error indication to the first radio button if validation fails</f:comment>
                        <f:if condition="{validationResults.errors} && {idIterator.isFirst}">
                            <f:variable name="aria" value="{
                                invalid: 'true',
                                describedby: '{element.uniqueIdentifier}-errors'
                            }" />
                        </f:if>

                        <f:comment>Individual radio button container</f:comment>
                        <div class="form-check mb-2">
                            <label class="form-check-wrapping-label"
                                   for="{element.uniqueIdentifier}-{idIterator.index}">

                                <f:form.radio
                                    property="{element.identifier}"
                                    id="{element.uniqueIdentifier}-{idIterator.index}"
                                    class="form-check-input"
                                    value="{value}"
                                    errorClass="is-invalid"
                                    additionalAttributes="{formvh:translateElementProperty(
                                        element: element,
                                        property: 'fluidAdditionalAttributes'
                                    )}"
                                    aria="{aria}"
                                />

                                <span class="{element.properties.labelTextClassAttribute}">
                                    {formvh:translateElementProperty(
                                        element: element,
                                        property: '{0: \'options\', 1: value}'
                                    )}
                                </span>

                            </label>
                        </div>

                    </f:for>

                </div>

                <f:comment>Display validation errors</f:comment>
                <f:if condition="{validationResults.flattenedErrors}">
                    <span id="{element.uniqueIdentifier}-errors"
                          role="alert">

                        <f:for each="{validationResults.errors}" as="error">
                            <f:format.htmlspecialchars>
                                {formvh:translateElementError(element: element, error: error)}
                            </f:format.htmlspecialchars>
                            <br/>
                        </f:for>

                    </span>
                </f:if>

            </f:form.validationResults>

        </f:render>

    </formvh:renderRenderable>

</html>
Copied!

Update configuration 

Update your YAML configuration to use the custom partial template:

EXT:my_extension/Configuration/Form/CustomElement/config.yaml
prototypes:
  standard:
    formElementsDefinition:
      Form:
         renderingOptions:
            partialRootPaths:
               1732785721: 'EXT:my_extension/Resources/Private/Partials/Form/'
      GenderSelect:
        renderingOptions:
          templateName: 'GenderSelect'
Copied!

Further reading 

FAQ 

How do I override EXT:Form frontend templates? 

There are three ways to override the frontend templates.

Add fluid search paths via a form set 

Create a form set in your site package. The YAML files are picked up automatically for both frontend and backend — no PHP or TypoScript registration is required.

  1. Create the directory and a config.yaml with the template paths:

    EXT:my_site_package/
      Configuration/
        Form/
          SitePackage/
            config.yaml
    Copied!
    EXT:my_site_package/Configuration/Form/SitePackage/config.yaml
    name: my-site-package/form
    label: 'My Site Package — Form Configuration'
    priority: 200
    
    prototypes:
      standard:
        formElementsDefinition:
          Form:
            renderingOptions:
              templateRootPaths:
                20: 'EXT:my_site_package/Resources/Private/Templates/Form/Frontend/'
              partialRootPaths:
                20: 'EXT:my_site_package/Resources/Private/Partials/Form/Frontend/'
              layoutRootPaths:
                20: 'EXT:my_site_package/Resources/Private/Layouts/Form/Frontend/'
    Copied!

See Auto-discovery directory convention for the full directory convention.

Add fluid search paths via TypoScript yamlSettingsOverrides 

For quick, per-site overrides without creating a full form set, you can use plugin.tx_form.settings.yamlSettingsOverrides:

plugin.tx_form.settings.yamlSettingsOverrides {
    prototypes {
        standard {
            formElementsDefinition {
                Form {
                    renderingOptions {
                        templateRootPaths {
                            20 = EXT:my_site_package/Resources/Private/Templates/Form/Frontend/
                        }
                    }
                }
            }
        }
    }
}
Copied!

How do I prevent multiple form submissions? 

A user can submit a form twice by double-clicking the submit button. This means finishers could be processed multiple times.

At the current time, there are no plans to integrate a function to prevent this behaviour, especially not server side. An easy solution would be the integration of a JavaScript function to stop the behaviour. TYPO3 itself does not take care of any frontend integration and does not want to ship JavaScript solutions for the frontend. Therefore, integrators have to implement a solution themselves.

One possible solution is the following JavaScript snippet. It can be added to your site package. Please note, the selector (here myform-123) has to be updated to the id of your form.

const form = document.getElementById('myform-123');
form.addEventListener('submit', function(e) {
    const submittedClass = 'submitted';
    if (this.classList.contains(submittedClass)) {
        e.preventDefault();
    } else {
        this.classList.add(submittedClass);
    }
});
Copied!

You could also style the submit button to provide visual feedback to the user. This will help make it clear that the form has already been submitted and thus prevent further interaction by the user.

.submitted button[type="submit"] {
    opacity: 0.6;
    pointer-events: none;
}
Copied!

How does the date picker (jQuery) work? 

EXT:form ships a datepicker form element. You will need to add jquery JavaScript files, jqueryUi JavaScript and CSS files to your frontend.

Is it possible to build frontend user registration with EXT:form? 

Possible, yes. But we are not aware of an implementation.

Is there an export module for saved forms? 

Currently there are no plans to implement such a feature in the core. There are concerns regarding data privacy when it comes to storing user data in your TYPO3 database permanently. The great folks of Pagemachine created an extension for this.

The honeypot does not work with static site caching. What can I do? 

If you want to use static site caching - for example using the staticfilecache extension - you should disable the automatic inclusion of the honeypot. Read more here.

How do I set a default value for my form element? 

You can set default values for most form elements (not to be confused with the placeholder attribute). This is easy for text fields and textareas.

Select and multi-select form elements are a bit more complex. These form elements can have defaultValue and prependOptionValue settings. The defaultValue allows you to select a specific option as a default. This option will be pre-selected when the form is loaded. The prependOptionValue defines a string which will be the first select option. If both settings exist, the defaultValue is prioritized.

Learn more here and see forge issue #82422.

How do I create a custom finisher for my form? 

Learn how to create a custom finisher here.

If you want to make the finisher configurable in the backend form editor, read here.

How do I create a custom validator for my form? 

Learn how to create a custom validator here.

Which folder structure do you recommend? 

When shipping form configuration, form definitions, form templates, and language files in a site package, we recommend the following structure:

  • Form configuration: EXT:my_site_package/Configuration/Form/
  • Form definitions: EXT:my_site_package/Resources/Private/Forms/
  • Form templates:
    • Templates EXT:my_site_package/Resources/Private/Templates/Form/
    • Partials EXT:my_site_package/Resources/Private/Partials/Form/
    • Layouts EXT:my_site_package/Resources/Private/Layouts/Form/
    • Keep in mind that a form comes with templates for both the frontend (this is your website) and the TYPO3 backend. Therefore, we recommend splitting the templates into subfolders called Frontend/ and Backend/.
  • Translations: EXT:my_site_package/Resources/Private/Language/Form/

For Editors 

Introduction to forms 

Forms are provided by the Form TYPO3 extension. Form is a TYPO3 core extension which has been available by default since TYPO3 version 8.

What can Form do? 

  • TYPO3 core extension
  • flexible, extensible and easy to use
  • easy to use via drag-and-drop
  • live preview
  • form reuse
  • create templates for new forms
  • set mandatory fields
  • set finishers (downstream processing)
  • automatic spam protection
  • multi-step forms

What can't Form do? 

Form has limited:

  • formatting of form labels
  • multilingual support
  • possibilities for textual design of emails

When can I use Form? 

  • for contact forms
  • for application forms
  • for simple or complex forms
  • for different forms on my pages

Notes on data protection 

Data submitted in forms is not stored in the TYPO3 backend due to privacy reasons. There are TYPO3 extensions that retrofit this behavior but we do not recommend using these extensions. Instead, check if the form data can be transferred directly to your CRM or similar tools.

Form elements and their properties 

Overview of form elements 

Overview of all form elements included in the TYPO3 core. There may be fewer or different elements in your installation.

Overview of all form elements included in TYPO3. There may be fewer or different elements in your installation.

Form element settings 

Most form elements have these 7 basic settings:

  • Label: Label of the element.
  • Description: Description of the element. Can be used to provide the user with more information about the expected input.
  • Placeholder: Example of the expected content. Disappears with the user's input.
  • Default value: Preset value. Pre-entered by the system and does not disappear with the user's input.
  • Mandatory field: Specify whether the field is a mandatory field and thus must be filled in by the user.
  • Custom error message: Custom message that will be displayed to the user if the field is not filled in. If you don't provide a message, a default message is shown.
  • Validators: Validators are used to check the data entered in the field. The system displays error messages if there are errors.

Basic form elements 

Text 

A single-line text field, e.g. for entering short information such as name, address, location. This element has the basic settings.

Element 'Text' - preview in the frontend.

Element 'Text' - preview in the frontend.

Settings for the 'Text' element.

Settings for the 'Text' element.

Textarea 

A multi-line text field, e.g. for the free input of continuous text. This allows the user to provide a short text such as a message. This element has the basic settings.

Element 'Textarea' - preview in the frontend.

Element 'Textarea' - preview in the frontend.

Settings for the 'Textarea' element.

Settings for the 'Textarea' element.

Password 

A single-line text field for entering a password. The browser "hides" the text input, i.e. the entered characters are not visible. This element has the basic settings.

Element 'Password' - preview in the frontend.

Element 'Password' - preview in the frontend.

Settings for the 'Password' element.

Settings for the 'Password' element.

Special elements 

Sometimes it is better to use special elements instead of simple text elements. Mobile devices such as smartphones display on-screen keyboards. If you use the "Email address" element the form field on the device will contain a "@" character in a central position and a validator will be triggered that checks for the input format "firstname.lastname@example.org".

Email address 

A single-line field for entering an email address. This element has the basic settings. In addition, the field has an Email validator (this is the only validator available for this form element).

Element 'E-mail' - preview in the frontend.

Element 'E-mail' - preview in the frontend.

Settings for the 'E-mail' element.

Settings for the 'E-mail' element.

Telephone number 

A single-line text field for entering a phone number. This element has the basic settings.

Element 'Telephone' - preview in the frontend.

Element 'Telephone' - preview in the frontend.

Settings for the 'Telephone' element.

Settings for the 'Telephone' element.

URL 

A single-line text field for entering a URL. A URL is typically an internet address, such as that of your website. This element has the basic settings

Element 'URL' - preview in the frontend.

Element 'URL' - preview in the frontend.

Settings for the 'URL' element.

Settings for the 'URL' element.

Number 

A single-line text field for entering a number. A user can increase and decrease the number in preconfigured steps using visual controls in the browser. This element has the basic settings. By default, the field has a Number validator. Additional settings:

  • Step: Here you can enter a number that defines the step size. The step size is the amount by which a number is increased or decreased in the frontend.
Element 'Number' - preview in the frontend.

Element 'Number' - preview in the frontend.

Settings for the 'Number' element.

Settings for the 'Number' element.

Date 

A single-line text field for entering a date. Most modern browsers will also display a calendar from which the user can select the date. This element has the basic settings. Additional settings:

  • Frequency: default value "1" means that the user can select every day.
Element 'Date' - preview in the frontend.

Element 'Date' - preview in the frontend.

Settings for the 'Date' element.

Settings for the 'Date' element.

Select elements 

Select elements (including checkboxes, radio buttons and selectboxes) do not allow a user to enter text. Instead, they offer a predefined number of choices, for example, salutation options.

Checkbox 

A simple checkbox. This element has the basic settings.

Element 'Checkbox' - preview in the frontend.

Element 'Checkbox' - preview in the frontend.

Settings for the 'Checkbox' element.

Settings for the 'Checkbox' element.

Single selectbox 

An element to create a drop-down list. This element has the basic settings. Additional settings:

  • First option: Define the "empty option", i.e. the first element of the selectbox. You can use this to provide additional guidance for the user.
  • Choices: A tool to insert and manage options.
    • Label: Name of the option.
    • Value: Value of the option. The system automatically sets the "Value" to the "Label". You can leave it like this if you are unsure of what you are doing.
    • Selected: Check this to pre-select an option in the frontend.
    • [ + ]: Adds a new line for a new option.
Element 'Single select' - preview in the frontend.

Element 'Single select' - preview in the frontend.

Settings for the 'Single select' element.

Settings for the 'Single select' element.

Radio buttons 

An element to display one or more radio buttons. This element has the basic settings. Additional settings:

  • Choices: A tool to insert and manage the options.
    • Label: Name of the option.
    • Value: Value of the option. The system automatically sets the "Value" to the "Label". You can leave it like this if you are unsure of what you are doing.
    • Selected: Check this to pre-select an option in the frontend.
    • [ + ]: Adds a new line for a new option.
Element 'Radio button' - preview in the frontend.

Element 'Radio button' - preview in the frontend.

Settings for the 'Radio button' element.

Settings for the 'Radio button' element.

Multi checkbox 

An element to create one or more checkboxes. This element has the basic settings. Additional settings:

  • Choices: A tool to insert and manage the options.
    • Label: Name of the option.
    • Value: Value of the option. The system automatically sets the "Value" to the "Label". You can leave it like this if you are unsure of what you are doing.
    • Selected: Check this to pre-select an option in the frontend.
    • [ + ]: Adds a new line for a new option.
Element 'Multi checkbox' - preview in the frontend.

Element 'Multi checkbox' - preview in the frontend.

Settings for the 'Multi checkbox' element.

Settings for the 'Multi checkbox' element.

Multi select 

An element to create a multiple selection. This element has the basic settings. Additional settings:

  • First option: Define the "empty option", i.e. the first element of the select. You can use this to provide additional guidance for the user.
  • Choices: A tool to insert and manage the options.
    • Label: Name of the option.
    • Value: Value of the option. The system automatically sets the "Value" to the "Label". You can leave it like this if you are unsure of what you are doing.
    • Selected: Check this to pre-select an option in the frontend.
    • [ + ]: Adds a new line for a new option.
Element 'Multi select' - preview in the frontend.

Element 'Multi select' - preview in the frontend.

Settings for the 'Multi select' element.

Settings for the 'Multi select' element.

Country select 

An element to create a country selectbox. This element has the basic settings Additional settings:

  • First option: Define the "empty option", i.e. the first element of the select. You can use this to provide additional guidance for the user.
  • Prioritized countries: A multi-selection of country names, which should be listed as the top options in the form element.
  • Only countries: Restrict the countries to be rendered in the selection.
  • Exclude countries: Define which countries should not appear in the selection.

Advanced elements 

File upload 

An element to upload a file to the File > Filelist module. This element has the basic settings. Additional settings:

  • Allowed Mime Types: Select the allowed file extensions a user is able to upload.
  • Storage path for uploads: Select the storage path in your TYPO3 installation. This is where the uploaded file will be saved.
Element 'File upload' - preview in the frontend.

Element 'File upload' - preview in the frontend.

Settings for the 'File upload' element.

Settings for the 'File upload' element.

Date picker 

A single-line text field to select a date using a calendar. A JavaScript library is used for this purpose. This form element is an alternative to the Date element, which is also supported by older browsers (e.g. Internet Explorer 11). However, it has limited accessibility. This element has the basic settings. Additional settings:

  • Date format: select date format (e.g. d.m.Y or Y-m-d or d-m-Y)
    • d: day
    • m: month
    • Y: year
  • Enable date selection: Check this to display a calendar.
  • Show time selection: Check this to display two dropdowns for 'Hour' and 'Minute' respectively.
Element 'Date picker' - preview in the frontend.

Element 'Date picker' - preview in the frontend.

Settings for the 'Date picker' element.

Settings for the 'Date picker' element.

Hidden 

A field that is not visible in the frontend. The form element is inside the red rectangle in the image. Such a field might be needed for technical functionality, e.g. to add hidden values to a form. This element has the basic settings. Additional settings:

  • Value: Here you can set a value for the element.
Element 'Hidden' - preview in the frontend.

Element 'Hidden' - preview in the frontend.

Settings for the 'Hidden' element.

Settings for the 'Hidden' element.

Image upload 

An element to upload an image to File > Filelist. This element has the basic settings. Other settings:

  • Allowed Mime Types: Select the file extensions a user is allowed to upload.
  • Storage path for uploads: Select the storage path in your TYPO3 installation. This is where the uploaded file will be saved.
Element 'Image upload' - preview in the frontend.

Element 'Image upload' - preview in the frontend.

Settings for the 'Image upload' element.

Settings for the 'Image upload' element.

Advanced password 

The element is analogous to the Password form element. A single-line text field is displayed for entering a password. The browser "hides" the text input, i.e. the entered characters are not visible. Another field is displayed below it so that the user has to repeat the password to prevent typing errors. This field is useful for registration forms. This element has the basic settings. Additional settings:

  • Confirmation label: Label for the confirmation field.
Element 'Advanced password' - preview in the frontend.

Element 'Advanced password' - preview in the frontend.

Settings for the 'Advanced password' element.

Settings for the 'Advanced password' element.

Static text 

A field for static text. This text cannot be formatted, which means you can't insert links or highlight text. Instead, the text is output in the style of your website. The settings for this element are:

  • Heading: Heading for the element.
  • Text: Content for the element.
Element 'Static text' - preview in the frontend.

Element 'Static text' - preview in the frontend.

Settings for the 'Static text' element.

Settings for the 'Static text' element.

Content element 

You can display any content elements that are on your website. The settings for this element are:

  • Content element uid: ID of the content element you want to display. You can either enter the ID manually or select it via the page tree. To do this, click on the "Page content" button.
  • [ Page content ]: Modal which displays the page tree. You can select a page and the content element.
Element 'Content element' - preview in the frontend.

Element 'Content element' - preview in the frontend.

Settings for the 'Content element' element.

Settings for the 'Content element' element.

Container elements 

Fieldset and grid elements are container elements that structure your form in terms of content or visual appearance. Container elements can be combined. For example, a fieldset can contain several grids.

Fieldset 

This container groups form elements based on content. This is important for screen readers and helps you to improve the accessibility of your form. For example, in an "Address" fieldset you could have street, house number, postal code and city form elements. The settings for this element are:

  • Field group name: Heading for the field group, e.g. "Address".
Element 'Fieldset' - preview in the frontend.

Element 'Fieldset' - preview in the frontend.

Element 'Fieldset' - preview in the backend.

Element 'Fieldset' - preview in the backend.

Settings for the 'Fieldset' element.

Settings for the 'Fieldset' element.

Grid 

Use this container element to place fields next to each other (create a visual structure).

The additional settings apply to the content elements inside the grid:

  • Configuration Grid Area:
    • Areas: xs (Very small), sm (Small), md (Medium), lg (Large), xl (Extra large), xxl (Extra extra large).
    • These are the "breakpoints". These are ranges of resolutions or adaptations to different screen sizes. Smartphones, for example, have a low resolution range (xs or sm) and desktop monitors have a high resolution range (lg, xl or xxl). Use this to abstractly control how many elements are displayed next to each other in which resolution.
  • Number of columns for grid area "xx":
    • Enter a number for the selected area.
    • The number determines how much space the field takes up on the different screen sizes and therefore how many elements are displayed next to each other.
Element 'Grid' - preview in the frontend.

Element 'Grid' - preview in the frontend.

Element 'Grid' - preview in the backend.

Element 'Grid' - preview in the backend.

Settings for the 'Grid' element - Part 1.

Settings for the 'Grid' element - Part 1.

Settings for the 'Grid' element - Part 2.

Settings for the 'Grid' element - Part 2.

Validators 

Introduction 

Validators can be added to all form elements to check user input for "validity" - i.e. existence, meaningfulness and correctness. For example, you can determine whether a field has been filled out or if the user has entered a valid email address. You can also define your own error messages. These messages can be edited in the form editor.

This chapter describes the individual validators and their function.

In the Inspector - adding validators.

In the Inspector - adding validators.

Overview of validators 

Alphanumeric 

This validator checks whether the field contains an alphanumeric string. "Alphanumeric" means a combination of alphabetic and numeric characters. No special characters can be entered, only characters from [A-Z] and [0-9]. The settings of the validator are as follows:

  • Custom error message: Custom error message that will be shown if the validator fails.

The validator is available for the following form elements:

In the Inspector - Settings of the "Alphanumeric" validator.

In the Inspector - Settings of the "Alphanumeric" validator.

String length 

This validator uses minimum and maximum values to check how many characters can be entered. The settings of the validator are as follows:

  • Minimum: Minimum amount of characters the field can contain.
  • Maximum: Maximum amount of characters the field can contain.
  • Custom error message: Custom error message that will be shown if the validator fails.

The validator is available for the following form elements:

In the Inspector - settings of the validator "String length".

In the Inspector - settings of the validator "String length".

Email 

This validator checks whether an entered value is a valid email address. International characters and multiple occurrences of the @ sign are allowed by default. The settings of the validator are as follows:

  • Custom error message: Custom error message that will be shown if the validation fails.

The validator is available for the following form elements:

In the Inspector - Settings of the 'Email' validator.

In the Inspector - Settings of the 'Email' validator.

Integer number 

The validator checks whether an entered value is a valid integer. Numbers with commas are not allowed. The settings of the validator are as follows:

  • Custom error message: Custom error message that will be shown if the validation fails.

The validator is available for the following form elements:

In the Inspector - settings of the validator 'Integer number'.

In the Inspector - settings of the validator 'Integer number'.

Floating-point number 

The validator checks whether an entered value is a valid floating-point number. Only numbers with commas can be entered. The settings of the validator are as follows:

  • Custom error message: Custom error message that will be shown if the validation fails.

The validator is available for the following form elements:

In the Inspector - Settings of the 'Floating-point number' validator.

In the Inspector - Settings of the 'Floating-point number' validator.

Number 

The validator checks whether the entered value is a valid number. Numbers with commas are not allowed. The settings of the validator are as follows:

  • Custom error message: Custom error message that will be shown if the validation fails.

The validator is available for the following form elements:

  • "Number" (validator is automatically active)
In the Inspector - Settings of the 'Number' validator.

In the Inspector - Settings of the 'Number' validator.

Number range 

The validator checks if an entered number is within a specified number range. The settings of the validator are as follows:

  • Minimum: The minimum value that can be accepted.
  • Maximum: The maximum value that can be accepted.
  • Custom error message: Custom error message that will be shown if the validation fails.

The validator is available for the following form elements:

In the Inspector - Settings of the 'Number range' validator.

In the Inspector - Settings of the 'Number range' validator.

Regular expression 

The validator checks whether an entered value matches a specific regular expression. The settings of the validator are as follows:

  • Regular expression: The regular expression used for validation.
  • Custom error message: Custom error message that will be shown if the validation fails.

Imagine that you want users to specify a domain name. The resulting value of the field should contain only the domain, for example, "docs.typo3.org" instead of "https://docs.typo3.org". The regular expression for this would be /^[a-z]+.[a-z]+.[a-z]$/.

The validator is available for the following form elements:

In the Inspector - Settings of the 'Regular Expression' validator.

In the Inspector - Settings of the 'Regular Expression' validator.

Date range 

This validator checks whether an entered value is within a specific date range. The range can be defined by specifying a start and/ or end date. The settings of the validator are as follows:

  • Start date: The beginning of the date range (input: YYYY-MM-DD).
  • End date: The end of the date range (input: YYYY-MM-DD).
  • Custom error message: Custom error message that will be shown if the validation fails.

The validator is available for the following form elements:

In the Inspector - Settings of the 'Date range' validator.

In the Inspector - Settings of the 'Date range' validator.

Number of submitted values 

The validator checks whether an entered value contains a specific number of elements. The settings of the validator are as follows:

  • Minimum: The minimum number of values submitted.
  • Maximum: The maximum number of submitted values.
  • Custom error message: Custom error message that will be shown if the validation fails.

The validator is available for the following form elements:

In the Inspector - Settings of the validator 'Number of submitted values'.

In the Inspector - Settings of the validator'Number of submitted values'.

File size 

The validator checks the file size of a file resource. The settings of the validator are as follows:

  • Minimum: The minimum acceptable file size (default: 0B).
  • Maximum: The maximum acceptable file size (default: 10M).

Use the format B | K | M | G (byte | kilobyte | megabyte | gigabyte) when entering file sizes. For example: 10M means 10 megabytes. Please note that the maximum file size also depends on the settings of your server environment.

The validator is available for the following form elements:

In the Inspector - Settings of the 'File size' validator.

In the Inspector - Settings of the 'File size' validator.

Date/ Time 

The validator checks if an entered value is a valid date and/ or time. The settings of the validator are as follows:

  • Custom error message: Custom error message that will be shown if the validation fails.

The validator is available for the following form elements:

In the Inspector - Settings of the 'Date/ Time' validator.

In the Inspector - Settings of the 'Date/ Time' validator.

Finishers 

Any number of "finishers" can be added to a form. Finishers are actions that will be executed once the form has been submitted by a user.

In the following chapter, each finisher and its function will be explained. Not all finishers can be added via the form editor. There are some finishers that can only be added by integrators/ administrators. The following finishers are available by default:

Form editor - add new finishers.

Form editor - add new finishers

Accessibility 

There are numerous accessibility rules when it comes to making a form accessible to a large number of users. This includes accessibility to groups such as people with a disability, the elderly, non-native speakers, etc.

The following should be kept in mind by editors creating forms in the backend form editor:

Labels 

Always use clear, descriptive labels in the Label field. Simply putting the label in field Placeholder is not considered accessible.

Descriptions 

Add an extended description in the field Description.

Placeholder 

The Placeholder field should not contain the label. It should contain example content to make filling out the field easier for users.

Autocomplete 

The autocomplete property should be used whenever a field contains personal information. This property can then be used by assistive technology to aid users to fill out forms. Select the desired purpose from the select Autocomplete. See Input Purposes for User Interface Components at w3.org for an explanation of which purposes to use.

If additional input purposes are needed, your integrator or developer can add additional input purpose options.

Create a basic contact form 

In this tutorial, you will learn how to create a basic contact form.

Let's define what we need:

  • contact information from our visitors: first name, last name, email address
  • the message from our visitor: a text area where they can enter their message
  • an email to us with their message
  • a confirmation message to the visitor after the form has been submitted

All fields will be required fields.

Let's get started:

  1. Create a new form

    Go to the Web > Forms module and create a new form by clicking on "Create new form".

    The form module - click the button

    The form module without any forms - click the button to create one.

  2. Choose a name

    Choose a name for your form - something you will recognize later on - and click "Next"

    The form creation wizard - step 1
  3. Click "Next"

    As we are creating a basic form, step 2 is done automatically and we go to step 3. Click "Next" again.

    The form creation wizard - step 3
  4. Create new element

    The form editor view will now display your new form as below. Click on "Create new element" to add a field to your form.

    Create New Element Button
  5. Add "First Name"

    Create a simple text field for the first name by clicking on "Text" in "Basic Elements".

    Create New Text Element
  6. Set options for "First Name"

    Options for your new text field will be displayed in the inspector panel on the right:

    Fields for a simple text field

    Fields for a simple text field.

    1. Label: Enter a label for your field - in this case "First Name".
    2. Description: Enter a description - something that helps your users to know what they should enter.
    3. Placeholder: Enter an example value for the field - this will be used as placeholder in the frontend.
    4. Required Field: Click the checkbox to make your field required.
    5. Enter an error message for users who forget to fill out the field.
    6. Add a "Non-XML text" validator to only allow simple text input.
  7. Repeat

    Repeat the steps in 6 for the "Last Name" field.

    Fields for the "Last Name" text field.
  8. Add Email address

    Now add an email field. Choose type email. Set an error message for if the validation fails.

    Fields for the email field.
  9. Add textarea for message

    Add a Textarea field where the user can enter a message.

    Choose textarea field.

    The "Textarea" type in the overview.

  10. Add options for the message field

    Set label, description and error messages.

    Configure textarea field.

    Configure the message field.

  11. Send an email on form submit

    When a user submits a form, we want to be sent an email by TYPO3. In a form, this is what is called "a finisher" as it happens when the form is "finished".

    Adding a finisher

    Adding a finisher

    1. Click on the form name on the top left - here you can edit general form settings.
    2. Choose a finisher on the right. To send an email to yourself, choose "Email to receiver (you)".
  12. Configure the email finisher

    Choose a subject, the recipient, name and CC.

    Configuring the finisher
    Configuring the finisher - part two

    You can use fields from the form to pre-fill values using the {+} button. Here we configure the sender's name from the first and last names in the form.

  13. Save the form

    Click on "Save" to save the current state of the form. Even if your form isn't complete, it's a good idea to save your state frequently to minimize the risk of losing data.

    Saving the form
  14. Add confirmation finisher

    Add a "Confirmation message" finisher to display a confirmation/ thank you message to the user after they have submitted the form.

    Choose confirmation finisher
  15. Add confirmation message

    Set a "Thank You" message in the "Confirmation Finisher" options.

    Set a confirmation message
  16. Preview the form

    Your form is now fully configured and ready to be added to website pages. Save it again and let's preview it.

    Preview the form
    1. Click on the preview icon and see a rudimentary preview of your form. Notice the "Step" headline.
  17. Remove the "Step" headline

    The "Step" headline above does not make much sense, as there is only a single step in our form before a user submits it and the headline should be taken from the page where we will insert the form. To remove it, leave the preview and click on "Step" in the tree view on the left side. Delete the word "Step".

  18. Save the form

    Save the form and check everything is ok - now it looks fine. Let's go and insert it on a page.

  19. Choose a page for your form

    Your form can now be added to a web page. Go to the page module and choose a web page.

    Select a page for your form
    1. Go to the page module.
    2. Choose a page in the page tree (for example: "Contact" for the Contact form :)).
    3. Click on + Content to create a new content element for your form.
  20. Insert Plugin

    In the content element wizard, choose "Form" (in "Form elements" tab).

    Select a page for your form
  21. Choose your form definition

    In the plugin tab, choose the form definition you just created.

    Choose the form definition

    Having a separate form definition allows you to insert the form on many web pages. You can then customize fields, for example, the headline, by using the "normal" TYPO3 header field to render a headline for your form.

  22. Save the content element and enjoy!

    Save the content element and view your web page. You can now see your completed form.

    The finished form

    Depending on your frontend, your form might look different.

    Congratulations! You have created a fully functional contact form.

Create a photo contest form 

In this tutorial, you will learn how to create a photo contest with the form framework.

Let's define what we need:

  • contact information from our visitors: name and email address
  • a photo upload for our visitors
  • an email to us with the participation
  • terms and conditions for our contest
  • a thank you page after submitting the form

Let's get started:

  1. Create a new form

    Go to the Forms module and create a new form by clicking on "Create new form".

    The form module - click the button

    The form module with one form - click the button to create a new one.

  2. Choose a name

    Choose a name for your form - something you will recognize later on - and click "Next"

    The form creation wizard - step 1
  3. Click "Next"

    As we are creating a basic form, step 2 will be automatically done and we directly see step 3. Click "Next" again.

    The form creation wizard - step 3
  4. Create new element

    You will now see the form editor view for your new form. Click on "Create new element" to add a field to your form. The first field we want to create is the "Name". Choose "Text" from "Basic Elements" to create a simple text field for the first name.

    Create New Element Button
  5. Set options for "Name"

    After selecting the "Text" type, we get new options in the inspector panel:

    Fields for a simple text field

    Fields for a simple text field.

    1. Label: Enter a label for your field - in this case "Name".
    2. Placeholder: Enter an example value for the field - this will be used as placeholder in the frontend.
    3. Add a validator "Non-XML text" to only allow simple text input.
  6. Create image upload field

    Similar to the previous field, add an image upload field. Choose type Image Upload.

    Create Image Upload
  7. Configure image upload field

    Set options for the image upload - for example choose specific image formats or enter a max file size.

    Configure Image Upload

    The options of the image upload.

  8. Create "Terms and Conditions"

    To display terms and conditions for our contest, we want to add a simple static text to the form. Choose "Static Text" from the available element types.

    The static text type

    Choose "Static Text".

  9. Enter "Terms and Conditions"

    Fill the text box with the terms and conditions for your contest.

    Set options for Static Text

    Set options for static text.

  10. Change the headline and buttons

    We want to have a nice headline for the form and the next button should read "Summary". To do that, click on "Step" (1) in the form tree and set the fields (2,3) on the right. You don't need to change the previous label, as we are on the first page and there is no previous in this case.

    Set options for step
  11. Create a summary page

    We want to create a summary page where the user can confirm his or her data again. Click on "Create new step" on the left to create a new page/step in the form.

    Create new step

    Create a new step in a form.

    Create new step - choose summary

    Choose summary as type for your new step

    Create new step - configure summary

    Configure the summary headline and button labels.

  12. Preview the form

    Click on the preview button to preview the form.

    Preview the form

    Preview the form.

    Oh no! We forgot to create the email field. Let's do that next.

  13. Add an email field

    Go back to editing the form (1) and click on "Create new element" (2).

    Switch to editing and Create new element

    Switch to editing and create new element

    Choose "email address"

    The "email address" type

    Configure the email address field

    Configure the email address field.

    Move the email address field

    Move the email address field to a better position via drag and drop.

  14. Save the form

    Your form is now fully configured and ready to be inserted on pages.

    Save the form

    Save the form.

    You can save the form and do another review - now it looks fine. Let's go and insert it on a page.

  15. Choose a page for your form

    The form you configured can now be inserted on any page you want. Go to the page module and choose one.

    Select a page for your form
    1. Go to the page module.
    2. Choose a page in the page tree (for example: "Contest").
    3. Click on + Content to create a new content element.
  16. Insert Plugin

    From the content element wizard, choose "Form" (in "Form elements" tab).

    Choose form as type
  17. Choose your form definition

    In the plugin tab, choose the form definition you just created. You can also use the "normal" TYPO3 fields like header to render a headline for your form.

    Choose the form definition

    Having a separate form definition allows you to insert the form on many pages, customizing for example the headline in each case.

  18. Save the content element

    Save the content element and go and view your web page. You can now see your finished form.

    The finished form - Step 1

    Depending on your frontend, your form might look different.

    The finished form - Step 2

    Depending on your frontend, your summary page might look different.

    When testing your form, you might notice that it doesn't do anything yet when we fill it. That's bad. Let's change that.

  19. Add email finisher

    Everytime someone fills the form we want to receive an email with the contest picture. Let's add an email finisher for that:

    Add email finisher

    Configure the email finisher

  20. Add redirect to "Thank You" page

    After submitting the form we want to redirect the user to a thank you page. There's a ready-made finisher for that, too - the "Redirect to a page" finisher:

    Redirect Finisher Options

    Redirect finisher with options.

    Choose "Redirect to a page" from the finisher menu. Click on the "Page" button to open the page browser.

    Page browser of redirect finisher.

    Page browser.

    Choose your thank you page.

  21. Test again - Enjoy!

    Save the form and reload the frontend. Now you can test the form again. After submitting you will now be redirected to the thank you page.

    Thank you page.

    Depending on your frontend, your page might look different.

Sitemap