first commit
This commit is contained in:
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'
|
||||
Reference in new issue
Block a user