first commit

This commit is contained in:
salam committed 2026-10-19 08:18:39 +02:00
commit 1218dd1517
12716 files changed
+989233

No files matched your search

@@ -0,0 +1,8 @@
<?php
return [
'form' => [
\TYPO3\CMS\Core\ExpressionLanguage\TypoScriptConditionProvider::class,
\TYPO3\CMS\Form\Domain\Condition\ConditionProvider::class
],
];
@@ -0,0 +1,41 @@
<T3DataStructure>
<sheets>
<sDEF>
<ROOT>
<TCEforms>
<sheetTitle>LLL:EXT:form/Resources/Private/Language/Database.xlf:tt_content.pi_flexform.formframework.sheet_general</sheetTitle>
</TCEforms>
<type>array</type>
<el>
<settings.persistenceIdentifier>
<TCEforms>
<label>LLL:EXT:form/Resources/Private/Language/Database.xlf:tt_content.pi_flexform.formframework.persistenceIdentifier</label>
<onChange>reload</onChange>
<config>
<type>select</type>
<renderType>selectSingle</renderType>
<items>
<numIndex index="0" type="array">
<numIndex index="0">LLL:EXT:form/Resources/Private/Language/Database.xlf:tt_content.pi_flexform.formframework.selectPersistenceIdentifier</numIndex>
<numIndex index="1"></numIndex>
</numIndex>
</items>
<softref>formPersistenceIdentifier</softref>
</config>
</TCEforms>
</settings.persistenceIdentifier>
<settings.overrideFinishers>
<TCEforms>
<label>LLL:EXT:form/Resources/Private/Language/Database.xlf:tt_content.pi_flexform.formframework.overrideFinishers</label>
<displayCond>FIELD:settings.persistenceIdentifier:REQ:TRUE</displayCond>
<onChange>reload</onChange>
<config>
<type>check</type>
</config>
</TCEforms>
</settings.overrideFinishers>
</el>
</ROOT>
</sDEF>
</sheets>
</T3DataStructure>
@@ -0,0 +1,13 @@
mod.wizards.newContentElement.wizardItems.forms {
show :=addToList(formframework)
elements {
formframework {
iconIdentifier = content-form
title = LLL:EXT:form/Resources/Private/Language/locallang.xlf:form_new_wizard_title
description = LLL:EXT:form/Resources/Private/Language/locallang:form_new_wizard_description
tt_content_defValues {
CType = form_formframework
}
}
}
}
@@ -0,0 +1,10 @@
<?php
defined('TYPO3_MODE') or die();
call_user_func(function () {
TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile(
'form',
'Configuration/TypoScript/',
'Form'
);
});
@@ -0,0 +1,41 @@
<?php
defined('TYPO3_MODE') or die();
call_user_func(function () {
// Add the FlexForm
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue(
'*',
'FILE:EXT:form/Configuration/FlexForms/FormFramework.xml',
'form_formframework'
);
$GLOBALS['TCA']['tt_content']['ctrl']['typeicon_classes']['form_formframework'] = 'content-form';
$GLOBALS['TCA']['tt_content']['types']['form_formframework']['showitem'] = '
--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general,
--palette--;;general,
--palette--;;header,
--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.plugin,
pi_flexform,
--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance,
--palette--;;frames,
--palette--;;appearanceLinks,
--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language,
--palette--;;language,
--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access,
--palette--;;hidden,
--palette--;;access,
--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories,
categories,
--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes,
rowDescription,
--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended,
';
// Register the plugin
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
'TYPO3.CMS.Form',
'Formframework',
'Form',
'content-form'
);
});
@@ -0,0 +1,45 @@
config.tx_extbase {
persistence {
classes {
TYPO3\CMS\Form\Mvc\Property\TypeConverter\PseudoFileReference {
mapping {
tableName = sys_file_reference
}
}
}
}
}
plugin.tx_form {
view {
# Note that this configuration only affects the EXT:Form plugin
# template (form/Resources/Private/Frontend/Templates/Render.html)
# The fluid paths for the formelements reside within the YAML settings.
# @see TYPO3.CMS.Form.<prototypeName>.standard.formElementsDefinition.Form.renderingOptions
#
# That means: If you want to override the formelement templates
# then change them within the YAML settings, not here.
templateRootPaths.0 = EXT:form/Resources/Private/Frontend/Templates/
partialRootPaths.0 = EXT:form/Resources/Private/Frontend/Partials/
layoutRootPaths.0 = EXT:form/Resources/Private/Frontend/Layouts/
}
mvc {
callDefaultActionIfActionCantBeResolved = 1
}
settings {
yamlConfigurations {
10 = EXT:form/Configuration/Yaml/BaseSetup.yaml
20 = EXT:form/Configuration/Yaml/FormEngineSetup.yaml
}
}
}
# Rendering of content elements
lib.tx_form.contentElementRendering = RECORDS
lib.tx_form.contentElementRendering {
tables = tt_content
source.current = 1
dontCheckPid = 1
}
@@ -0,0 +1,490 @@
TYPO3:
CMS:
Form:
persistenceManager:
allowedFileMounts:
10: 1:/form_definitions/
20: 1:/user_upload/
allowSaveToExtensionPaths: false
allowDeleteFromExtensionPaths: false
#allowedExtensionPaths:
#10: EXT:example/Resources/Private/Forms/
prototypes:
standard:
########### DEFAULT FORM ELEMENT DEFINITIONS ###########
formElementsDefinition:
### BASE ELEMENTS ###
Form:
__inheritances:
10: 'TYPO3.CMS.Form.mixins.formElementMixins.BaseFormElementMixin'
rendererClassName: 'TYPO3\CMS\Form\Domain\Renderer\FluidFormRenderer'
renderingOptions:
__inheritances:
10: 'TYPO3.CMS.Form.mixins.translationSettingsMixin'
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'
# set this to TRUE if you want to avoid exceptions for FormElements without definitions
skipUnknownElements: true
### FORM ELEMENTS: CONTAINER ###
Page:
__inheritances:
10: 'TYPO3.CMS.Form.mixins.formElementMixins.BaseFormElementMixin'
implementationClassName: 'TYPO3\CMS\Form\Domain\Model\FormElements\Page'
renderingOptions:
_isTopLevelFormElement: true
_isCompositeFormElement: true
nextButtonLabel: 'next Page'
previousButtonLabel: 'previous Page'
SummaryPage:
__inheritances:
10: 'TYPO3.CMS.Form.prototypes.standard.formElementsDefinition.Page'
renderingOptions:
_isTopLevelFormElement: true
_isCompositeFormElement: false
nextButtonLabel: 'next Page'
previousButtonLabel: 'previous Page'
Fieldset:
__inheritances:
10: 'TYPO3.CMS.Form.mixins.formElementMixins.FormElementMixin'
implementationClassName: 'TYPO3\CMS\Form\Domain\Model\FormElements\Section'
renderingOptions:
_isCompositeFormElement: true
GridContainer:
__inheritances:
10: 'TYPO3.CMS.Form.mixins.formElementMixins.FormElementMixin'
implementationClassName: 'TYPO3\CMS\Form\Domain\Model\FormElements\GridContainer'
renderingOptions:
_isCompositeFormElement: true
_isGridContainerFormElement: true
properties:
elementClassAttribute: 'container'
# overrules 'GridRow.properties.gridColumnClassAutoConfiguration'
gridColumnClassAutoConfiguration:
gridSize: 12
viewPorts:
xs:
classPattern: 'col-xs-{@numbersOfColumnsToUse}'
sm:
classPattern: 'col-sm-{@numbersOfColumnsToUse}'
md:
classPattern: 'col-md-{@numbersOfColumnsToUse}'
lg:
classPattern: 'col-lg-{@numbersOfColumnsToUse}'
GridRow:
__inheritances:
10: 'TYPO3.CMS.Form.mixins.formElementMixins.FormElementMixin'
implementationClassName: 'TYPO3\CMS\Form\Domain\Model\FormElements\GridRow'
properties:
elementClassAttribute: 'row'
gridColumnClassAutoConfiguration:
gridSize: 12
viewPorts:
xs:
classPattern: 'col-xs-{@numbersOfColumnsToUse}'
sm:
classPattern: 'col-sm-{@numbersOfColumnsToUse}'
md:
classPattern: 'col-md-{@numbersOfColumnsToUse}'
lg:
classPattern: 'col-lg-{@numbersOfColumnsToUse}'
renderingOptions:
_isCompositeFormElement: true
_isGridRowFormElement: true
### FORM ELEMENTS: INPUT ###
Text:
__inheritances:
10: 'TYPO3.CMS.Form.mixins.formElementMixins.TextMixin'
Password:
__inheritances:
10: 'TYPO3.CMS.Form.mixins.formElementMixins.TextMixin'
AdvancedPassword:
__inheritances:
10: 'TYPO3.CMS.Form.prototypes.standard.formElementsDefinition.Password'
implementationClassName: 'TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement'
properties:
elementClassAttribute: 'input-medium'
confirmationLabel: ''
# Optional description (hint) for the first password input element
#passwordDescription: ''
confirmationClassAttribute: 'input-medium'
Textarea:
__inheritances:
10: 'TYPO3.CMS.Form.mixins.formElementMixins.TextMixin'
properties:
elementClassAttribute: 'xxlarge'
Honeypot:
__inheritances:
10: 'TYPO3.CMS.Form.mixins.formElementMixins.TextMixin'
properties:
renderAsHiddenField: false
styleAttribute: 'position:absolute; margin:0 0 0 -999em;'
variants:
-
identifier: hide-1
renderingOptions:
enabled: false
condition: 'stepType == "SummaryPage" || finisherIdentifier in ["EmailToSender", "EmailToReceiver"]'
Hidden:
__inheritances:
10: 'TYPO3.CMS.Form.mixins.formElementMixins.FormElementMixin'
variants:
-
identifier: hide-1
renderingOptions:
enabled: false
condition: 'stepType == "SummaryPage" || finisherIdentifier in ["EmailToSender", "EmailToReceiver"]'
### FORM ELEMENTS: HTML5 ###
Email:
__inheritances:
10: 'TYPO3.CMS.Form.mixins.formElementMixins.TextMixin'
validators:
-
identifier: EmailAddress
Telephone:
__inheritances:
10: 'TYPO3.CMS.Form.mixins.formElementMixins.TextMixin'
validators:
-
identifier: RegularExpression
options:
regularExpression: '/^.*$/'
Url:
__inheritances:
10: 'TYPO3.CMS.Form.mixins.formElementMixins.TextMixin'
validators:
-
identifier: RegularExpression
options:
regularExpression: '/^.*$/'
Number:
__inheritances:
10: 'TYPO3.CMS.Form.mixins.formElementMixins.TextMixin'
validators:
-
identifier: Number
Date:
__inheritances:
10: 'TYPO3.CMS.Form.mixins.formElementMixins.TextMixin'
properties:
# Rules for 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.
displayFormat: 'd.m.Y'
fluidAdditionalAttributes:
# https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date#Handling_browser_support
# https://tools.ietf.org/html/rfc3339#section-5.6 -> full-date
pattern: '([0-9]{4})-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01])'
### FORM ELEMENTS: SELECT ###
Checkbox:
__inheritances:
10: 'TYPO3.CMS.Form.mixins.formElementMixins.FormElementMixin'
properties:
elementClassAttribute: 'add-on'
containerClassAttribute: 'input checkbox'
value: 1
MultiCheckbox:
__inheritances:
10: 'TYPO3.CMS.Form.mixins.formElementMixins.MultiSelectionMixin'
properties:
containerClassAttribute: 'input checkbox'
MultiSelect:
__inheritances:
10: 'TYPO3.CMS.Form.mixins.formElementMixins.MultiSelectionMixin'
properties:
elementClassAttribute: 'xlarge'
RadioButton:
__inheritances:
10: 'TYPO3.CMS.Form.mixins.formElementMixins.SingleSelectionMixin'
properties:
elementClassAttribute: 'xlarge'
SingleSelect:
__inheritances:
10: 'TYPO3.CMS.Form.mixins.formElementMixins.SingleSelectionMixin'
### FORM ELEMENTS: CUSTOM ###
DatePicker:
__inheritances:
10: 'TYPO3.CMS.Form.mixins.formElementMixins.FormElementMixin'
properties:
elementClassAttribute: 'small form-control'
timeSelectorClassAttribute: 'mini'
timeSelectorHourLabel: ''
timeSelectorMinuteLabel: ''
dateFormat: 'Y-m-d'
enableDatePicker: true
displayTimeSelector: false
StaticText:
__inheritances:
10: 'TYPO3.CMS.Form.mixins.formElementMixins.ReadOnlyFormElementMixin'
properties:
text: ''
ContentElement:
__inheritances:
10: 'TYPO3.CMS.Form.mixins.formElementMixins.ReadOnlyFormElementMixin'
properties:
contentElementUid: ''
### FORM ELEMENTS: UPLOADS ###
FileUpload:
__inheritances:
10: 'TYPO3.CMS.Form.mixins.formElementMixins.FileUploadMixin'
properties:
allowedMimeTypes: ['application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.oasis.opendocument.text', 'application/pdf']
ImageUpload:
__inheritances:
10: 'TYPO3.CMS.Form.mixins.formElementMixins.FileUploadMixin'
properties:
allowedMimeTypes: ['image/jpeg', 'image/png', 'image/bmp']
elementClassAttribute: 'lightbox'
imageLinkMaxWidth: 500
imageMaxWidth: 500
imageMaxHeight: 500
### FINISHERS ###
finishersDefinition:
Closure:
implementationClassName: 'TYPO3\CMS\Form\Domain\Finishers\ClosureFinisher'
options:
#closure:
Confirmation:
implementationClassName: 'TYPO3\CMS\Form\Domain\Finishers\ConfirmationFinisher'
options:
#message: ''
#contentElementUid: 0
#typoscriptObjectPath: 'lib.tx_form.contentElementRendering'
#variables:
templateName: 'Confirmation'
templateRootPaths:
10: 'EXT:form/Resources/Private/Frontend/Templates/Finishers/Confirmation/'
EmailToSender:
__inheritances:
10: 'TYPO3.CMS.Form.mixins.finishersEmailMixin'
EmailToReceiver:
__inheritances:
10: 'TYPO3.CMS.Form.mixins.finishersEmailMixin'
DeleteUploads:
implementationClassName: 'TYPO3\CMS\Form\Domain\Finishers\DeleteUploadsFinisher'
FlashMessage:
implementationClassName: 'TYPO3\CMS\Form\Domain\Finishers\FlashMessageFinisher'
#options:
#messageBody: ''
#messageTitle: ''
#messageArguments: {}
#messageCode: 0
#severity: 0
Redirect:
implementationClassName: 'TYPO3\CMS\Form\Domain\Finishers\RedirectFinisher'
#options:
#pageUid: 1
#additionalParameters: ''
#delay: 0
#statusCode: 303
SaveToDatabase:
implementationClassName: 'TYPO3\CMS\Form\Domain\Finishers\SaveToDatabaseFinisher'
#options:
#table: ''
#mode: 'insert'
#whereClause: []
#elements:
# <elementIdentifier>:
# mapOnDatabaseColumn: <databaseColumnName>
# saveFileIdentifierInsteadOfUid: false
# skipIfValueIsEmpty: false
#databaseColumnMappings:
# <databaseColumnName>:
# value: 'someValue'
# skipIfValueIsEmpty: false
### VALIDATORS ###
validatorsDefinition:
NotEmpty:
implementationClassName: 'TYPO3\CMS\Extbase\Validation\Validator\NotEmptyValidator'
DateTime:
implementationClassName: 'TYPO3\CMS\Extbase\Validation\Validator\DateTimeValidator'
Alphanumeric:
implementationClassName: 'TYPO3\CMS\Extbase\Validation\Validator\AlphanumericValidator'
Text:
implementationClassName: 'TYPO3\CMS\Extbase\Validation\Validator\TextValidator'
StringLength:
implementationClassName: 'TYPO3\CMS\Extbase\Validation\Validator\StringLengthValidator'
#options:
#minimum: 0
#maximum: 0
EmailAddress:
implementationClassName: 'TYPO3\CMS\Extbase\Validation\Validator\EmailAddressValidator'
Integer:
implementationClassName: 'TYPO3\CMS\Extbase\Validation\Validator\IntegerValidator'
Float:
implementationClassName: 'TYPO3\CMS\Extbase\Validation\Validator\FloatValidator'
Number:
implementationClassName: 'TYPO3\CMS\Extbase\Validation\Validator\NumberValidator'
NumberRange:
implementationClassName: 'TYPO3\CMS\Extbase\Validation\Validator\NumberRangeValidator'
#options:
#minimum: 0
#maximum: 0
RegularExpression:
implementationClassName: 'TYPO3\CMS\Extbase\Validation\Validator\RegularExpressionValidator'
#options:
#regularExpression: '/^.*$/'
Count:
implementationClassName: 'TYPO3\CMS\Form\Mvc\Validation\CountValidator'
#options:
#minimum: 0
#maximum: 0
FileSize:
implementationClassName: 'TYPO3\CMS\Form\Mvc\Validation\FileSizeValidator'
#options:
#minimum: '0B'
#maximum: '10M'
DateRange:
implementationClassName: 'TYPO3\CMS\Form\Mvc\Validation\DateRangeValidator'
options:
# https://tools.ietf.org/html/rfc3339#section-5.6 -> full-date
format : 'Y-m-d'
#minimum: '2018-03-17'
#maximum: '2018-03-17'
########### MIXINS ###########
mixins:
translationSettingsMixin:
translation:
translationFile: 'EXT:form/Resources/Private/Language/locallang.xlf'
#translatePropertyValueIfEmpty: true
########### FORM ELEMENT MIXINS ###########
formElementMixins:
BaseFormElementMixin: []
# The form element type is chosen as the template name by default.
# If you want another name you can set it with 'templateName'
#templateName: 'CustomTemplateName'
ReadOnlyFormElementMixin:
__inheritances:
10: 'TYPO3.CMS.Form.mixins.formElementMixins.BaseFormElementMixin'
implementationClassName: 'TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement'
variants:
-
identifier: hide-1
renderingOptions:
enabled: false
condition: 'stepType == "SummaryPage" || finisherIdentifier in ["EmailToSender", "EmailToReceiver"]'
FormElementMixin:
__inheritances:
10: 'TYPO3.CMS.Form.mixins.formElementMixins.BaseFormElementMixin'
implementationClassName: 'TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement'
properties:
containerClassAttribute: 'input'
elementClassAttribute: ''
elementErrorClassAttribute: 'error'
#gridColumnClassAutoConfiguration:
# viewPorts:
# xs:
# numbersOfColumnsToUse: ''
# sm:
# numbersOfColumnsToUse: ''
# md:
# numbersOfColumnsToUse: ''
# lg:
# numbersOfColumnsToUse: ''
TextMixin:
__inheritances:
10: 'TYPO3.CMS.Form.mixins.formElementMixins.FormElementMixin'
SelectionMixin:
__inheritances:
10: 'TYPO3.CMS.Form.mixins.formElementMixins.FormElementMixin'
SingleSelectionMixin:
__inheritances:
10: 'TYPO3.CMS.Form.mixins.formElementMixins.SelectionMixin'
MultiSelectionMixin:
__inheritances:
10: 'TYPO3.CMS.Form.mixins.formElementMixins.SelectionMixin'
FileUploadMixin:
__inheritances:
10: 'TYPO3.CMS.Form.mixins.formElementMixins.FormElementMixin'
implementationClassName: 'TYPO3\CMS\Form\Domain\Model\FormElements\FileUpload'
properties:
saveToFileMount: '1:/user_upload/'
finishersEmailMixin:
implementationClassName: 'TYPO3\CMS\Form\Domain\Finishers\EmailFinisher'
options:
#subject: ''
#recipientAddress: ''
#recipientName: ''
#senderAddress:
#senderName: ''
#replyToAddress: ''
#carbonCopyAddress: ''
#blindCarbonCopyAddress: ''
#format: 'html'
#attachUploads: true
#translation:
# language: 'default'
# {@format} depends the 'format' value
templateName: '{@format}.html'
templateRootPaths:
10: 'EXT:form/Resources/Private/Frontend/Templates/Finishers/Email/'
#partialRootPaths: []
#layoutRootPaths: []
#variables: {}
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,151 @@
TYPO3:
CMS:
Form:
prototypes:
standard:
formEngine:
translationFile: 'EXT:form/Resources/Private/Language/Database.xlf'
########### TCE Forms CONFIGURATION ###########
### FINISHERS ###
finishersDefinition:
Confirmation:
FormEngine:
label: 'tt_content.finishersDefinition.Confirmation.label'
elements:
contentElementUid:
label: 'tt_content.finishersDefinition.Confirmation.contentElementUid.label'
config:
type: 'group'
internal_type: 'db'
allowed: 'tt_content'
size: 1
maxitems: 1
fieldWizard:
recordsOverview:
disabled: 1
message:
label: 'tt_content.finishersDefinition.Confirmation.message.label'
config:
type: 'text'
EmailToSender:
FormEngine:
__inheritances:
10: 'TYPO3.CMS.Form.mixins.FormEngineEmailMixin'
EmailToReceiver:
FormEngine:
__inheritances:
10: 'TYPO3.CMS.Form.mixins.FormEngineEmailMixin'
label: 'tt_content.finishersDefinition.EmailToReceiver.label'
elements:
subject:
label: 'tt_content.finishersDefinition.EmailToReceiver.subject.label'
recipientAddress:
label: 'tt_content.finishersDefinition.EmailToReceiver.recipientAddress.label'
recipientName:
label: 'tt_content.finishersDefinition.EmailToReceiver.recipientName.label'
senderAddress:
label: 'tt_content.finishersDefinition.EmailToReceiver.senderAddress.label'
senderName:
label: 'tt_content.finishersDefinition.EmailToReceiver.senderName.label'
replyToAddress:
label: 'tt_content.finishersDefinition.EmailToReceiver.replyToAddress.label'
carbonCopyAddress:
label: 'tt_content.finishersDefinition.EmailToReceiver.carbonCopyAddress.label'
blindCarbonCopyAddress:
label: 'tt_content.finishersDefinition.EmailToReceiver.blindCarbonCopyAddress.label'
format:
label: 'tt_content.finishersDefinition.EmailToReceiver.format.label'
translation:
language:
label: 'tt_content.finishersDefinition.EmailToReceiver.language.label'
config:
type: select
renderType: 'selectSingle'
minitems: 1
maxitems: 1
size: 1
items:
10:
0: 'tt_content.finishersDefinition.EmailToReceiver.language.1'
1: 'default'
Redirect:
FormEngine:
label: 'tt_content.finishersDefinition.Redirect.label'
elements:
pageUid:
label: 'tt_content.finishersDefinition.Redirect.pageUid.label'
config:
type: 'group'
internal_type: 'db'
allowed: 'pages'
size: 1
minitems: 1
maxitems: 1
fieldWizard:
recordsOverview:
disabled: 1
additionalParameters:
label: 'tt_content.finishersDefinition.Redirect.additionalParameters.label'
config:
type: 'input'
########### MIXINS ###########
mixins:
FormEngineEmailMixin:
label: 'tt_content.finishersDefinition.EmailToSender.label'
elements:
subject:
label: 'tt_content.finishersDefinition.EmailToSender.subject.label'
config:
type: 'input'
eval: 'required'
recipientAddress:
label: 'tt_content.finishersDefinition.EmailToSender.recipientAddress.label'
config:
type: 'input'
eval: 'required'
recipientName:
label: 'tt_content.finishersDefinition.EmailToSender.recipientName.label'
config:
type: 'input'
senderAddress:
label: 'tt_content.finishersDefinition.EmailToSender.senderAddress.label'
config:
type: 'input'
eval: 'required'
senderName:
label: 'tt_content.finishersDefinition.EmailToSender.senderName.label'
config:
type: 'input'
replyToAddress:
label: 'tt_content.finishersDefinition.EmailToSender.replyToAddress.label'
config:
type: 'input'
carbonCopyAddress:
label: 'tt_content.finishersDefinition.EmailToSender.carbonCopyAddress.label'
config:
type: 'input'
blindCarbonCopyAddress:
label: 'tt_content.finishersDefinition.EmailToSender.blindCarbonCopyAddress.label'
config:
type: 'input'
format:
label: 'tt_content.finishersDefinition.EmailToSender.format.label'
config:
type: select
renderType: 'selectSingle'
minitems: 1
maxitems: 1
size: 1
items:
10:
0: 'tt_content.finishersDefinition.EmailToSender.format.1'
1: 'html'
20:
0: 'tt_content.finishersDefinition.EmailToSender.format.2'
1: 'plaintext'