TYPO3 Form

Extension key

form

Package name

typo3/cms-form

Version

12.4

Language

en

Author

TRITUM GmbH & TYPO3 contributors

License

This document is published under the Open Content License.

Rendered

Tue, 08 Jul 2025 09:21:41 +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 form extension acts as a flexible, extendible, yet easy to use form framework. It equally allows editors, integrators, and developers to build all types of forms. For this task, different interfaces and techniques are available.

As a non-technical editor, you can use the "Forms" backend module. It allows you to create and manage your individual forms with the help of a nifty drag and drop interface. Your work can be previewed instantly.

As an experienced integrator, you are able to build ambitious forms which are stored directly in your site package. Those forms can utilize hefty finishers and ship localization files.

As a developer, you can use the PHP API to forge interfaces with conditional form elements, register new validators and finishers, as well as create custom form elements. Plenty of hooks allow you to manipulate the generation and processing of the both form and data.

The form creation wizard

Form editor displaying a new form in the abstract view

Features List

The following list names some features of the form framework:

  • form editor
    • fully customizable editor for building complex forms
    • replaceable and extendible 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 inheritances and overrides
    • file based
    • behaviour and design of the frontend, plugin, and form editor can be adapted on a per form basis
    • 'prototypes' can be used as boilerplate
  • form elements
    • own form elements possible
    • uploads handled as FAL objects
  • finishers
    • ships a bunch of built-in finishers, like email, redirect, and save to database
    • own finishers possible
    • finisher configuration can be overridden within the form plugin
  • validators
    • own validators possible
  • miscellaneous
    • multiple language support
    • multiple step 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 Admin Tools > 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

You are an editor, your admin installed the form extension and you want to get started quickly? Follow these steps!

  1. Create a new form

    Go to the Forms module, and create a new form there. With the help of the form editor you can build appealing forms easily.

  2. Insert your 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. Select the desired page.
    3. Create a new content element of type "Form". You can find this one under the tab "Form Elements".
    4. Under the tab "Plugin", choose the desired form.
    5. Save the content element.
    6. Repeat steps 2 to 5 until the form is inserted on every page you want.

You can now view your form on your web site. Enjoy!

Quick Start for Integrators

You are an integrator, your admin or you installed the form extension and you want to get started quickly? Just follow these steps!

  1. Include TypoScript sets

    First, 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.

  2. Create a new form

    Go to the Forms module, and create a new form there. With the help of the form editor you can build appealing forms easily.

  3. Move the form definition

    If you wish, you can move the form definition to a dedicated extension.

  4. Provide a translation

    You can also provide a translation of your form, if needed. This is done in an .xlf file which has to be registered in your YAML configuration.

  5. Insert your form in a page

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

    1. Open the page module in the backend.
    2. Select the desired page.
    3. Create a new content element of type "Form". You can find this one under the tab "Form Elements".
    4. Under the tab "Plugin", choose the desired form.
    5. If needed, you can select "Override finisher settings" under the "Plugin" tab. Save the content element.
    6. Repeat steps 2 to 5 until the form is inserted in every page requiring it.

You should now be able to view your form on the frontend. Enjoy!

Finisher Options

Closure finisher

This finisher can only be used in programmatically-created forms. It makes it possible to execute one's own finisher code without having to implement/ declare this finisher.

Usage through code:

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

Copied!

Options

closure

Data type
Closure
Mandatory
Yes
Default value
null

Confirmation finisher

A simple finisher that outputs a given text or a content element, respectively.

Usage within form definition for the case, you want to use a given text.

identifier: example-form
label: 'example'
type: Form

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

Usage through code:

$formDefinition->createFinisher('Confirmation', [
    'message' => 'foo',
]);
Copied!

or create manually (not preferred):

$confirmationFinisher = GeneralUtility::makeInstance(ConfirmationFinisher::class);
$confirmationFinisher->setOptions([
    'message' => 'foo',
]);
$formDefinition->addFinisher($confirmationFinisher);

Copied!

Usage within form definition for the case, you want to output a content element.

identifier: example-form
label: 'example'
type: Form

finishers:
  -
    identifier: Confirmation
    options:
      contentElementUid: 9
...
Copied!

Usage through code:

$formDefinition->createFinisher('Confirmation', [
    'contentElementUid' => 9,
]);
Copied!

or create manually (not preferred):

$confirmationFinisher = GeneralUtility::makeInstance(ConfirmationFinisher::class);
$confirmationFinisher->setOptions([
    'contentElementUid' => 9,
]);
$formDefinition->addFinisher($confirmationFinisher);

Copied!

Options

message

Data type
string
Mandatory
Yes
Default value
The form has been submitted.

DeleteUploads finisher

This finisher remove the currently submited files. Use this finisher e.g after the email finisher if you don't want to keep the files online.

Usage within form definition.

identifier: example-form
label: 'example'
type: Form

finishers:
  -
    identifier: DeleteUploads
...
Copied!

Usage through code:

$formDefinition->createFinisher('DeleteUploads');
Copied!

or create manually (not preferred):

$deleteUploadsFinisher = GeneralUtility::makeInstance(DeleteUploadsFinisher::class);
$formDefinition->addFinisher($deleteUploadsFinisher);

Copied!

Email finisher

This finisher sends an email to one recipient. EXT:form uses 2 EmailFinisher declarations with the identifiers EmailToReceiver and EmailToSender.

Usage within form definition.

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!

Usage through code:

$formDefinition->createFinisher('EmailToReceiver', [
    'subject' => 'Your message',
    'recipients' => [
        'your.company@example.com' => 'Your Company name',
        'ceo@example.com' => 'CEO'
    ],
    'senderAddress' => 'form@example.com',
    'senderName' => 'form submitter',
]);
Copied!

or create manually (not preferred):

$emailFinisher = GeneralUtility::makeInstance(EmailFinisher::class);
$emailFinisher->setOptions([
    'subject' => 'Your message',
    'recipients' => [
        'your.company@example.com' => 'Your Company name',
        'ceo@example.com' => 'CEO'
    ],
    'senderAddress' => 'form@example.com',
    'senderName' => 'form submitter',
]);
$formDefinition->addFinisher($emailFinisher);

Copied!

Options

subject

Data type
string
Mandatory
Yes
Default value (for 'EmailToReceiver' and 'EmailToSender' declarations)
undefined
Description
Subject of the email.

recipients

Data type
array
Mandatory
Yes
Default value (for 'EmailToReceiver' and 'EmailToSender' declarations)
undefined
Description
Email addresses and names of the recipients (To).

senderAddress

Data type
string
Mandatory
Yes
Default value (for 'EmailToReceiver' and 'EmailToSender' declarations)
undefined
Description
Email address of the sender/ visitor (From).

senderName

Data type
string
Mandatory
No
Default value
empty string
Description
Human-readable name of the sender.

replyToRecipients

Data type
array
Mandatory
No
Default value (for 'EmailToReceiver' and 'EmailToSender' declarations)
undefined
Description
Email addresses of to be used as reply-to emails.

carbonCopyRecipients

Data type
array
Mandatory
No
Default value (for 'EmailToReceiver' and 'EmailToSender' declarations)
undefined
Description
Email addresses of the copy recipient.

blindCarbonCopyRecipients

Data type
array
Mandatory
No
Default value (for 'EmailToReceiver' and 'EmailToSender' declarations)
undefined
Description
Email address of the blind copy recipient.

addHtmlPart

Data type
bool
Mandatory
No
Default value (for 'EmailToReceiver' and 'EmailToSender' declarations)
true
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.

attachUploads

Data type
bool
Mandatory
No
Default value (for 'EmailToReceiver' and 'EmailToSender' declarations)
true
Description
If set, all uploaded items are attached to the email.

title

Data type
string
Mandatory
No
Default value (for 'EmailToReceiver' and 'EmailToSender' declarations)
undefined
Description
The title, being shown in the Email.

translation.language

Data type
string
Mandatory
No
Default value (for 'EmailToReceiver' and 'EmailToSender' declarations)
undefined
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.

translation.translationFiles

Data type
array
Mandatory
No
Default value (for 'EmailToReceiver' and 'EmailToSender' declarations)
undefined
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.

layoutRootPaths

Data type
array
Mandatory
No
Default value (for 'EmailToReceiver' and 'EmailToSender' declarations)
undefined
Description
Fluid layout paths

partialRootPaths

Data type
array
Mandatory
No
Default value (for 'EmailToReceiver' and 'EmailToSender' declarations)
undefined
Description
Fluid partial paths

templateRootPaths

Data type
array
Mandatory
No
Default value (for 'EmailToReceiver' and 'EmailToSender' declarations)
undefined
Description
Fluid template paths; all templates get the current FormRuntime assigned as form and the FinisherVariableProvider assigned as finisherVariableProvider.

variables

Data type
array
Mandatory
No
Default value (for 'EmailToReceiver' and 'EmailToSender' declarations)
undefined
Description
associative array of variables which are available inside the Fluid template

FlashMessage finisher

A simple finisher that adds a message to the FlashMessageContainer.

Usage within form definition.

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!

Usage through code:

$formDefinition->createFinisher('FlashMessage', [
    'messageTitle' => 'Merci',
    'messageCode' => 201905041245,
    'messageBody' => 'Thx for using %s',
    'messageArguments' => ['TYPO3'],
    'severity' => \TYPO3\CMS\Core\Type\ContextualFeedbackSeverity::OK,
]);
Copied!

or create manually (not preferred):

$flashMessageFinisher = GeneralUtility::makeInstance(FlashMessageFinisher::class);
$flashMessageFinisher->setOptions([
    'messageTitle' => 'Merci',
    'messageCode' => 201905041245,
    'messageBody' => 'Thx for using %s',
    'messageArguments' => ['TYPO3'],
    'severity' => \TYPO3\CMS\Core\Type\ContextualFeedbackSeverity::OK,
]);
$formDefinition->addFinisher($flashMessageFinisher);

Copied!

Options

messageBody

Data type
string
Mandatory
Yes
Description
The flash message body

messageTitle

Data type
string
Mandatory
No
Default value
empty string
Description
The flash message title, if needed

messageArguments

Data type
array
Mandatory
No
Default value
empty array
Description
The flash message arguments, if needed

messageCode

Data type
int
Mandatory
Yes
Description
The flash message code

severity

Data type
int
Mandatory
No
Default value
\TYPO3\CMS\Core\Type\ContextualFeedbackSeverity::OK (0)
Description
The flash message severity code. See EXT:core/Classes/Type/ContextualFeedbackSeverity.php (GitHub) cases for the codes.

Redirect finisher

A simple finisher that redirects to another page.

Usage within form definition.

identifier: example-form
label: 'example'
type: Form

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

Usage through code:

$formDefinition->createFinisher('Redirect', [
    'pageUid' => 1,
    'additionalParameters' => 'param1=value1&param2=value2',
]);
Copied!

or create manually (not preferred):

$redirectFinisher = GeneralUtility::makeInstance(RedirectFinisher::class);
$redirectFinisher->setOptions([
    'pageUid' => 1,
    'additionalParameters' => 'param1=value1&param2=value2',
]);
$formDefinition->addFinisher($redirectFinisher);

Copied!

Options

pageUid

Data type
int
Mandatory
Yes
Default value
1
Description
Redirect to this page uid

additionalParameters

Data type
string
Mandatory
No
Default value
empty string
Description
Additional parameters which should be used on the target page

fragment

Data type
string
Mandatory
No
Default value
empty string
Description
Add a fragment (e.g. #c9 or #foo) to the redirect link. The # character can be omitted.

delay

Data type
int
Mandatory
No
Default value
0
Description
The redirect delay in seconds.

statusCode

Data type
int
Mandatory
No
Default value
303
Description
The HTTP status code for the redirect. Default is "303 See Other".

SaveToDatabase finisher

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

Usage within form definition.

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
...
Copied!

Usage through code:

$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,
        ],
    ],
]);
Copied!

or create manually (not preferred):

$saveToDatabaseFinisher = GeneralUtility::makeInstance(SaveToDatabaseFinisher::class);
$saveToDatabaseFinisher->setOptions([
    '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,
        ],
    ],
]);
$formDefinition->addFinisher($saveToDatabaseFinisher);
Copied!

You can write options as an array to perform multiple database operations.

Usage within form definition.

identifier: example-form
label: 'example'
type: Form

finishers:
  -
    identifier: SaveToDatabase
    options:
      1:
        table: 'my_table'
        mode: insert
        databaseColumnMappings:
          some_column:
            value: 'cool'
      2:
        table: 'my_other_table'
        mode: update
        whereClause:
          pid: 1
        databaseColumnMappings:
          some_other_column:
            value: '{SaveToDatabase.insertedUids.1}'
...
Copied!

Usage through code:

$formDefinition->createFinisher('SaveToDatabase', [
    1 => [
        'table' => 'my_table',
        'mode' => 'insert',
        'databaseColumnMappings' => [
            'some_column' => ['value' => 'cool'],
        ],
    ],
    2 => [
        'table' => 'my_other_table',
        'mode' => 'update',
        'whereClause' => [
            'pid' => 1,
        ],
        'databaseColumnMappings' => [
            'some_other_column' => ['value' => '{SaveToDatabase.insertedUids.1}'],
        ],
    ],
]);
Copied!

or create manually (not preferred):

$saveToDatabaseFinisher = GeneralUtility::makeInstance(SaveToDatabaseFinisher::class);
$saveToDatabaseFinisher->setOptions([
    1 => [
        'table' => 'my_table',
        'mode' => 'insert',
        'databaseColumnMappings' => [
            'some_column' => ['value' => 'cool'],
        ],
    ],
    2 => [
        'table' => 'my_other_table',
        'mode' => 'update',
        'whereClause' => [
            'pid' => 1,
        ],
        'databaseColumnMappings' => [
            'some_other_column' => ['value' => '{SaveToDatabase.insertedUids.1}'],
        ],
    ],
]);
$formDefinition->addFinisher($saveToDatabaseFinisher);

Copied!

This performs 2 database operations. One insert and one update. You can access the inserted uids through '{SaveToDatabase.insertedUids.<theArrayKeyNumberWithinOptions>}' If you perform an insert operation, the value of the inserted database row will be stored within the FinisherVariableProvider. <theArrayKeyNumberWithinOptions> references to the numeric options.* key.

Options

table

Data type
string
Mandatory
Yes
Default value
null
Description
Insert or update values into this table.

mode

Data type
string
Mandatory
No
Default value
'insert'
Possible values
insert/ update
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.

whereClause

Data type
array
Mandatory
Yes, if mode = update
Default value
empty array
Description
This where clause will be used for a database update action

elements

Data type
array
Mandatory
Yes
Default value
empty array
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.

elements.<formElementIdentifier>.mapOnDatabaseColumn

Data type
string
Mandatory
Yes
Default value
undefined
Description
The value from the submitted form element with the identifier <formElementIdentifier> will be written into this database column.

elements.<formElementIdentifier>.skipIfValueIsEmpty

Data type
bool
Mandatory
No
Default value
false
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.

elements.<formElementIdentifier>.saveFileIdentifierInsteadOfUid

Data type
bool
Mandatory
No
Default value
false
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.

elements.<formElementIdentifier>.dateFormat

Data type
string
Mandatory
No
Default value
'U'
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 in case of such a conversion. You can use every format accepted by the PHP date() function (https://php.net/manual/en/function.date.php#refsect1-function.date-parameters). The default value is "U" which leads to a Unix timestamp.

databaseColumnMappings

Data type
array
Mandatory
No
Default value
empty array
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.

databaseColumnMappings.<databaseColumnName>.value

Data type
string
Mandatory
Yes
Default value
undefined
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 identical to the options.elements configuration variant.

databaseColumnMappings.<databaseColumnName>.skipIfValueIsEmpty

Data type
bool
Mandatory
No
Default value
false
Description
Set this to true if the database column should not be written if the value from options.databaseColumnMappings.<databaseColumnName>.value is empty.

Form editor

Hooks

EXT:form implements various hooks so that forms can be manipulated while being created or saved.

beforeFormCreate

The form manager calls the 'beforeFormCreate' hook.

Connect to the hook

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/form']['beforeFormCreate'][<useATimestampAsKeyPlease>]
    = \VENDOR\YourNamespace\YourClass::class;

Copied!

Use the hook

/**
 * @param string $formPersistenceIdentifier
 * @param array $formDefinition
 * @return array
 */
public function beforeFormCreate(string $formPersistenceIdentifier, array $formDefinition): array
{
    return $formDefinition;
}

Copied!

beforeFormDuplicate

The form manager call the 'beforeFormDuplicate' hook.

Connect to the hook

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/form']['beforeFormDuplicate'][<useATimestampAsKeyPlease>]
    = \VENDOR\YourNamespace\YourClass::class;

Copied!

Use the hook

/**
 * @param string $formPersistenceIdentifier
 * @param array $formDefinition
 * @return array
 */
public function beforeFormDuplicate(string $formPersistenceIdentifier, array $formDefinition): array
{
    return $formDefinition;
}

Copied!

beforeFormDelete

The form manager call the 'beforeFormDelete' hook.

Connect to the hook

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/form']['beforeFormDelete'][<useATimestampAsKeyPlease>]
    = \VENDOR\YourNamespace\YourClass::class;

Copied!

Use the hook

/**
 * @param string $formPersistenceIdentifier
 * @return void
 */
public function beforeFormDelete(string $formPersistenceIdentifier)
{
}

Copied!

beforeFormSave

The form editor call the 'beforeFormSave' hook.

Connect to the hook

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/form']['beforeFormSave'][<useATimestampAsKeyPlease>]
    = \VENDOR\YourNamespace\YourClass::class;

Copied!

Use the hook

/**
 * @param string $formPersistenceIdentifier
 * @param array $formDefinition
 * @return array
 */
public function beforeFormSave(string $formPersistenceIdentifier, array $formDefinition): array
{
    return $formDefinition;
}


Copied!

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 implementations (at least we hope so). For your own implementations, study EXT:form stage templates, which is found under Resources/Private/Backend/Partials/FormEditor/Stage/*. The corresponding JavaScript code is found under Resources/Public/JavaScript/Backend/FormEditor/StageComponent.js. The method _renderTemplateDispatcher() shows, which methods will be used to render the respective form elements.

Essentially, two different inline HTML templates exists that can be rendered with two different JavaScript methods, which are described below. The other inline HTML templates are almost all versions of these two basic variants and show extra/ other form-element information. The same applies to the corresponding JavaScript codes.

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().

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().

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

The methods getFormEditorApp().getViewModel().renderAbstractStageArea() call this event. Strictly speaking, the Stage component in the method _renderTemplateDispatcher() calls this event. The form editor requires for each form element an inline HTML template 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. The _renderTemplateDispatcher() method then identifies, by means of the form element's <formElementTypeIdentifier>, the corresponding JavaScript code to fill the inline HTML template with life. _renderTemplateDispatcher() contains a hard-coded list with the <formElementTypeIdentifier> that is brought in with the EXT:form, and it renders the inline HTML templates accordingly. At the end, the view/stage/abstract/render/template/perform event is called. If you wish to implement your own form element and show it in the form editor, this event can be used to execute in your own JavaScript module the corresponding JavaScript code, with the help of the <formElementTypeIdentifier>. This is generally enough to allow the Stage/SimpleTemplate and/ or Stage/SelectTemplate inline HTML template to be rendered for your own form element and, in the JavaScript code, to access the getFormEditorApp().getViewModel().getStage().renderSimpleTemplateWithValidators() and/ or getFormEditorApp().getViewModel().getStage().renderSelectTemplates() method delivered with EXT:form. An overview over the functionality of the formEditorPartials for the <formElementTypeIdentifier> and its JavaScript code is found here.

Subscribe to the event:

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

A simple example reusing the EXT:form inline HTML template Stage/SelectTemplate and the EXT:form JavaScript code renderSelectTemplates() for a custom form element with <formElementTypeIdentifier> = 'GenderSelect'. In this example, 'GenderSelect' is basically a radio button form element with some predefined options.

prototypes:
  standard:
    formEditor:
      dynamicJavaScriptModules:
        additionalViewModelModules:
          10: '@typo3/my-site-package/backend/form-editor/view-model.js'
      formEditorPartials:
        FormElement-GenderSelect: 'Stage/SelectTemplate'
    formElementsDefinition:
      GenderSelect:
        __inheritances:
          10: 'prototypes.standard.formElementsDefinition.RadioButton'
        renderingOptions:
          templateName: 'RadioButton'
        properties:
          options:
            f: 'Female'
            m: 'Male'
            u: 'Unicorn'
            a: 'Alien'
        formEditor:
          label: 'Gender Select'
          group: select
          groupSorting: 9000
          predefinedDefaults:
            properties:
              options:
                f: 'Female'
                m: 'Male'
                u: 'Unicorn'
                a: 'Alien'
          editors:
            300: null
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] = formElement
             *              args[1] = template
             * @return void
             */
            getPublisherSubscriber().subscribe('view/stage/abstract/render/template/perform', function(topic, args) {
                if (args[0].get('type') === 'GenderSelect') {
                    getFormEditorApp().getViewModel().getStage().renderSelectTemplates(args[0], args[1]);
                }
            });
        };

        /**
         * @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/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!

Frontend rendering

TYPO3\CMS\Form\Domain\Renderer\FluidFormRenderer

Options

The FluidFormRenderer uses some rendering options which are of particular importance, as they determine how the form field is resolved to a path in the file system.

All rendering options are retrieved from the FormDefinition, using the TYPO3\CMS\Form\Domain\Model\FormDefinition::getRenderingOptions() method.

templateRootPaths

Used to define several paths for templates, which will be tried in reversed order (the paths are searched from bottom to top). The first folder where the desired template is found, is used. If the array keys are numeric, they are first sorted and then tried in reversed order. Within this paths, fluid will search for a file which is named like the <formElementTypeIdentifier>.

For example:

templateRootPaths.10 = EXT:form/Resources/Private/Frontend/Templates/
$renderable->getType() == 'Form'
Expected template file: EXT:form/Resources/Private/Frontend/Templates/Form.html
Copied!

Only the root element (FormDefinition) has to be a template file. All child form elements are partials. By default, the root element is called Form.

prototypes:
  standard:
    formElementsDefinition:
      Form:
        renderingOptions:
          templateRootPaths:
            10: 'EXT:form/Resources/Private/Frontend/Templates/'
Copied!

layoutRootPaths

Used to define several paths for layouts, which will be tried in reversed order (the paths are searched from bottom to top). The first folder where the desired layout is found, is used. If the array keys are numeric, they are first sorted and then tried in reversed order.

prototypes:
  standard:
    formElementsDefinition:
      Form:
        renderingOptions:
          layoutRootPaths:
            10: 'EXT:form/Resources/Private/Frontend/Layouts/'
Copied!

partialRootPaths

Used to define several paths for partials, which will be tried in reversed order. The first folder where the desired partial is found, is used. The keys of the array define the order.

Within this paths, fluid will search for a file which is named like the <formElementTypeIdentifier>.

For example:

templateRootPaths.10 = EXT:form/Resources/Private/Frontend/Partials/
$renderable->getType() == 'Text'
Expected template file: EXT:form/Resources/Private/Frontend/Partials/Text.html
Copied!

There is a setting available to set a custom partial name. Please read the section templateName.

prototypes:
  standard:
    formElementsDefinition:
      Form:
        renderingOptions:
          partialRootPaths:
            10: 'EXT:form/Resources/Private/Frontend/Partials/'
Copied!

templateName

By default, the renderable type will be taken as the name for the partial.

For example:

partialRootPaths.10 = EXT:form/Resources/Private/Frontend/Partials/
$renderable->getType() == 'Text'
Expected partial file: EXT:form/Resources/Private/Frontend/Partials/Text.html
Copied!

Set templateName to define a custom name which should be used instead.

For example:

$renderable->getTemplateName() == 'Text'
$renderable->getType() = Foo
Expected partial file: EXT:form/Resources/Private/Frontend/Partials/Text.html
Copied!
prototypes:
  standard:
    formElementsDefinition:
      Foo:
        renderingOptions:
          templateName: 'Text'
Copied!

"render" viewHelper

Arguments

factoryClass

A class name of a FormFactory. This factory is used to create the TYPO3\CMS\Form\Domain\Model\FormDefinition which is the form definition Domain Model. If no factoryClass argument is passed, the factory supplied by EXT:form TYPO3\CMS\Form\ Domain\Factory\ArrayFormFactory is used. Another factory class is required if the form is to be generated programmatically. To do this you must implement your own FormFactory in which your own form is generated programmatically and passes this class name to the ViewHelper. This then renders the form.

<formvh:render factoryClass="VENDOR\MySitePackage\Domain\Factory\CustomFormFactory" />
Copied!

persistenceIdentifier

The form definition to be found under persistenceIdentifier. The PersistenceManager now loads the form definition which is found under persistenceIdentifier and passes this configuration to the factoryClass. In this case, the factoryClass will be given an empty configuration array (if overrideConfiguration is not specified).

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

overrideConfiguration

A configuration to be superimposed can be entered here. If a persistenceIdentifier is specified, the form definition which is found under persistenceIdentifier is loaded. This configuration is then superimposed with overrideConfiguration. This configuration is then passed to the factoryClass. If no persistenceIdentifier is specified, overrideConfiguration is passed directly to the factoryClass. This way a configuration can be given to a factoryClass implementation.

prototypeName

The name of the prototype, on which basis the factoryClass should create the form. If nothing is specified, the configuration (form definition or overrideConfiguration) is searched for the prototype's name. If no specification exists, the standard prototype standard is used.

Build forms programmatically

Implement a FormFactory and build the form:

declare(strict_types = 1);
namespace VENDOR\MySitePackage\Domain\Factory;

use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Extbase\Validation\Validator\NotEmptyValidator;
use TYPO3\CMS\Extbase\Validation\Validator\StringLengthValidator;
use TYPO3\CMS\Form\Domain\Configuration\ConfigurationService;
use TYPO3\CMS\Form\Domain\Factory\AbstractFormFactory;
use TYPO3\CMS\Form\Domain\Model\FormDefinition;

class CustomFormFactory extends AbstractFormFactory
{

    /**
     * Build a FormDefinition.
     * This example build a FormDefinition manually,
     * so $configuration and $prototypeName are unused.
     *
     * @param array $configuration
     * @param string $prototypeName
     * @return FormDefinition
     */
    public function build(array $configuration, string $prototypeName = null): FormDefinition
    {
        $prototypeName = 'standard';
        $configurationService = GeneralUtility::makeInstance(ConfigurationService::class);
        $prototypeConfiguration = $configurationService->getPrototypeConfiguration($prototypeName);

        $form = GeneralUtility::makeInstance(FormDefinition::class, 'MyCustomForm', $prototypeConfiguration);
        $form->setRenderingOption('controllerAction', 'index');

        $page1 = $form->createPage('page1');
        $name = $page1->createElement('name', 'Text');
        $name->setLabel('Name');
        $name->addValidator(GeneralUtility::makeInstance(NotEmptyValidator::class));

        $page2 = $form->createPage('page2');
        $message = $page2->createElement('message', 'Textarea');
        $message->setLabel('Message');
        $message->createValidator('StringLength', ['minimum' => 5, 'maximum' => 20]);

        // Creating a RadioButton/MultiCheckbox
        $page3 = $form->createPage('page3');
        $radio = $page3->createElement('checkbox', 'RadioButton');
        $radio->setProperty('options', ['value1' => 'Label1', 'value2' => 'Label2']);
        $radio->setLabel('My Radio ...');

        $form->createFinisher('EmailToSender', [
            'subject' => 'Hello',
            'recipients' => [
                'your.company@example.com' => 'Your Company name'
            ],
            'senderAddress' => 'bar@example.com',
        ]);

        $this->triggerFormBuildingFinished($form);
        return $form;
    }
}
Copied!

Use this form within your fluid template.

<formvh:render factoryClass="VENDOR\MySitePackage\Domain\Factory\CustomFormFactory" />
Copied!

Common API Methods

TYPO3\CMS\Form\Domain\Model\FormDefinition::createPage()

Create a page with the given $identifier and attach this page to the form.

  • Create Page object based on the given $typeName
  • set defaults inside the Page object
  • attach Page object to this form
  • return the newly created Page object

Signature:

public function createPage(string $identifier, string $typeName = 'Page'): Page;

Copied!

TYPO3\CMS\Form\Domain\Model\FormDefinition::createFinisher()

Create a finisher with the given $identifier and given $options and attach this finisher to the form.

Signature:

public function createFinisher(string $finisherIdentifier, array $options = []): FinisherInterface;

Copied!

TYPO3\CMS\Form\Domain\Model\FormElements\Page::createElement()

Create a form element with the given $identifier and attach it to the page.

  • Create Form Element object based on the given $typeName
  • set defaults inside the Form Element (based on the parent form's field defaults)
  • attach Form Element to the Page
  • return the newly created Form Element object

Signature:

public function createElement(string $identifier, string $typeName): FormElementInterface;

Copied!

TYPO3\CMS\Form\Domain\Model\FormElements\Section::createElement()

Create a form element with the given $identifier and attach it to the section.

  • Create Form Element object based on the given $typeName
  • set defaults inside the Form Element (based on the parent form's field defaults)
  • attach Form Element to the Section
  • return the newly created Form Element object

Signature:

public function createElement(string $identifier, string $typeName): FormElementInterface;

Copied!

TYPO3\CMS\Form\Domain\Model\Renderable\AbstractFormElement::createValidator()

Create a validator for the element. Mainly possible for

  • TYPO3\CMS\Form\Domain\Model\FormElements\AdvancedPassword
  • TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
  • TYPO3\CMS\Form\Domain\Model\FormElements\DatePicker
  • TYPO3\CMS\Form\Domain\Model\FormElements\FileUpload

Signature:

public function createValidator(string $validatorIdentifier, array $options = []);

Copied!

initializeFormElement()

Will be called as soon as the element is added to a form. Possible for

  • TYPO3\CMS\Form\Domain\Model\FormElements\Section
  • TYPO3\CMS\Form\Domain\Model\FormElements\AdvancedPassword
  • TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
  • TYPO3\CMS\Form\Domain\Model\FormElements\DatePicker
  • TYPO3\CMS\Form\Domain\Model\FormElements\FileUpload

Signature:

public function initializeFormElement();

Copied!

You can use this method to prefill form element data for example from database tables. All the classes you can see above extends from the TYPO3\CMS\Form\Domain\Model\FormElement\AbstractFormElement. AbstractFormElement implements this method like this:

public function initializeFormElement()
{
    if (
        isset($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/form']['initializeFormElement'])
        && is_array($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/form']['initializeFormElement'])
    ) {
        foreach ($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/form']['initializeFormElement'] as $className) {
            $hookObj = GeneralUtility::makeInstance($className);
            if (method_exists($hookObj, 'initializeFormElement')) {
                $hookObj->initializeFormElement(
                    $this
                );
            }
        }
    }
}
Copied!

If you extend your custom implementation from AbstractFormElement (and you should do this), it enables you to override the 'initializeFormElement' method within your custom implementation class. If you do not call the parents 'initializeFormElement' then no hook will be thrown.

If your use case for a custom form element implementation means that you only want to initialize you form element programmatically (e.g to get database data) and no other special things are to do, you might prefer the hook. You only need a class which connects to this hook. Then detect the form element you wish to initialize.

Further API Methods

TYPO3\CMS\Form\Domain\Model\FormRuntime

overrideCurrentPage()

Override the current page taken from the request, rendering the page with index $pageIndex instead. This is typically not needed in production code. You might prefer the hook afterInitializeCurrentPage

Signature:

public function overrideCurrentPage(int $pageIndex);
Copied!

Example:

$form = $formDefinition->bind($this->request);
$form->overrideCurrentPage($pageIndex);

Copied!
render()

Render the form.

Signature:

public function render();

Copied!
getIdentifier()

Returns the identifier of the form element.

Signature:

public function getIdentifier(): string;
Copied!
getRequest()

Get the request this object is bound to. This is mostly relevant inside Finishers, where you f.e. want to redirect the user to another page.

Signature:

public function getRequest(): Request;

Copied!
getResponse()

Get the response this object is bound to. This is mostly relevant inside Finishers, where you f.e. want to set response headers or output content.

Signature:

public function getResponse(): Response;

Copied!
getCurrentPage()

Returns the currently selected page.

Signature:

public function getCurrentPage(): Page;

Copied!
getPreviousPage()

Returns the previous page of the currently selected one or NULL if there is no previous page.

Signature:

public function getPreviousPage();

Copied!
getNextPage()

Returns the next page of the currently selected one or NULL if there is no next page.

Signature:

public function getNextPage();

Copied!
getType()

Abstract "type" of the form element. For example, the type is used during the rendering process to determine the template file.

Signature:

public function getType(): string;
Copied!
getElementValue()

Returns the value of the specified element.

Signature:

public function getElementValue(string $identifier);

Copied!
getPages()

Return the form's pages in the correct order.

Signature:

public function getPages(): array;

Copied!
getRenderingOptions()

Get all rendering options of the form element.

Signature:

public function getRenderingOptions(): array;
Copied!
getRendererClassName()

Get the renderer class name.

Signature:

public function getRendererClassName(): string;
Copied!
getLabel()

Get the label of the form element.

Signature:

public function getLabel(): string;
Copied!
getTemplateName()

Get the template name of the form element.

Signature:

public function getTemplateName(): string;
Copied!
getFormDefinition()

Get the underlying form definition from the runtime.

Signature:

public function getFormDefinition(): FormDefinition;

Copied!

TYPO3\CMS\Form\Domain\Model\FormDefinition

addPage()

Add a new page at the end of the form. Instead of this method, you should use createPage instead.

Signature:

public function addPage(Page $page);

Copied!
createPage()

Create a page with the given $identifier and attach this page to the form.

  • Create Page object based on the given $typeName
  • set defaults inside the Page object
  • attach Page object to this form
  • return the newly created Page object

Signature:

public function createPage(string $identifier, string $typeName = 'Page'): Page;

Copied!
getPages()

Return the form's pages in the correct order.

Signature:

public function getPages(): array;

Copied!
hasPageWithIndex()

Check whether a page with the given $index exists.

Signature:

public function hasPageWithIndex(int $index): bool;

Copied!
getPageByIndex()

Get the page with the passed index. The first page has index zero. If page at $index does not exist, an exception is thrown.

Signature:

public function getPageByIndex(int $index);

Copied!
addFinisher()

Adds the specified finisher to the form. Instead of this method, you should use createFinisher instead.

Signature:

public function addFinisher(FinisherInterface $finisher);

Copied!
createFinisher()

Create a finisher with the given $identifier and given $options and attach this finisher to the form.

Signature:

public function createFinisher(string $finisherIdentifier, array $options = []): FinisherInterface;
Copied!
getFinishers()

Gets all finishers of the form.

Signature:

public function getFinishers(): array;

Copied!
getElementByIdentifier()

Get a form element by its identifier. If identifier does not exist, returns NULL.

Signature:

public function getElementByIdentifier(string $elementIdentifier);

Copied!
movePageAfter()

Move $pageToMove after $referencePage.

Signature:

public function movePageAfter(Page $pageToMove, Page $referencePage);

Copied!
removePage()

Remove $pageToRemove from the form.

Signature:

public function removePage(Page $pageToRemove);

Copied!
bind()

Bind the current request and response to this form instance, effectively creating a new "instance" of the Form.

Signature:

public function bind(Request $request): FormRuntime;

Copied!
getProcessingRule()

Get the processing rule which contains information for property mappings and validations.

Signature:

public function getProcessingRule(string $propertyPath): ProcessingRule;

Copied!
getType()

Abstract "type" of the form element. For example, the type is used during the rendering process to determine the template file.

Signature:

public function getType(): string;
Copied!
getIdentifier()

Returns the identifier of the form element.

Signature:

public function getIdentifier(): string;
Copied!
setIdentifier()

Set the identifier of the form element.

Signature:

public function setIdentifier(string $identifier);
Copied!
setOptions()

Set multiple properties of this object at once. Every property which has a corresponding set* method can be set using the passed $options array.

Signature:

public function setOptions(array $options);
Copied!
addValidator()

Registers a validator for the form element.

Signature:

public function addValidator(ValidatorInterface $validator);
Copied!
setDataType()

The target data type the data should be converted through the property mapper.

Signature:

public function setDataType(string $dataType);
Copied!

Example:

public function initializeFormElement()
{
    $this->setDataType('TYPO3\CMS\Extbase\Domain\Model\FileReference');
    parent::initializeFormElement();
}
Copied!
getRendererClassName()

Get the renderer class name.

Signature:

public function getRendererClassName(): string;
Copied!
setRendererClassName()

Set the renderer class name.

Signature:

public function setRendererClassName(string $rendererClassName);

Copied!
getRenderingOptions()

Get all rendering options of the form element.

Signature:

public function getRenderingOptions(): array;
Copied!
setRenderingOption()

Set a rendering option.

Signature:

public function setRenderingOption(string $key, $value);
Copied!
getParentRenderable()

Return the parent form element.

Signature:

public function getParentRenderable();
Copied!
setParentRenderable()

Set the new parent renderable. You should not call this directly. It is automatically called by addRenderable.

Signature:

public function setParentRenderable(CompositeRenderableInterface $renderable);
Copied!
getRootForm()

Get the root form the element belongs to.

Signature:

public function getRootForm(): FormDefinition
Copied!
getLabel()

Get the label of the form element.

Signature:

public function getLabel(): string;
Copied!
setLabel()

Set the label of the form element.

Signature:

public function setLabel(string $label);
Copied!
getTemplateName()

Get the template name of the form element.

Signature:

public function getTemplateName(): string;
Copied!

TYPO3\CMS\Form\Domain\Model\FormElements\Page

getElements()

Get the child form elements.

Signature:

public function getElements(): array;
Copied!
getElementsRecursively()

Returns all RenderableInterface instances of this composite renderable recursively.

Signature:

public function getElementsRecursively(): array;
Copied!
addElement()

Add a new form element at the end. Instead of this method, you should use createElement instead.

Signature:

public function addElement(FormElementInterface $formElement);
Copied!
createElement()

Create a form element with the given $identifier and attach it to the page.

  • Create Form Element object based on the given $typeName
  • set defaults inside the Form Element (based on the parent form's field defaults)
  • attach Form Element to the Page
  • return the newly created Form Element object

Signature:

public function createElement(string $identifier, string $typeName): FormElementInterface;

Copied!
moveElementBefore()

Move FormElement $elementToMove before $referenceElement. Both $elementToMove and $referenceElement must be direct descendants of this Section/Page.

Signature:

public function moveElementBefore(FormElementInterface $elementToMove, FormElementInterface $referenceElement);
Copied!
moveElementAfter()

Move FormElement $elementToMove after $referenceElement. Both $elementToMove and $referenceElement must be direct descendants of this Section/Page.

Signature:

public function moveElementAfter(FormElementInterface $elementToMove, FormElementInterface $referenceElement);
Copied!
removeElement()

Remove $elementToRemove from this Section/Page.

Signature:

public function removeElement(FormElementInterface $elementToRemove);
Copied!
getType()

Abstract "type" of the form element. For example, the type is used during the rendering process to determine the template file.

Signature:

public function getType(): string;
Copied!
getIdentifier()

Returns the identifier of the form element.

Signature:

public function getIdentifier(): string;
Copied!
setIdentifier()

Set the identifier of the form element.

Signature:

public function setIdentifier(string $identifier);
Copied!
setOptions()

Set multiple properties of this object at once. Every property which has a corresponding set* method can be set using the passed $options array.

Signature:

public function setOptions(array $options);
Copied!
addValidator()

Registers a validator for the form element.

Signature:

public function addValidator(ValidatorInterface $validator);
Copied!
createValidator()

Create a validator for the element.

Signature:

public function createValidator(string $validatorIdentifier, array $options = []);
Copied!
setDataType()

The target data type the data should be converted through the property mapper.

Signature:

public function setDataType(string $dataType);
Copied!

Example:

public function initializeFormElement()
{
    $this->setDataType('TYPO3\CMS\Extbase\Domain\Model\FileReference');
    parent::initializeFormElement();
}
Copied!
getRendererClassName()

Get the renderer class name.

Signature:

public function getRendererClassName(): string;
Copied!
getRenderingOptions()

Get all rendering options of the form element.

Signature:

public function getRenderingOptions(): array;
Copied!
setRenderingOption()

Set a rendering option.

Signature:

public function setRenderingOption(string $key, $value);
Copied!
getParentRenderable()

Return the parent form element.

Signature:

public function getParentRenderable();
Copied!
setParentRenderable()

Set the new parent renderable. You should not call this directly. It is automatically called by addRenderable.

Signature:

public function setParentRenderable(CompositeRenderableInterface $renderable);
Copied!
getRootForm()

Get the root form the element belongs to.

Signature:

public function getRootForm(): FormDefinition
Copied!
getLabel()

Get the label of the form element.

Signature:

public function getLabel(): string;
Copied!
setLabel()

Set the label of the form element.

Signature:

public function setLabel(string $label);
Copied!
getTemplateName()

Get the template name of the form element.

Signature:

public function getTemplateName(): string;
Copied!

TYPO3\CMS\Form\Domain\Model\FormElements\Section

initializeFormElement()

Will be called as soon as the element is (tried to be) added to a form.

Signature:

public function initializeFormElement();
Copied!
getUniqueIdentifier()

Returns a unique identifier of the element. While element identifiers are only unique within one form, this identifier includes also the identifier of the form itself, and therefore making it "globally" unique.

Signature:

public function getUniqueIdentifier(): string;
Copied!

Example:

identifier: exampleForm
label: 'Simple Contact Form'
prototype: standard
type: Form

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

    renderables:
      -
        identifier: name
        label: 'Name'
        type: Text
        defaultValue: ''
Copied!
// $formElement->getIdentifier() == 'name'
$uniqueIdentifier = $formElement->getUniqueIdentifier();
// $uniqueIdentifier == 'exampleForm-name'
Copied!
setProperty()

Set an element-specific configuration property.

Signature:

public function setProperty(string $key, $value);
Copied!
getProperties()

Get all element-specific configuration properties.

Signature:

public function getProperties(): array;
Copied!
isRequired()

Whether or not the element is required. An element is required if the TYPO3\CMS\Extbase\Validation\Validator\NotEmptyValidator is attached to the element.

Signature:

public function isRequired(): bool;
Copied!
getElements()

Get the child form elements.

Signature:

public function getElements(): array;
Copied!
getElementsRecursively()

Returns all RenderableInterface instances of this composite renderable recursively.

Signature:

public function getElementsRecursively(): array;
Copied!
addElement()

Add a new form element at the end. Instead of this method, you should use createElement instead.

Signature:

public function addElement(FormElementInterface $formElement);
Copied!
createElement()

Create a form element with the given $identifier and attach it to the section.

  • Create Form Element object based on the given $typeName
  • set defaults inside the Form Element (based on the parent form's field defaults)
  • attach Form Element to the Section
  • return the newly created Form Element object

Signature:

public function createElement(string $identifier, string $typeName): FormElementInterface;

Copied!
moveElementBefore()

Move FormElement $elementToMove before $referenceElement. Both $elementToMove and $referenceElement must be direct descendants of this Section/Page.

Signature:

public function moveElementBefore(FormElementInterface $elementToMove, FormElementInterface $referenceElement);
Copied!
moveElementAfter()

Move FormElement $elementToMove after $referenceElement. Both $elementToMove and $referenceElement must be direct descendants of this Section/Page.

Signature:

public function moveElementAfter(FormElementInterface $elementToMove, FormElementInterface $referenceElement);
Copied!
removeElement()

Remove $elementToRemove from this Section/Page.

Signature:

public function removeElement(FormElementInterface $elementToRemove);
Copied!
getType()

Abstract "type" of the form element. For example, the type is used during the rendering process to determine the template file.

Signature:

public function getType(): string;
Copied!
getIdentifier()

Returns the identifier of the form element.

Signature:

public function getIdentifier(): string;
Copied!
setIdentifier()

Set the identifier of the form element.

Signature:

public function setIdentifier(string $identifier);
Copied!
setOptions()

Set multiple properties of this object at once. Every property which has a corresponding set* method can be set using the passed $options array.

Signature:

public function setOptions(array $options);
Copied!
addValidator()

Registers a validator for the form element.

Signature:

public function addValidator(ValidatorInterface $validator);
Copied!
createValidator()

Create a validator for the element.

Signature:

public function createValidator(string $validatorIdentifier, array $options = []);
Copied!
setDataType()

The target data type the data should be converted through the property mapper.

Signature:

public function setDataType(string $dataType);
Copied!

Example:

public function initializeFormElement()
{
    $this->setDataType('TYPO3\CMS\Extbase\Domain\Model\FileReference');
    parent::initializeFormElement();
}
Copied!
getRendererClassName()

Get the renderer class name.

Signature:

public function getRendererClassName(): string;
Copied!
getRenderingOptions()

Get all rendering options of the form element.

Signature:

public function getRenderingOptions(): array;
Copied!
setRenderingOption()

Set a rendering option.

Signature:

public function setRenderingOption(string $key, $value);
Copied!
getParentRenderable()

Return the parent form element.

Signature:

public function getParentRenderable();
Copied!
setParentRenderable()

Set the new parent renderable. You should not call this directly. It is automatically called by addRenderable.

Signature:

public function setParentRenderable(CompositeRenderableInterface $renderable);
Copied!
getRootForm()

Get the root form the element belongs to.

Signature:

public function getRootForm(): FormDefinition
Copied!
getLabel()

Get the label of the form element.

Signature:

public function getLabel(): string;
Copied!
setLabel()

Set the label of the form element.

Signature:

public function setLabel(string $label);
Copied!
getTemplateName()

Get the template name of the form element.

Signature:

public function getTemplateName(): string;
Copied!

TYPO3\CMS\Form\Domain\Model\FormElements\AbstractFormElement

The following classes extends from AbstractFormElement and therefore contain the following API methods.

  • TYPO3\CMS\Form\Domain\Model\FormElements\AdvancedPassword
  • TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement
  • TYPO3\CMS\Form\Domain\Model\FormElements\DatePicker
  • TYPO3\CMS\Form\Domain\Model\FormElements\FileUpload
initializeFormElement()

Will be called as soon as the element is (tried to be) added to a form.

Signature:

public function initializeFormElement();
Copied!
getUniqueIdentifier()

Returns a unique identifier of the element. While element identifiers are only unique within one form, this identifier includes also the identifier of the form itself, and therefore making it "globally" unique.

Signature:

public function getUniqueIdentifier(): string;
Copied!

Example:

identifier: exampleForm
label: 'Simple Contact Form'
prototype: standard
type: Form

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

    renderables:
      -
        identifier: name
        label: 'Name'
        type: Text
        defaultValue: ''
Copied!
// $formElement->getIdentifier() == 'name'
$uniqueIdentifier = $formElement->getUniqueIdentifier();
// $uniqueIdentifier == 'exampleForm-name'
Copied!
getDefaultValue()

Get the default value with which the form element should be initialized during display.

Signature:

public function getDefaultValue();
Copied!
setDefaultValue()

Set the default value with which the form element should be initialized during display.

Signature:

public function setDefaultValue($defaultValue);
Copied!
setProperty()

Set an element-specific configuration property.

Signature:

public function setProperty(string $key, $value);
Copied!
getProperties()

Get all element-specific configuration properties.

Signature:

public function getProperties(): array;
Copied!
isRequired()

Whether or not the element is required. An element is required if the TYPO3\CMS\Extbase\Validation\Validator\NotEmptyValidator is attached to the element.

Signature:

public function isRequired(): bool;
Copied!
getType()

Abstract "type" of the form element. For example, the type is used during the rendering process to determine the template file.

Signature:

public function getType(): string;
Copied!
getIdentifier()

Returns the identifier of the form element.

Signature:

public function getIdentifier(): string;
Copied!
setIdentifier()

Set the identifier of the form element.

Signature:

public function setIdentifier(string $identifier);
Copied!
setOptions()

Set multiple properties of this object at once. Every property which has a corresponding set* method can be set using the passed $options array.

Signature:

public function setOptions(array $options);
Copied!
addValidator()

Registers a validator for the form element.

Signature:

public function addValidator(ValidatorInterface $validator);
Copied!
createValidator()

Create a validator for the element.

Signature:

public function createValidator(string $validatorIdentifier, array $options = []);
Copied!
setDataType()

The target data type the data should be converted through the property mapper.

Signature:

public function setDataType(string $dataType);
Copied!

Example:

public function initializeFormElement()
{
    $this->setDataType('TYPO3\CMS\Extbase\Domain\Model\FileReference');
    parent::initializeFormElement();
}
Copied!
getRendererClassName()

Get the renderer class name.

Signature:

public function getRendererClassName(): string;
Copied!
getRenderingOptions()

Get all rendering options of the form element.

Signature:

public function getRenderingOptions(): array;
Copied!
setRenderingOption()

Set a rendering option.

Signature:

public function setRenderingOption(string $key, $value);
Copied!
getParentRenderable()

Return the parent form element.

Signature:

public function getParentRenderable();
Copied!
setParentRenderable()

Set the new parent renderable. You should not call this directly. It is automatically called by addRenderable.

Signature:

public function setParentRenderable(CompositeRenderableInterface $renderable);
Copied!
getRootForm()

Get the root form the element belongs to.

Signature:

public function getRootForm(): FormDefinition
Copied!
getLabel()

Get the label of the form element.

Signature:

public function getLabel(): string;
Copied!
setLabel()

Set the label of the form element.

Signature:

public function setLabel(string $label);
Copied!
getTemplateName()

Get the template name of the form element.

Signature:

public function getTemplateName(): string;
Copied!

TYPO3\CMS\Form\Domain\Finishers\AbstractFinisher

The following classes extends from AbstractFinisher and therefore contain the following API methods.

  • TYPO3\CMS\Form\Domain\Finishers\ClosureFinisher
  • TYPO3\CMS\Form\Domain\Finishers\ConfirmationFinisher
  • TYPO3\CMS\Form\Domain\Finishers\DeleteUploadsFinisher
  • TYPO3\CMS\Form\Domain\Finishers\EmailFinisher
  • TYPO3\CMS\Form\Domain\Finishers\FlashMessageFinisher
  • TYPO3\CMS\Form\Domain\Finishers\RedirectFinisher
  • TYPO3\CMS\Form\Domain\Finishers\SaveToDatabaseFinisher
execute()

Executes the finisher. AbstractFinisher::execute() call $this->executeInternal() at the end. Own finisher implementations which extends from AbstractFinisher: must start their own logic within executeInternal().

Signature:

public function execute(FinisherContext $finisherContext);

Copied!
setOptions()

Set the finisher options. Instead of directly accessing them, you should rather use parseOption().

Signature:

public function setOptions(array $options);

Copied!
setOption()

Sets a single finisher option.

Signature:

public function setOption(string $optionName, $optionValue);

Copied!
parseOption()

Please read Accessing finisher options

Signature:

protected function parseOption(string $optionName);

Copied!

TYPO3\CMS\Form\Domain\Finishers\FinisherContext

cancel()

Cancels the finisher invocation after the current finisher.

Signature:

public function cancel();

Copied!
getFormRuntime()

The Form Runtime that is associated with the current finisher.

Signature:

public function getFormRuntime(): FormRuntime;

Copied!
getFormValues()

The values of the submitted form (after validation and property mapping).

Signature:

public function getFormValues(): array;

Copied!
getFinisherVariableProvider()

Returns the current FinisherVariableProvider.

Signature:

public function getFinisherVariableProvider(): FinisherVariableProvider;

Copied!

TYPO3\CMS\Form\Domain\Finishers\FinisherVariableProvider

Please read Share data between finishers

add()

Add a variable to the finisher variable provider. In case the value is already inside, it is silently overridden.

Signature:

public function add(string $finisherIdentifier, string $key, $value);

Copied!
get()

Gets a variable from the finisher variable provider.

Signature:

public function get(string $finisherIdentifier, string $key, $default = null);

Copied!
exists()

Determine whether there is a variable stored for the given key.

Signature:

public function exists($finisherIdentifier, $key): bool;

Copied!
remove()

Remove a value from the finisher variable provider.

Signature:

public function remove(string $finisherIdentifier, string $key);

Copied!

TYPO3\CMS\Form\Domain\Configuration\ConfigurationService

getPrototypeConfiguration()

Get the configuration for a given $prototypeName

Signature:

public function getPrototypeConfiguration(string $prototypeName): array;

Copied!

TYPO3\CMS\Form\Domain\Factory\AbstractFormFactory

triggerFormBuildingFinished()

Helper to be called by every FormFactory which extends from AbstractFormFactory after everything has been built to call the "afterBuildingFinished" hook on all form elements.

Signature:

protected function triggerFormBuildingFinished(FormDefinition $form);

Copied!

TYPO3\CMS\Form\Domain\Factory\FormFactoryInterface

build()

Build a form definition, depending on some configuration.

Signature:

public function build(array $configuration, string $prototypeName = null): FormDefinition;

Copied!

TYPO3\CMS\Form\Domain\Renderer\RendererInterface

render()

Renders the FormDefinition. This method is expected to call the beforeRendering hook on each form element:

public function render(): string;

Copied!
setFormRuntime()

Set the current FormRuntime:

public function setFormRuntime(FormRuntime $formRuntime);

Copied!
getFormRuntime()

Get the current FormRuntime:

public function getFormRuntime(): FormRuntime;

Copied!

Runtime manipulation

Hooks

initializeFormElement

You can connect to this hook and initialize a form element without defining a custom implementation to access the element's initializeFormElement method. You only need a class which connects to this hook. Then detect the form element you wish to initialize. For example, you can use this hook to prefill form element data from database tables. Note that this hook will be called after all properties from the prototype configuration are set in the form element but before the properties from the form definition are set in the form element. If you want to prefill form element data after the complete form element is configured you should use the afterBuildingFinished hook.

The initializeFormElement hook is invoked by the methods TYPO3\CMS\Form\Domain\Model\FormElements\Page::createElement() and TYPO3\CMS\Form\Domain\Model\FormElements\Section::createElement(). That means the hook will not be triggered for Pages. At this point you do not have access to submitted form element values.

Connect to the hook
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/form']['initializeFormElement'][<useATimestampAsKeyPlease>]
    = \VENDOR\YourNamespace\YourClass::class;

Copied!
Use the hook
/**
 * @param \TYPO3\CMS\Form\Domain\Model\Renderable\RenderableInterface $renderable
 * @return void
 */
public function initializeFormElement(\TYPO3\CMS\Form\Domain\Model\Renderable\RenderableInterface $renderable)
{
    if ($renderable->getUniqueIdentifier() === 'contactForm-text-1') {
        $renderable->setDefaultValue('foo');
    }
}

Copied!

What does <useATimestampAsKeyPlease> mean?

Timestamps are recommended for hooks such as those of the form framework, as seen in the following example:

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/form']['initializeFormElement'][<useATimestampAsKeyPlease>]
    = \VENDOR\YourNamespace\YourClass::class;

Copied!

Leaving the section <useATimestampAsKeyPlease> as is is not recommended. It does nothing except cause the extension to fail and an error message to be delivered. Nor should it be replaced with a function like time(), as the key should be unalterable. Instead, replace this section with the current UNIX timestamp the moment you are implementing the hook. Check out the following example:

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/form']['initializeFormElement'][1507018413]
    = \VENDOR\YourNamespace\YourClass::class;

Copied!

The purpose of timestamps is to prevent conflicts that arise when two or more extensions within one TYPO3 installation use identical keys (e.g. $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/form']['initializeFormElement']['foo']). When timestamps are used, even a one-second difference in the time different hooks were connected ensures that one hook does not override the other.

beforeRemoveFromParentRenderable

This hook is invoked by the methods TYPO3\CMS\Form\Domain\Model\FormDefinition::removePage(), TYPO3\CMS\Form\Domain\Model\FormElements\Page::removeElement() and TYPO3\CMS\Form\Domain\Model\FormElements\Section::removeElement()

Connect to the hook
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/form']['beforeRemoveFromParentRenderable'][<useATimestampAsKeyPlease>]
    = \VENDOR\YourNamespace\YourClass::class;

Copied!
Use the hook
/**
 * @param \TYPO3\CMS\Form\Domain\Model\Renderable\RenderableInterface $renderable
 * @return void
 */
public function beforeRemoveFromParentRenderable(\TYPO3\CMS\Form\Domain\Model\Renderable\RenderableInterface $renderable)
{
}

Copied!

afterBuildingFinished

This hook is called for each form element after the class TYPO3\CMS\Form\Domain\Factory\ArrayFormFactory has built the entire form. This hook is triggered just before the FormRuntime object is generated. At this point, no run-time information (e.g. assigned form values) is yet available. It can, for example, be used to generate new form elements within complex forms. The ArrayFormFactory is used by EXT:form via the RenderViewHelper to render forms using a `form definition` YAML file. Each form factory implementation must deal with the calling of this hook themselves. EXT:form itself uses this hook to initialize the property-mapper configuration for FileUpload elements.

Connect to the hook
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/form']['afterBuildingFinished'][<useATimestampAsKeyPlease>]
    = \VENDOR\YourNamespace\YourClass::class;

Copied!
Use the hook
/**
 * @param \TYPO3\CMS\Form\Domain\Model\Renderable\RenderableInterface $renderable
 * @return void
 */
public function afterBuildingFinished(\TYPO3\CMS\Form\Domain\Model\Renderable\RenderableInterface $renderable)
{
}

Copied!

afterInitializeCurrentPage

EXT:form automatically detects the page that should be shown and allow users only to jump to the directly following (or previous) pages. This hook enables you to implement a custom behavior, for example pages that are shown only when other form elements have specific values.

Connect to the hook
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/form']['afterInitializeCurrentPage'][<useATimestampAsKeyPlease>]
    = \VENDOR\YourNamespace\YourClass::class;

Copied!
Use the hook
/**
 * @param \TYPO3\CMS\Form\Domain\Runtime\FormRuntime $formRuntime
 * @param null|\TYPO3\CMS\Form\Domain\Model\Renderable\CompositeRenderableInterface $currentPage
 * @param null|\TYPO3\CMS\Form\Domain\Model\Renderable\CompositeRenderableInterface $lastPage
 * @param mixed $elementValue submitted value of the element *before post processing*
 * @return null|\TYPO3\CMS\Form\Domain\Model\Renderable\CompositeRenderableInterface
 */
public function afterInitializeCurrentPage(\TYPO3\CMS\Form\Domain\Runtime\FormRuntime $formRuntime, \TYPO3\CMS\Form\Domain\Model\Renderable\CompositeRenderableInterface $currentPage = null, \TYPO3\CMS\Form\Domain\Model\Renderable\CompositeRenderableInterface $lastPage = null, array $requestArguments = []): ?\TYPO3\CMS\Form\Domain\Model\Renderable\CompositeRenderableInterface
{
    return $currentPage;
}

Copied!

afterSubmit

You can use it for example for dynamic validations which depends on other submitted form element values. This hook is invoked by the FormRuntime for each form element before values are property mapped, validated and pushed within the FormRuntime's FormState. If the first page is submitted at the first time you cannot access the form element values from the first page by just calling $formRuntime['<someOtherFormElementIdentifier>'] to access the submitted form element values from the first page. In this case you can access the submitted raw data through $requestArguments. EXT:form itself uses this hook to dynamically add validation errors for AdvancedPassword form elements.

Connect to the hook
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/form']['afterSubmit'][<useATimestampAsKeyPlease>]
    = \VENDOR\YourNamespace\YourClass::class;

Copied!
Use the hook
/**
 * @param \TYPO3\CMS\Form\Domain\Runtime\FormRuntime $formRuntime
 * @param \TYPO3\CMS\Form\Domain\Model\Renderable\RenderableInterface $renderable
 * @param mixed $elementValue submitted value of the element *before post processing*
 * @param array $requestArguments submitted raw request values
 * @return void
 */
public function afterSubmit(\TYPO3\CMS\Form\Domain\Runtime\FormRuntime $formRuntime, \TYPO3\CMS\Form\Domain\Model\Renderable\RenderableInterface $renderable, $elementValue, array $requestArguments = [])
{
    return $elementValue;
}

Copied!

beforeRendering

This is a hook that is invoked by the rendering system before the corresponding element is rendered. Use this to access previously submitted values and/or modify the FormRuntime before an element is outputted to the browser. This hook is called after all validations and property mappings are done.

Connect to the hook
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/form']['beforeRendering'][<useATimestampAsKeyPlease>]
    = \VENDOR\YourNamespace\YourClass::class;

Copied!
Use the hook
/**
 * @param \TYPO3\CMS\Form\Domain\Runtime\FormRuntime $formRuntime
 * @param \TYPO3\CMS\Form\Domain\Model\Renderable\RootRenderableInterface $renderable
 * @return void
 */
public function beforeRendering(\TYPO3\CMS\Form\Domain\Runtime\FormRuntime $formRuntime, \TYPO3\CMS\Form\Domain\Model\Renderable\RootRenderableInterface $renderable)
{
}
Copied!

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 mentioned earlier, the form extension can be seen as a framework which allows editors, integrators, and developers to create and manage all kind of forms. For this task, different interfaces and techniques are available.

Conceptually, EXT:form always tries to consider the form editor first. The requirements for the form editor differ between the defined target groups. On the one hand, as an integrator, you may want to manage HTML class attributes. On the other hand, as a developer you may want to use the form editor as a kick starter for complex form definitions, and you may want to edit all possible (technical) properties you can think of.

The form extension tries to find a compromise for such cases. Since the form editor is mainly used by backend editors, only simple, nontechnical properties are displayed and editable. However, EXT:form allows you to easily extend the form editor by writing some YAML configurations.

If this is not enough for your specific project, EXT:form provides a way to integrate your own JavaScript code by utilizing the JavaScript API. Thus, it should be possible to meet all your requirements.

Your forms can be created and defined globally in the form module and/ or loaded from extensions. Within the Mail form content element, one of those forms can be referenced.

Furthermore, certain aspects of a form can be overridden in the plugin. This concept allows you to reuse the same form on different pages with the same, or a different, configuration.

The following explanations will show you that there are many ways to manipulate the form framework in different contexts.

Those explanations are partly contradictory, depending on your use case. It is up to you how you want to use the form framework. Be creative and share your solution with the TYPO3 community!

This chapter attempts to describe the basics of the form framework. Check out the reference and the example sections to get a deeper understanding of the framework.

Configuration

A lot of configuration. Why?

The requirements for building forms in a declarative and programmatic way are complex. What we have learned so far is that the program code must be kept as generic as possible to handle the dynamics of forms, but a generic program code means a lot of configurative overhead.

Initially, the configuration may overwhelm you, but it also has some great advantages. Many aspects of EXT:form can be manipulated in a purely configurative manner without involving a developer.

Furthermore, we wanted to avoid the configuration being done at places whose context actually suggests something different. This pedantry, however, leads to the situation in which certain settings have to be defined multiple times at multiple places. This may seem nonsensical, but it avoids unpredictable behaviour. Within the form framework, nothing happens magically. It is all about configuration.

Why YAML?

Former versions of EXT:form used a subset of TypoScript to describe the definition of a specific form and the behaviour of the included form elements. This led to a lot of confusion from integrators because the implemented definition language looked like TypoScript but did not behave like TypoScript.

Since the definition of forms and form elements must be declarative, the EXT:form team decided to use YAML. Just through the visual appearance of YAML, it should be clear to everyone that neither magic nor TypoScript stdWrap functionality are possible.

YAML registration

At the moment, configuration via YAML is not natively integrated into the core of TYPO3. You have to make a short detour by using TypoScript in order to register your YAML configuration. Furthermore, there is a "speciality" regarding the integration of your YAML configuration for the backend module.

YAML registration for the frontend

For the frontend the whole YAML configuration is loaded via the following TypoScript (see EXT:form/Configuration/TypoScript/setup.typoscript):

plugin.tx_form {
    settings {
        yamlConfigurations {
            10 = EXT:form/Configuration/Yaml/FormSetup.yaml
        }
    }
}
Copied!

Since the key 10 is already taken, we recommend registering your own configuration beginning with the key 100.

plugin.tx_form {
    settings {
        yamlConfigurations {
            100 = EXT:my_site_package/Configuration/Form/CustomFormSetup.yaml
        }
    }
}
Copied!

YAML registration for the backend

For the backend the whole YAML configuration is loaded via the following TypoScript (see EXT:form/ext_localconf.php):

module.tx_form {
    settings {
        yamlConfigurations {
            10 = EXT:form/Configuration/Yaml/FormSetup.yaml
        }
    }
}
Copied!

Since the key 10 is already taken, we recommend registering your own configuration beginning with the key 100.

module.tx_form {
    settings {
        yamlConfigurations {
            100 = EXT:my_site_package/Configuration/Form/CustomFormSetup.yaml
        }
    }
}
Copied!

The backend module of EXT:form is based on Extbase. Such backend modules can, like frontend plugins, be configured via TypoScript. The frontend plugins are configured below plugin.tx_[pluginkey]. For the configuration of the backend module.tx_[pluginkey] is used.

There are different ways to include the TypoScript configuration for the backend:

    1. use the API function \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTypoScriptSetup(),
    1. add the configuration to your existing TypoScript record.

In both cases, the form editor will work as expected regardless the chosen page from the page tree. If using the aforementioned method b, the configuration would only be valid on a specific page tree, unless you add your configuration to all trees within your installation. Nevertheless, being on the root page (uid 0) would still be a problem.

To sum it up: choose either method a or b, and you will be fine.

YAML registration for the backend via addTypoScriptSetup()

Add the following PHP code to your ext_localconf.php of your site package:

defined('TYPO3') or die();

call_user_func(function () {
     \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTypoScriptSetup(
         trim('
             module.tx_form {
                 settings {
                     yamlConfigurations {
                         100 = EXT:my_site_package/Configuration/Form/CustomFormSetup.yaml
                     }
                 }
             }
         ')
     );
});

Copied!

YAML loading

TYPO3 is using a custom 'YAML loader' for handling YAML in TYPO3 based on the Symfony YAML package. This YAML loader is able to resolve environment variables. In addition, EXT:form comes with an own YAML loader which has some limitations/ restrictions, especially when it comes to resolve environment variables. Those limitations are necessary security-wise.

EXT:form differentiates between form configuration and form definition. In addition, a form definition can be stored in the file system (FAL) or can be shipped with a custom extension. Depending on those parameters different YAML loaders are used and thus, different features are available.

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 custom extension

TYPO3 core

Configuration aspects

In EXT:form, four aspects can be configured:

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

Those aspects are defined in separate files which are only loaded in the frontend/ backend when needed. This approach has two advantages:

  • increased clarity,
  • increased performance, e.g. the form editor configuration is not needed in the frontend and therefore not loaded.

It is up to you if you want to follow this guideline or if you want to put the whole configuration into one large file.

There are some configurational aspects which cannot explicitly be assigned to either the frontend or the backend. Instead, the configuration is valid for both areas. For example, within the backend, the whole frontend configuration is required in order to allow the form preview to work properly. In addition, as soon as the form is rendered via the `form plugin``, the ``FormEngine` configuration is needed to interpret the overridden finisher configuration correctly.

Inheritances

The final YAML configuration is not based on one huge file. Instead, it is a compilation of a sequential process:

  • First of all, all registered configuration files are parsed as YAML and are overlaid according to their order.
  • After that, 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.

Additionally, the frontend configuration can be extended/ overridden by TypoScript:

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

For example, if you want to override the fluid templates and you therefore register an additional configuration file via

plugin.tx_form {
    settings {
        yamlConfigurations {
            # register your own additional configuration
            # choose a number higher than 30 (below is reserved)
            100 = EXT:my_site_package/Configuration/Form/CustomFormSetup.yaml
        }
    }
}
Copied!

... you only have to define the following YAML setup in EXT:my_site_package/Configuration/Form/CustomFormSetup.yaml:

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 of your own configuration file will overrule the corresponding values of the basic configuration file (EXT:form/Configuration/Yaml/FormSetup.yaml).

__inheritances operator

The __inheritances operator is an extremely useful instrument. Using it helps to significantly reduce the configuration effort. It 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. Two simple examples 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!

EXT:form heavily uses the __inheritances operator, in particular, for the definition of form elements. The following example shows you how to use the operator to define a new form element which behaves like the parent element but also has its own properties.

prototypes:
  standard:
    formElementsDefinition:
      GenderSelect:
        __inheritances:
          10: 'prototypes.standard.formElementsDefinition.RadioButton'
        renderingOptions:
          templateName: 'RadioButton'
        properties:
          options:
            f: 'Female'
            m: 'Male'
            u: 'Unicorn'
            a: 'Alien'
Copied!

The YAML configuration defines a new form element called GenderSelect. This element inherits its definition from the RadioButton element but additionally ships four predefined options. Without any problems, the new element can be used and overridden within the form definition.

It will probably take some time to fully understand the awesomeness of this operator. If you are eager to learn more about this great instrument, check out the unit tests defined in EXT:form/Tests/Unit/Mvc/Configuration/InheritancesResolverServiceTest.php.

Prototypes

Most of the configurational aspects of the form framework are defined in so-called prototypes. By default, EXT:form defines a prototype named standard. The definition of form elements - including their rendering in the frontend, form editor and form plugin - reside within those prototypes. As soon as you create a new form, the specific form definition references such a prototype.

This allows you to do a lot of nifty stuff. Let your imagination run free. For example:

  • based on the referenced prototype, the same form can load

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

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

Check out the following use case to fully understand the concept behind prototypes. Imagine that there are two defined prototypes: "noob" and "poweruser".

Prototype "noob"

Prototype "poweruser"

Available form elements within the ``form editor``

Text, Textarea

No changes. Default behaviour.

Available finisher within the ``form editor``

Only the email finisher is available. It offers a field for setting the subject of the mail. All remaining fields are hidden and filled with default values.

No changes. Default behaviour.

Finisher overrides within the ``form plugin``

It is not possible to override the finisher configuration.

No changes. Default behaviour.

Form configuration vs. form definition

So far, we have only described the configuration of the form framework. Once again, based on prototypes, the form configuration allows you to define:

  • which form elements, finishers, and validators are available,
  • how those objects are pre-configured,
  • how those objects will be displayed within the frontend and backend.

In contrast, the form definition describes the specific form, including

  • all form elements and their corresponding validators,
  • the order of the form elements within the form, and
  • the finishers which are fired as soon as the form has been submitted.
  • Furthermore, it defines the concrete values of each property of the mentioned aspects.

In other words, the prototype configuration defines the existence of a form element of type Text globally. The form definition declares that such a form element of type Text is located on page 1 at position 1 of a specific form. In addition, it carries the information that this form element comes with the HTML attribute "placeholder" with value "Your name here". The form definition is written by the form editor.

Example form definition

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 storages

EXT:form stores the form definitions within the file system (FAL) and thus needs write access to this storage. By default, the filemount form_definitions is used. It is possible to configure a different and/ or an additional filemount, which is then utilized for storing and reading forms.

The backend user will only see form definitions that are stored in filemounts where the user has at least read access. The form editor and the form plugin respect those access rights. In this way, you are able to implement ACLs. If you have configured more than one filemount and the backend user is able to access those, the form manager will allow the user to choose the preferred storage in which the form will be saved.

Even cooler, form definitions can be stored in and shipped with your custom extensions. If configured accordingly, the backend user will be able to embed those forms. Furthermore, you can configure that these form definitions:

  • can be edited within the form editor,
  • can be deleted with the help of the form manager.

By default, the aforementioned options are turned off. We decided to do so because having dynamic content within an extension - which is possibly version-controlled - is usually not a good idea. Furthermore, there is no ACL system available.

File uploads will be saved within filemounts as well. They are handled as FAL objects. The available filemounts for such uploads can be configured. When adding/ editing a file upload element, the backend user can select the desired upload storage.

The following code block shows you how to configure additional filemounts for form definitions.

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

The following code block shows you how to allow an extension path as an additional filemount for form definitions.

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

Add the following config if you want to allow backend users to edit forms stored within your own extension.

persistenceManager:
  allowSaveToExtensionPaths: true
Copied!

Add the following config if you want to allow backend users to delete forms stored within your own extension.

persistenceManager:
  allowDeleteFromExtensionPaths: true
Copied!

The following code blocks show you the default setup for filemounts that are used 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

The Fluid templates of the form framework are based on Bootstrap.

Custom templates

If you want to use custom Fluid templates for the frontend output of the form elements, you cannot register an additional template path using TypoScript. Instead, the registration of new template paths has to be done via YAML. The settings are part of the prototypes configuration.

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!

For each form definition - which references the prototype standard - the form framework will additionally look for Fluid templates within the path EXT:my_site_package/Resources/Private/Frontend/[*] as set above. Apart from the 'Form' element, the process will search for templates within the partialRootPaths folder. The name of the partial is derived from the property formElementTypeIdentifier. For example, the template of the form element Text must be stored within the partialRootPaths folder named Text.html. In contrast, the template of the Form element must reside within the templateRootPaths folder. According to the introduced logic, the template name must be Form.html.

Access single values in finisher templates

You can access single form values and place them freely in your finisher templates. The RenderFormValueViewHelper does the job. The viewhelper accepts a single form element and renders it. Have a look at the following example. In order to output the value of the field message the RenderFormValueViewHelper is called with two parameters. {formValue.processedValue} contains the specific value which can be manipulated with Fluid or styled etc.

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

If you don't know the names of your form elements, you could look them up in your form definition. In addition, you can use the following snippet to lists all of the available elements.

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

Translation

Translate form definition

The translation of form definitions works differently to the translation of the backend aspects. Currently, there is no graphical user interface supporting the translation process.

If the backend editor needed to translate the form definition properties in the same way the backend aspects are translated, he/ she would see long and unwieldy translation keys while editing a form within the form editor. In order to avoid this, rather the element properties are translated than their values. Thus, the form framework does not look for translation keys within the translation file. Instead, the system searches for translations of the form element properties independent of their property values. The property values are ignored if the process finds a proper entry within the translation file. As a result, the property values are overridden by the translated value.

This approach is a compromise between two scenarios: the exclusive usage of the form editor and/ or the manual creation of form definitions which can afterwards (theoretically) be edited with the form editor. In addition, the described compromise allows the editor to create forms in the default language whose form element property values are displayed as specified in the form editor. Based on this, an integrator could provide additional language files which automatically translate the specific form.

Additional translation files can be defined 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 array is processed from the highest key to the lowest, i.e. your translation file with the key 20 is processed first. If the look-up process does not find a key within all of the provided files, the property value will be displayed unmodified.

The following properties can be translated:

  • label
  • properties.[*]
  • properties.options.[*]
  • properties.fluidAdditionalAttributes.[*]
  • renderingOptions.[*]

The translation keys are put together based on a specific pattern. In addition, a fallback chain that depends on the form element identifiers exists. As a result, the following translation scenarios are possible:

  • translation of a form element property for a specific form and form element
  • translation of a form element property for a specific form element and various forms
  • translation of a form element property for an element type 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:

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

Form elements with option properties (properties.options), like the Select element, feature the following look-up process:

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

Example

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!

For the form element LastName, the process will look for the following translation keys within the translation files:

  • ApplicationForm.element.LastName.properties.label
  • element.LastName.properties.label
  • element.Text.properties.label

If none of the above-mentioned keys exist, 'Last name' will be displayed.

For the form element Software, the process will look for the following translation keys within the translation files:

  • ApplicationForm.element.Software.properties.label
  • element.Software.properties.label
  • element.MultiSelect.properties.label

If none of the above-mentioned keys exist, 'Known software' will be displayed. The option properties are addressed as follows:

  • ApplicationForm.element.Software.properties.options.value1
  • element.Software.properties.options.value1
  • ApplicationForm.element.Software.properties.options.value2
  • element.Software.properties.options.value2

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

Translation of validation messages

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

As mentioned above, the translation keys are put together based on a specific pattern. Furthermore, the fallback chain exists here as well. Thus, the following translation scenarios are possible:

  • translation of validation messages for a specific validator of a concrete form element and concrete form
  • translation of validation messages for a specific validator of various form elements within a concrete form
  • translation of validation messages for a specific validator of a concrete form element in various forms
  • translation of validation messages for a specific validator within various forms

In Extbase, the validation messages are identified with the help of numerical codes (UNIX timestamps). For the same validator, different codes are valid. Read more about concrete validator configurations.

The look-up process searches for translation keys in all given translation files based on the following order:

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

Example

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!

Amongst others, the NotEmpty validator sends 1221560910 as <validationErrorCode>. If a user submits this form without providing a value for the field "Last name", the NotEmpty validator fails. Now, the look-up process searches for the following translation keys for the NotEmpty validator combined with the form element LastName:

  • ContactForm.validation.error.LastName.1221560910
  • ContactForm.validation.error.1221560910
  • validation.error.LastName.1221560910
  • validation.error.1221560910

As mentioned above, if there is no corresponding translation key available, the default message of the Extbase framework will be shown.

Translation of finisher options

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

As mentioned above, the translation keys are put together based on a specific pattern. Furthermore, the fallback chain exists here as well. Thus, the following translation scenarios are possible:

  • translation of finisher options for a specific finisher of a concrete form
  • translation of finisher options for a specific finisher of various forms

The look-up process searches for translation keys in all given translation files based on the following order:

  • <formDefinitionIdentifier>.finisher.finisheridentifier.<optionName>
  • finisher.finisheridentifier.<optionName>

Example

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 <finisherIdentifier> 'Confirmation' and the option 'message':

  • ContactForm.finisher.Confirmation.message
  • finisher.Confirmation.message

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

Form element translation arguments

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

Form element properties

Pure YAML is sufficient to add simple, static 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, translation arguments can be set via formDefinitionOverrides in TypoScript. A common usecase is a checkbox for user confirmation linking to details of the topic. Here it makes sense to use YAML hashes instead of YAML lists to give sections named keys. This simplifies references in TypoScript a lot since named keys are way more readable and also keep the setup working in case elements are reordered. With lists and numeric keys the TypoScript setup would also need to be updated in this case.

In the following example the list of renderables has been replaced with a hash of renderables and the field field-with-translation-arguments has received a named key fieldWithTranslationArguments. This key can be anything as long as it is unique on the same level, usually simply copying the identifier should be enough:

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!

In case the label defines HTML markup - like in the above example, it must be wrapped into CDATA tags in the corresponding path/to/locallang.xlf file, to prevent analysing of the character data by the parser. Additionally, the corresponding label should be rendered using the <f:format.raw> view helper in fluid templates, to prevent escaping of the 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 following TypoScript setup uses the named key fieldWithTranslationArguments to refer to the field and adds a page URL as translation argument:

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 was not registered with a named key so a numeric key 0 must be used which, as mentioned above, is prone to errors when more pages are added or pages are 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,
  • applicable validation rules, and
  • finishers, which should be 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 any given time. Moreover, there is a navigation to go back and forth between those pages. A Page consists of multiple FormElements which represent the input fields, textareas, checkboxes, etc. shown on a page. The FormDefinition domain model, Page and FormElement objects have identifier properties which must be unique for each given <formElementTypeIdentifier>, i.e. the FormDefinition domain model and a FormElement object may have the same identifier but having the same identifier for two FormElement objects is disallowed.

Example

Basically, you can manually create a FormDefinition domain model just 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:

$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

While you can use the TYPO3\CMS\Form\Domain\Model\FormDefinition::addPage() or TYPO3\CMS\Form\Domain\Model\FormElements\Page::addElement() methods and create the Page and FormElement objects manually, 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()), as you pass them an abstract <formElementTypeIdentifier> such as Text or Page. EXT:form will automatically resolve the implementation class name and set default values.

The simple example shown above should 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 by using 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 $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

EXT:form ships a decent amount of hooks which are available at crucial points of the life cycle of a FormElement. Most of the time, own implementations are therefore unnecessary. An own 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 hooks, this FormElement can now be manipulated.

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

Hooks

EXT:form implements a decent amount of hooks 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 'API reference section' 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

Variants allow you to change properties of form elements, validators, and finishers and are activated by conditions. This allows you among other things:

  • translating form element values depending on the frontend language
  • setting and removing validators of one form element depending on the value of another form element
  • hiding entire steps (form pages) depending on the value of a form element
  • setting finisher options depending on the value of a form element
  • hiding a form element in certain finishers and on the summary step

Variants are defined on the form element level either statically in form definitions or created programmatically through an API. The variants defined within a form definition are automatically applied to the form based on their conditions at runtime. Programmatically, variants can be applied at any time.

Furthermore, conditions of a variant can be evaluated programmatically at any time. However, some conditions are only available at runtime, for example a check for a form element value.

Custom conditions and operators can be added easily.

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 within a variant, the original finishers and validators will be used. If at least one finisher or validator is defined in a variant, the originally defined finishers or validators are overwritten by the list of finishers and validators of the variant.

Variants defined within 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 all form elements - except the root form element and the first form page. The option accepts a boolean value ( true or false).

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

Setting enabled: true for a finisher executes it when submitting forms. Setting enabled: false skips the finisher.

By default, enabled is set to true.

See examples below to learn more about using this rendering option.

Definition of variants

Variants are defined on the form element level. Check the following - incomplete - example:

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!

As usual, identifier must be a unique name of the variant on the form element level.

Each variant has a single condition which applies the variants' changes as soon as the condition matches. In addition, the remaining properties are applied to the form element as well. In the aforementioned example the label of the form element text-1 is changed to Bar if the checkbox checkbox-1 is checked.

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

  • label
  • renderingOptions
  • finishers
  • rendererClassName

The following properties can be overwritten by variants within all of the other form elements:

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

Conditions

The form framework uses the Symfony component expression language. Here, an expression is a one-liner that returns a boolean value like applicationContext matches "#Production/Local#". Please check the Symfony docs to learn more about this topic. The form framework extends the expression language with some variables which can be used to access form values and environment settings.

formRuntime (object)

You can access every public method from the \TYPO3\CMS\Form\Domain\Runtime\FormRuntime , learn more here.

For example:

formRuntime.getIdentifier() == "test".

renderable (VariableRenderableInterface)

renderable holds the instance of renderable, 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 within this 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 (while no finishers are executed).

For example:

finisherIdentifier == "EmailToSender".

site (object)

You can access every public method from \TYPO3\CMS\Core\Site\Entity\Site to access the following 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 for the current site
  • getBase() / The base URL for the current site
  • getRootPageId() / The ID of the root page of the current site
  • getLanguages() / An array of available language for the current site
  • getSets() / Configured 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 from \TYPO3\CMS\Core\Site\Entity\SiteLanguage . The most needed ones are for sure:

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

For example:

siteLanguage("locale") == "de_DE".

applicationContext (string)

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

For example:

applicationContext matches "#Production/Local#".

contentObject (array)

contentObject is set to the data of the current content object or to 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 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 defined conditions:

$formElement->applyVariant($variant);

Copied!

Examples

Here are some complex examples to show you the possibilities of the form framework.

Translation of form elements

In this example form elements are translated differently depending on the frontend language.

type: Form
prototypeName: standard
identifier: contact-form
label: Kontaktformular
renderingOptions:
  submitButtonLabel: Senden
variants:
  -
    identifier: language-variant-1
    condition: 'siteLanguage("locale") == "en_US.UTF-8"'
    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") == "en_US.UTF-8"'
        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") == "en_US.UTF-8"'
            label: Full name
            properties:
              fluidAdditionalAttributes:
                placeholder: Your full name
Copied!

Adding validators dynamically

In this example a bunch of validators are added to the field email-address depending on the value of the form element checkbox-1.

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 extensive example the form element email-address has been enabled explicitly but it is fine to leave this out since this is the default state. The form element text-3 has been disabled completely, for example to temporarily remove it from the form. The field text-1 is hidden in all finishers and on the summary step. The EmailToSender finisher takes the fact into account that finishers can refer to form values. It is only enabled if the form element checkbox-1 has been activated by the user. Otherwise, the finisher 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 is disabled if the field checkbox-1 is checked. Furthermore, the form element checkbox-1 is disabled 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 finisher values are set differently 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 option is removed 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") == "zh_CN.utf-8"'
            properties:
              options:
                miss: __UNSET
Copied!

Adding own expression language providers

If you need to extend the expression language with custom functions you can extend it. For more information check the official docs and the appropriate TYPO3 implementation details.

Register the expression language provider in the extension file Configuration/ExpressionLanguage.php. Make sure your expression language provider implements \Symfony\Component\ExpressionLanguage\ExpressionFunctionProviderInterface.

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

Adding own expression language variables

If you need to add custom variables to the expression language you can extend it. Then the variables are ready to be checked in conditions.

Register a custom expression language provider as written above and provide the expression language variables:

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, which implement Extbase validators. Be aware that not all of the existing validators are available for each form element, e.g. the "Date range validator" is only available for the "Date" element. Furthermore, some form elements (like "Email") already contain reasonable validators.

With the help of the form element property validationErrorMessages you can define custom validation error messages. The message can also be set within the form editor.

Client-side validation

If a form element is configured accordingly, the form framework adds HTML 5 based frontend validation. Nevertheless, there is no JavaScript validation included by default. We as the TYPO3 core have no plans to opt for a specific solution. This has to be integrated manually. Reliable and maintained projects are Parsley and jQuery Validation.

Localization of client side validations

The displayed validation message is a browser specific text. The output is not generated by TYPO3 and therefore you cannot change it easily. Nevertheless, there is a JavaScript solution for changing the validation message. 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 the given value contains the specified amount of elements. The validator has 2 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 the given value is a valid DateTime object and in-between a specified date range. The range can be defined by providing a minimum and/or maximum date. The validator has 2 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 the given 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 the given value is a valid email address. The format of a valid email address is defined in RFC 3696. The standard allows international characters and the multiple appearance of the @ sign.

File size validator ( FileSize)

The "File size validator" validates a file resource regarding its file size. The validator has 2 options:

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

Use the format <size>B|K|M|G when entering file sizes. For example: 10M means 10 megabytes. Please keep in mind that 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 the given 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 the given value is a valid integer.

Empty validator ( NotEmpty)

The "Empty validator" checks if the given value is not empty (NULL, empty string, empty array or empty object).

Number validator ( Number)

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

Number range validator ( NumberRange)

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

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

Regular expression validator ( RegularExpression)

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

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

Imagine the following example. You want the user to provide a domain name. The submitted value shall only contain the second and the top level domain, e.g. "typo3.org" instead of "https://typo3.org". The regular expression for this use case would be /^[-a-z0-9]+\.[a-z]{2,6}$/.

String length validator ( StringLength)

The "String length validator" checks if the given value is a valid string and its length is in the specified range. The validator has 2 options:

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

Non-XML text validator ( Text)

The "Non-XML text validator" checks if the given value is a valid text (contains no XML tags). This basically means, that tags are stripped. 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 in any circumstance. 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, please continue here.

Custom validator implementations

Validators belong to a certain prototype and are defined within the validatorsDefinition. The property implementationClassName is used for the validator implementation.

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

You can provide options for your validator using the property options. Those will be used as default values which can be overridden within a specific form definition.

Define the default value of the option yourCustomOption:

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

Override the default value within 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 implements Extbase validators. That said, your own validators should extend \TYPO3\CMS\Extbase\Validation\Validator\AbstractValidator . Read more about this topic in "TYPO3 Explained": Custom Extbase validator implementation.

Finishers

The form framework ships a bunch of finishers, which will be briefly described here. For more details, please head to the API reference and check out the section regarding Finisher Options.

Closure finisher

The 'Closure finisher' can only be used within forms that are created programmatically. It allows you to execute your own finisher code without implementing/ declaring a finisher.

Confirmation finisher

The 'Confirmation finisher' is a simple finisher that outputs a given text after the form has been submitted.

DeleteUploads finisher

The 'DeleteUploads finisher' removes submitted files. Use this finisher, for example, after the email finisher if you do not want to keep the files within your TYPO3 installation.

Email finisher

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

Working with BCC recipients

Both email finishers support different recipient types, including Carbon Copy (CC) and Blind Carbon Copy (BCC). Depending on the configuration of the server and the TYPO3 instance, it may not be possible to send emails to BCC recipients. The configuration of the $GLOBALS['TYPO3_CONF_VARS']['MAIL']['transport_sendmail_command'] value is crucial. As documented in CORE API, TYPO3 recommends the parameter -bs (instead of -t -i) when using sendmail. The parameter -bs tells TYPO3 to use the SMTP standard and that way the BCC recipients are properly set. Symfony refers to the problem of using the -t parameter as well. Since TYPO3 7.5 (#65791) the transport_sendmail_command is automatically set from the PHP runtime configuration and saved. Thus, if you have problems with sending emails to BCC recipients, check the above mentioned configuration.

About FluidEmail

Changed in version 12.0

The EmailFinisher always sends email via FluidEmail.

FluidEmail allows to send mails in a standardized way.

The option title is available which can be used to add an email title to the default FluidEmail template. This option is capable of rendering form element variables using the known bracket syntax and can be overwritten in the FlexForm configuration of the form plugin.

To customize the templates being used following options can be set:

  • 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

A finisher configuration could look like this:

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!

In the example above the following files must exist in the specified template path:

  • ContactForm.html
  • ContactForm.txt

FlashMessage finisher

The 'FlashMessage finisher' is a simple finisher that adds a message to the FlashMessageContainer.

Redirect finisher

The 'Redirect finisher' is a simple finisher that redirects to another page. Additional link parameters can be added to the URL.

SaveToDatabase finisher

The 'SaveToDatabase finisher' saves the data of a submitted form into a database table.

Here is an example for adding uploads to ext:news (fal_related_files and fal_media).

-
  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!

Translation of finisher options

To learn more about this topic, please continue here.

Write a custom finisher

If you want to make the finisher configurable in the backend UI read here.

Finishers are defined as part of a prototype within a finishersDefinition. The property implementationClassName is to be utilized to load the finisher implementation.

prototypes:
  standard:
    finishersDefinition:
      CustomFinisher:
        implementationClassName: 'VENDOR\MySitePackage\Domain\Finishers\CustomFinisher'
Copied!

If the finisher requires options, you can define those within the options property. The options will be used as default values and can be overridden using the form definition.

Define the default value:

prototypes:
  standard:
    finishersDefinition:
      CustomFinisher:
        implementationClassName: 'VENDOR\MySitePackage\Domain\Finishers\CustomFinisher'
        options:
          yourCustomOption: 'Ralf'
Copied!

Override the option using the form definition:

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

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

renderables:
  ...
Copied!

Each finisher has to be programmed to the interface TYPO3\CMS\Form\Domain\Finishers\FinisherInterface and should extend the class TYPO3\CMS\Form\Domain\Finishers\AbstractFinisher. In doing so, the logic of the finisher should start with the method executeInternal().

Accessing finisher options

If your finisher extends TYPO3\CMS\Form\Domain\Finishers\AbstractFinisher, you can access your finisher options with the help of the parseOption() method:

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

parseOption() is looking for 'yourCustomOption' in your form definition. If it cannot be found, the method checks

  1. the prototype configuration for a default value,
  2. the finisher class itself by searching for a default value within the $defaultOptions property:

    declare(strict_types = 1);
    namespace VENDOR\MySitePackage\Domain\Finishers;
    
    class CustomFinisher extends \TYPO3\CMS\Form\Domain\Finishers\AbstractFinisher
    {
    
        protected $defaultOptions = [
            'yourCustomOption' => 'Olli',
        ];
    
        // ...
    }
    Copied!

If the option cannot be found by processing this fallback chain, null is returned.

If the option is found, 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 very end, it tries to translate the finisher options.

Accessing form runtime values

By utilizing a specific notation, finisher options can be populated with submitted form values (assuming you are using the parseOption() method). You can access values of the FormRuntime and thus values of each single form element by encapsulating the option values with {}. If there is a form element with the identifier 'subject', you can access its value within the finisher configuration. Check out the following example to get the whole idea.

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!

In addition, you can use {__currentTimestamp} as a special option value. It will return the current UNIX timestamp.

Finisher Context

The class TYPO3\CMS\Form\Domain\Finishers\FinisherContext takes care of transferring a finisher context to each finisher. Given the finisher is derived from TYPO3\CMS\Form\Domain\Finishers\AbstractFinisher the finisher context will be available via:

$this->finisherContext
Copied!

The method cancel prevents the execution of successive finishers:

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

The method getFormValues returns all of the submitted form values.

getFormValues:

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

The method getFormRuntime returns the FormRuntime:

$this->finisherContext->getFormRuntime();

Copied!

Share data between finishers

The method getFinisherVariableProvider returns an object (TYPO3\CMS\Form\Domain\Finishers\FinisherVariableProvider) which allows you to store data and transfer it to other finishers. The data can be easily accessed programmatically or within your configuration:

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

The data is stored within the FinisherVariableProvider and is addressed 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 potential 'Finisher' appendix. If your finisher is derived from the class TYPO3\CMS\Form\Domain\Finishers\AbstractFinisher, the name of this construct is stored in the following variable:

$this->shortFinisherIdentifier
Copied!

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

There are a bunch of methods to access and manage the finisher data:

  • 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, each finisher can access data programmatically. Moreover, it is possible to retrieve the data via configuration, provided that a finisher stores the values within the FinisherVariableProvider.

Assuming that a finisher called 'Custom' sets data as follows:

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

... you are now able to access the value 'Wouter' via {Custom.unique.value.identifier} in any other finisher.

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 adding a custom finisher you can also add the finisher to the form editor GUI to let your backend users configure it visually. Add the following to the backend yaml setup:

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:
                     __inheritances:
                        10: 'mixins.formElementMixins.BaseCollectionEditorsMixin'
                     100:
                       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'

       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!

Make sure the setup file is registered in the backend:

module.tx_form.settings.yamlConfigurations {
   123456789 = EXT:yourExtension/Configuration/Form/Backend.yaml
}
Copied!

Form manager

What does it do?

The form manager can be accessed by opening the backend module 'Forms'. It allows the editor to administer all of the existing forms stored on the accessible filemounts. The central element of the form manager is a table view which...

  • lists all forms
  • allows users to create, edit, duplicate, and delete forms
  • names the storage folder
  • gives a broad overview on which pages the listed forms are used in.

The creation and duplication of forms is supported by a so-called `form wizard`. The wizard guides the editor through the process and offers a variety of settings depending on the form configuration. Those settings include choosing filemounts, prototypes, and start templates.

The form manager

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

Start templates

This is a very nifty feature. When creating a new form, the form manager allows the backend editor to select a so-called Start template. Such a template is a predefined form definition without the property prototypeName which is normally used as a foundation of a new form.

As an integrator, you can specify as many Start templates as you desire for a given prototype. After you have defined such a template, follow these easy steps to use your defined Start templates as a foundation:

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

For each prototype, you have to define a Start template in order to enable the editor to choose one. Additionally, the same Start template can be used for several prototypes. To do so, make sure the included form elements of the template are defined in the corresponding prototype.

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

The following code block shows the minimal configuration of a `Start template`. You need 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!

As mentioned previously, the form wizard within the form manager offers a list of all existing, pre-configured Start templates. As soon as the backend editor creates a form with the help of such a template, a new form definition is generated based on the one of the selected Start template. The form definition will be enriched by the property propertyName defining the chosen prototype. The identifier of the root form element ('Form') is automatically set based on the entered "Form name". Additionally, this name is 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 which reside below the following configuration keys can be translated:

formManager:
Copied!

The translation files of the form manager 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.

Imagine, the following is defined for an option value:

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

First of all, the process searches for the translation key formManager.selectablePrototypesConfiguration.standard.label within the file 20: 'EXT:my_site_package/Resources/Private/Language/Form/Database.xlf' and after it inside the file 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 which allows the backend editor to create form definitions without writing a single line of code. Those form definitions will be used by the frontend process to render beautiful forms.

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

  • Stage: central visual component of the form editor which displays the form elements in an abstract view and a frontend preview
  • Tree: displays the structure of the form as a tree
  • Inspector: context specific toolbar which handles the visual display of form element options and allows editing those
  • Core: includes core functionalities of the form editor
  • ViewModel: defines and steers the visual display
  • Mediator: delegates events of the components
  • Modals: processes modals
  • FormEditor: provides API functions
  • Helper: helper functions which mainly allow the manipulation of DOM elements

Generally speaking, the Modals, Inspector, and Stage components can be adapted through configuration. Especially the Inspector component is modular and extremely flexible. As an integrator, you can reuse so-called inspector editors. Those elements are input fields of different types which allow the backend editor to alter all of the available form element options.

JavaScript module interaction

JavaScript module interaction

There is a general form editor configuration which can be found below the following configuration path:

prototypes:
  standard:
    formEditor:
Copied!

Furthermore, you are able to configure the form editor regarding its different aspects. The configuration can be found below 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 which displays the form elements in two different modes:

  • abstract view: all form elements of a Page are presented in an abstract way,
  • frontend preview: renders the form like it will (nearly) be displayed in the frontend ('nearly' since you have to make sure that your frontend CSS is also loaded in the backend in order to get the exact preview).

Per default, the frontend templates of EXT:form are based on Bootstrap. Since the backend of TYPO3 CMS also depends on this CSS framework, the corresponding CSS files are already loaded in the backend context. Nevertheless, certain parts of the CSS were overridden and extended in order to meet the specific needs of the TYPO3 backend. Thus, the frontend preview in the backend could differ compared to the "real" frontend.

If your frontend preview requires loading 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 you own Fluid templated and adapt the abstract view till it suits your needs.

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

Inspector

The Inspector component is situated on the right side of the `form editor`. It is a modular, extremely flexible, and context specific toolbar which depends on the chosen form element. The Inspector allows editing the form element's options with the help of so-called inspector editors. For the most parts, the interface can be easily customized by writing YAML configuration. For each form element you can define which properties are available and in which way they can be edited.

In addition to the editable form element properties (like properties.placeholder) there are so-called property collections which can be written by the form editor as well. Their definition is stored on the hierarchical level of a form element. Right now, there are the following `property collections`:

  • validators
  • finishers

Property collections also make use of inspector editors in order to configure them properly. Due to this, we can do a lot of cool stuff. Imagine we have got a validator "Number range" with two validator options called "Minimum" and "Maximum". Additionally, we have got two form elements "Age spouse" and "Age infant". For both form elements the validator is available but for the form element "Age child" the validator option "Minimum" is not editable and the option "Maximum" is pre-filled with a certain value.

Translation of the form editor

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

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

The translation files of the form editor are loaded as follows:

prototypes:
  standard:
    formEditor:
      translationFiles:
        # custom translation file
        20: 'EXT:my_site_package/Resources/Private/Language/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.

Imagine, the following is defined for an option value:

...
label: 'formEditor.elements.Form.editor.finishers.label'
...
Copied!

First of all, the process searches for the translation key formEditor.elements.Form.editor.finishers.label within the file 20: 'EXT:my_site_package/Resources/Private/Language/Database.xlf' and after it inside the file 10: 'EXT:form/Resources/Private/Language/Database.xlf' (loaded by default). If nothing is found, the option value will be displayed unmodified.

Customization of the form editor

As mentioned earlier, the interface can be customized by writing YAML configuration. The configuration is not stored within one central configuration file. Instead, the configuration is defined for each element the form framework provides (see EXT:form/form/Configuration/Yaml/FormElements/). In addition, the Form element itself (see EXT:form/Configuration/Yaml/FormElements/Form.yaml) ships some basic configuration of the form editor.

A common use case for customization is to remove form elements from the form editor. In contrast to other TYPO3 modules, the form editor cannot be configured via backend user groups and the well known Access Lists. Within the form module this has to be done via YAML configuration. Please keep in mind, it is not possible to configure the form editor depending on the user's group / access rights.

Quite often, integrators tend to unset whole form elements as shown below. In this example, the AdvancedPassword form element is removed form the form framework completely. This way, integrators and developers won't be able to use this element in their manually created YAML definitions or via API anymore.

prototypes:
  standard:
    formElementsDefinition:
      AdvancedPassword: null
Copied!

The correct way is to unset the group property. This property defines within which group within the form editor "new Element" modal the form element should be shown. Unsetting this property will remove the form element safely form the form editor. Check out the following example. The configuration removes the AdvancedPassword form element from.

prototypes:
  standard:
    formElementsDefinition:
      AdvancedPassword:
        formEditor:
          group: null
Copied!

Extending the form editor

Learn here how to make the finisher configurable in the backend UI.

Basic JavaScript concepts

The form framework was designed to be as extendible as possible. Sooner or later, you want to customize the components of the form editor 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 event listing.

Register custom JavaScript modules

The following YAML configuration registers an additional 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!

According to the example configuration shown above, the JavaScript files have to be stored within the folder my_site_package/Resources/Public/JavaScript/backend/form-editor/view-model.js.

Check out the following base template which shows you the recommended way for setting up your own module.

/**
 * 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

The event handling of EXT:form is based on the Publish/Subscribe Pattern. To learn more about this terrific pattern, check out this website: https://addyosmani.com/resources/essentialjsdesignpatterns/book/. Please not that the processing sequence of the subscribers cannot be influenced. Furthermore, there is no information flow between the subscribers. All events have to be arranged asynchronously.

For more information, head to the API reference and read the section about 'Events'.

FormElement model

Within 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 by some additional data. The following example shows you a form definition and the debug output of the corresponding 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, you will find a property called renderables. Those renderables are arrays whose elements consists of FormElement models of the particular child elements.

As previously mentioned, the FormElement model is a conglomerate of the data of the form definition and some additional information:

  • __parentRenderable
  • __identifierPath

The following methods can be utilized in order to access the data of a FormElement model:

  • get()
  • set()
  • unset()
  • on()
  • off()
  • getObjectData()
  • toString()
  • clone()

For more information, head to the API reference and read the section about the 'FormElement model'.

Form plugin

What does it do?

The form plugin allows you to assign a form - created with the `form editor` or shipped with your extension - to a specific page. This enables you to re-use forms throughout the whole TYPO3 installation. Furthermore, it offers the backend editor the possibility to override certain aspects of the form definition. At the moment, only finisher options can be overridden. The possibilities depend on the configuration of the underlying prototype.

Imagine, your form contains a redirect finisher. The redirect target is set globally and valid for the whole form definition . While adding the form to a specific page, the backend editor can define a different redirect target. This setting is only valid for the page containing the plugin.

Read more about changing the general and aspect-specific form plugin configuration.

Exclude options from overrides

Sometimes, it is useful to exclude specific options from being overridden via the form plugin. This can be achieved by unsetting the options concerned in your custom YAML configuration. For unsetting options use the YAML NULL ( ~) value.

The following example unsets four fields of the EmailToReceiver finisher. The options will only be removed from the form plugin. The Form editor is not affected by this.

prototypes:
  standard:
    finishersDefinition:
      EmailToReceiver:
        FormEngine:
          elements:
            senderAddress: ~
            senderName: ~
            replyToRecipients: ~
            translation: ~
Copied!

Translation of form plugin

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

prototypes:
  standard:
    finishersDefinition:
      <finisherIdentifier>
        formEngine:
Copied!

The translation files of the form plugin are loaded as follows:

prototypes:
  standard:
    formEngine:
      translationFiles:
        # custom translation file
        20: 'EXT:my_site_package/Resources/Private/Language/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.

Imagine, the following is defined for an option value:

...
label: 'tt_content.finishersDefinition.EmailToReceiver.label'
...
Copied!

First of all, the process searches for the translation key tt_content.finishersDefinition.EmailToReceiver.label within the file 20: 'EXT:my_site_package/Resources/Private/Language/Database.xlf' and afterwards inside the file 10: 'EXT:form/Resources/Private/Language/Database.xlf' (loaded by default). If nothing is found, the option value will be displayed unmodified.

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 filemount 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.templateVariant

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.renderingOptions.templateVariant
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')
templateVariant: version1
Copied!
Description

Set this option to version2 to use Bootstrap 5 compatible and accessible templates.

Deprecated since version 12.0

Using the legacy form template / partial variants residing in EXT:form/Resources/Private/Frontend/Templates and EXT:form/Resources/Private/Frontend/Partials ("version1") is deprecated. The legacy templates will be removed in v13.

Migration: Set your form rendering option templateVariant within the form setup from version1 to version2 to use the future default templates:

prototypes:
  standard:
    formElementsDefinition:
      Form:
        renderingOptions:
          templateVariant: version2
Copied!

Adjust your templates / partials to make them compatible with the ones stored in EXT:form/Resources/Private/FrontendVersion2.

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
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 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
    inspectorEditorFormElementSelectorNoElements: formEditor.inspector.editor.formelement_selector.no_elements
    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
              fieldExplanationText: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.fieldExplanationText
              isSortable: true
              enableAddRow: true
              enableDeleteRow: true
              useLabelAsFallbackValue: false
              gridColumns:
                -
                  name: value
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
            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
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
            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
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
            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
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
            1050:
              identifier: addHtmlPart
              templateName: Inspector-CheckboxEditor
              label: formEditor.elements.Form.finisher.EmailToSender.editor.addHtmlPart.label
              propertyPath: options.addHtmlPart
              fieldExplanationText: formEditor.elements.Form.finisher.EmailToSender.editor.addHtmlPart.fieldExplanationText
            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
              fieldExplanationText: formEditor.elements.Form.finisher.EmailToSender.editor.title.fieldExplanationText
              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
              fieldExplanationText: formEditor.elements.Form.finisher.EmailToReceiver.editor.recipients.fieldExplanationText
              isSortable: true
              enableAddRow: true
              enableDeleteRow: true
              useLabelAsFallbackValue: false
              gridColumns:
                -
                  name: value
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
            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
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
            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
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
            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
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
            1050:
              identifier: addHtmlPart
              templateName: Inspector-CheckboxEditor
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.addHtmlPart.label
              propertyPath: options.addHtmlPart
              fieldExplanationText: formEditor.elements.Form.finisher.EmailToReceiver.editor.addHtmlPart.fieldExplanationText
            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
              fieldExplanationText: formEditor.elements.Form.finisher.EmailToReceiver.editor.title.fieldExplanationText
              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
              fieldExplanationText: formEditor.elements.Form.finisher.Redirect.editor.fragment.fieldExplanationText
            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
              fieldExplanationText: formEditor.elements.Form.finisher.Confirmation.editor.message.fieldExplanationText
            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.inspectorEditorFormElementSelectorNoElements

Option path
prototypes.<prototypeIdentifier>.formElementsDefinition.Form.formEditor.inspectorEditorFormElementSelectorNoElements
Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Default value (for prototype 'standard')
Form:
  formEditor:
    inspectorEditorFormElementSelectorNoElements: formEditor.inspector.editor.formelement_selector.no_elements
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
              fieldExplanationText: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.fieldExplanationText
              isSortable: true
              enableAddRow: true
              enableDeleteRow: true
              useLabelAsFallbackValue: false
              gridColumns:
                -
                  name: value
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
            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
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
            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
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
            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
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
            1050:
              identifier: addHtmlPart
              templateName: Inspector-CheckboxEditor
              label: formEditor.elements.Form.finisher.EmailToSender.editor.addHtmlPart.label
              propertyPath: options.addHtmlPart
              fieldExplanationText: formEditor.elements.Form.finisher.EmailToSender.editor.addHtmlPart.fieldExplanationText
            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
              fieldExplanationText: formEditor.elements.Form.finisher.EmailToSender.editor.title.fieldExplanationText
              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
              fieldExplanationText: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.fieldExplanationText
              isSortable: true
              enableAddRow: true
              enableDeleteRow: true
              useLabelAsFallbackValue: false
              gridColumns:
                -
                  name: value
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
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
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
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
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
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
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
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
              fieldExplanationText: formEditor.elements.Form.finisher.EmailToSender.editor.addHtmlPart.fieldExplanationText
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
              fieldExplanationText: formEditor.elements.Form.finisher.EmailToSender.editor.title.fieldExplanationText
              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
              fieldExplanationText: formEditor.elements.Form.finisher.EmailToReceiver.editor.recipients.fieldExplanationText
              isSortable: true
              enableAddRow: true
              enableDeleteRow: true
              useLabelAsFallbackValue: false
              gridColumns:
                -
                  name: value
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
            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
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
            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
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
            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
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
            1050:
              identifier: addHtmlPart
              templateName: Inspector-CheckboxEditor
              label: formEditor.elements.Form.finisher.EmailToReceiver.editor.addHtmlPart.label
              propertyPath: options.addHtmlPart
              fieldExplanationText: formEditor.elements.Form.finisher.EmailToReceiver.editor.addHtmlPart.fieldExplanationText
            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
              fieldExplanationText: formEditor.elements.Form.finisher.EmailToReceiver.editor.title.fieldExplanationText
              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
              fieldExplanationText: formEditor.elements.Form.finisher.EmailToReceiver.editor.recipients.fieldExplanationText
              isSortable: true
              enableAddRow: true
              enableDeleteRow: true
              useLabelAsFallbackValue: false
              gridColumns:
                -
                  name: value
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.value.title
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
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
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
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
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
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
                -
                  name: label
                  title: formEditor.elements.Form.finisher.EmailToSender.editor.recipients.gridColumns.label.title
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
              fieldExplanationText: formEditor.elements.Form.finisher.EmailToReceiver.editor.addHtmlPart.fieldExplanationText
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
              fieldExplanationText: formEditor.elements.Form.finisher.EmailToReceiver.editor.title.fieldExplanationText
              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
              fieldExplanationText: formEditor.elements.Form.finisher.Redirect.editor.fragment.fieldExplanationText
            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
              fieldExplanationText: formEditor.elements.Form.finisher.Redirect.editor.fragment.fieldExplanationText
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
              fieldExplanationText: formEditor.elements.Form.finisher.Confirmation.editor.message.fieldExplanationText
            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
              fieldExplanationText: formEditor.elements.Form.finisher.Confirmation.editor.message.fieldExplanationText
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.fieldExplanationText

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.

shouldShowPreselectedValueColumn

Data type
string
Needed by
Backend (form editor)
Mandatory
Yes
Good to know
Description
If set to 'false' the column which is used to mark a row as preselected will be disabled.

[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.

[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.

fieldExplanationText

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.

fieldExplanationText

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.

fieldExplanationText

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'
            fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
      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
          # @deprecated since v12, will be removed in v13
          90:
            value: RegularExpression
            label: formEditor.elements.TextMixin.editor.validators.RegularExpression.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
              fieldExplanationText: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.fieldExplanationText
              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'
            fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
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
          # @deprecated since v12, will be removed in v13
          90:
            value: RegularExpression
            label: formEditor.elements.TextMixin.editor.validators.RegularExpression.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
              fieldExplanationText: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.fieldExplanationText
              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
              fieldExplanationText: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.fieldExplanationText
              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'
            fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
      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'
            fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
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
      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.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'
        fieldExplanationText: 'formEditor.elements.Date.editor.step.fieldExplanationText'
        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'
            fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
      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
            fieldExplanationText: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.fieldExplanationText
              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
        fieldExplanationText: formEditor.elements.Date.editor.step.fieldExplanationText
        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'
            fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
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
            fieldExplanationText: formEditor.elements.FormElement.editor.requiredValidator.validationErrorMessage.fieldExplanationText
            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
              fieldExplanationText: formEditor.elements.TextMixin.validators.Alphanumeric.editor.validationErrorMessage.fieldExplanationText
              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
              fieldExplanationText: formEditor.elements.TextMixin.validators.Alphanumeric.editor.validationErrorMessage.fieldExplanationText
              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
              fieldExplanationText: formEditor.elements.TextMixin.validators.Text.editor.validationErrorMessage.fieldExplanationText
              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
              fieldExplanationText: formEditor.elements.TextMixin.validators.Text.editor.validationErrorMessage.fieldExplanationText
              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
                fieldExplanationText: formEditor.elements.TextMixin.validators.StringLength.editor.validationErrorMessage.fieldExplanationText
                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
              fieldExplanationText: formEditor.elements.TextMixin.validators.StringLength.editor.validationErrorMessage.fieldExplanationText
              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
              fieldExplanationText: formEditor.elements.TextMixin.validators.EmailAddress.editor.validationErrorMessage.fieldExplanationText
              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
              fieldExplanationText: formEditor.elements.TextMixin.validators.EmailAddress.editor.validationErrorMessage.fieldExplanationText
              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
              fieldExplanationText: formEditor.elements.TextMixin.validators.Integer.editor.validationErrorMessage.fieldExplanationText
              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
              fieldExplanationText: formEditor.elements.TextMixin.validators.Integer.editor.validationErrorMessage.fieldExplanationText
              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
              fieldExplanationText: formEditor.elements.TextMixin.validators.Float.editor.validationErrorMessage.fieldExplanationText
              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
              fieldExplanationText: formEditor.elements.TextMixin.validators.Float.editor.validationErrorMessage.fieldExplanationText
              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
              fieldExplanationText: formEditor.elements.TextMixin.validators.NumberRange.editor.validationErrorMessage.fieldExplanationText
              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
              fieldExplanationText: formEditor.elements.TextMixin.validators.NumberRange.editor.validationErrorMessage.fieldExplanationText
              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
              fieldExplanationText: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.fieldExplanationText
              propertyPath: options.regularExpression
              propertyValidators:
                10: NotEmpty
                20: RegularExpressionPattern
            300:
              identifier: validationErrorMessage
              templateName: Inspector-ValidationErrorMessageEditor
              label: formEditor.elements.TextMixin.validators.RegularExpression.editor.validationErrorMessage.label
              fieldExplanationText: formEditor.elements.TextMixin.validators.RegularExpression.editor.validationErrorMessage.fieldExplanationText
              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
              fieldExplanationText: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.fieldExplanationText
              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
              fieldExplanationText: formEditor.elements.TextMixin.validators.RegularExpression.editor.validationErrorMessage.fieldExplanationText
              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'
            fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
      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'
            fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
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'
            fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
      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'
            fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
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'
            fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
      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'
            fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
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'
           fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
      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'
            fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
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'
            fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
      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'
            fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
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'
            fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
      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'
            fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
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'
            fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
      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'
            fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
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
        shouldShowPreselectedValueColumn: multiple
        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'
            fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
      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
        shouldShowPreselectedValueColumn: multiple
        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'
            fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
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
        fieldExplanationText: formEditor.elements.SelectionMixin.editor.inactiveOption.fieldExplanationText
        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
        shouldShowPreselectedValueColumn: multiple
        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'
            fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
      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
        fieldExplanationText: formEditor.elements.SelectionMixin.editor.inactiveOption.fieldExplanationText
        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
        shouldShowPreselectedValueColumn: multiple
        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'
            fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
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'
            fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
      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'
            fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
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'
            fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
      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
          # @deprecated since v12, will be removed in v13
          90:
            value: RegularExpression
            label: formEditor.elements.TextMixin.editor.validators.RegularExpression.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
              fieldExplanationText: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.fieldExplanationText
              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'
            fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
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
          # @deprecated since v12, will be removed in v13
          90:
            value: RegularExpression
            label: formEditor.elements.TextMixin.editor.validators.RegularExpression.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
              fieldExplanationText: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.fieldExplanationText
              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
              fieldExplanationText: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.fieldExplanationText
              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
        shouldShowPreselectedValueColumn: single
        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'
            fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
      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
        shouldShowPreselectedValueColumn: single
        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'
            fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
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
        fieldExplanationText: formEditor.elements.SelectionMixin.editor.inactiveOption.fieldExplanationText
        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
        shouldShowPreselectedValueColumn: single
        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'
            fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
      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
        fieldExplanationText: formEditor.elements.SelectionMixin.editor.inactiveOption.fieldExplanationText
        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
        shouldShowPreselectedValueColumn: single
        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'
            fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
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
      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.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'
            fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
      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
          # @deprecated since v12, will be removed in v13
          90:
            value: RegularExpression
            label: formEditor.elements.TextMixin.editor.validators.RegularExpression.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
              fieldExplanationText: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.fieldExplanationText
              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'
            fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
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
          # @deprecated since v12, will be removed in v13
          90:
            value: RegularExpression
            label: formEditor.elements.TextMixin.editor.validators.RegularExpression.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
              fieldExplanationText: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.fieldExplanationText
              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
              fieldExplanationText: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.fieldExplanationText
              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'
           fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
      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
         # @deprecated since v12, will be removed in v13
         90:
           value: RegularExpression
           label: formEditor.elements.TextMixin.editor.validators.RegularExpression.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
             fieldExplanationText: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.fieldExplanationText
             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'
            fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
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
          # @deprecated since v12, will be removed in v13
          90:
            value: RegularExpression
            label: formEditor.elements.TextMixin.editor.validators.RegularExpression.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
              fieldExplanationText: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.fieldExplanationText
              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
              fieldExplanationText: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.fieldExplanationText
              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'
           fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
      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
         # @deprecated since v12, will be removed in v13
         90:
           value: RegularExpression
           label: formEditor.elements.TextMixin.editor.validators.RegularExpression.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
              fieldExplanationText: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.fieldExplanationText
              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'
            fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
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
          # @deprecated since v12, will be removed in v13
          90:
            value: RegularExpression
            label: formEditor.elements.TextMixin.editor.validators.RegularExpression.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
              fieldExplanationText: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.fieldExplanationText
              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
              fieldExplanationText: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.fieldExplanationText
              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'
            fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
      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
          # @deprecated since v12, will be removed in v13
          90:
            value: RegularExpression
            label: formEditor.elements.TextMixin.editor.validators.RegularExpression.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
              fieldExplanationText: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.fieldExplanationText
              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'
            fieldExplanationText: formEditor.elements.FormElement.editor.gridColumnViewPortConfiguration.numbersOfColumnsToUse.fieldExplanationText
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
          # @deprecated since v12, will be removed in v13
          90:
            value: RegularExpression
            label: formEditor.elements.TextMixin.editor.validators.RegularExpression.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
              fieldExplanationText: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.fieldExplanationText
              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
              fieldExplanationText: formEditor.elements.TextMixin.validators.RegularExpression.editor.regex.fieldExplanationText
              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/'
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.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.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.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.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.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>.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.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 \TYPO3\CMS\Extbase\Domain\Model\FileReference or \TYPO3\CMS\Core\Resource\File.
  • 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]