[TASK] EXT:form - make 'grid rows' independent from 'grid containers'
[Packages/TYPO3.CMS.git] / typo3 / sysext / form / Configuration / Yaml / BaseSetup.yaml
1 TYPO3:
2   CMS:
3     Form:
4       persistenceManager:
5         allowedFileMounts:
6           10: 1:/user_upload/
7         allowSaveToExtensionPaths: false
8         allowDeleteFromExtensionPaths: false
9         #allowedExtensionPaths:
10           #10: EXT:example/Resources/Private/Forms/
11
12       prototypes:
13         standard:
14
15           ########### DEFAULT FORM ELEMENT DEFINITIONS ###########
16           formElementsDefinition:
17
18             ### BASE ELEMENTS ###
19             Form:
20               __inheritances:
21                 10: 'TYPO3.CMS.Form.mixins.formElementMixins.BaseFormElementMixin'
22               rendererClassName: 'TYPO3\CMS\Form\Domain\Renderer\FluidFormRenderer'
23               renderingOptions:
24                 __inheritances:
25                   10: 'TYPO3.CMS.Form.mixins.translationSettingsMixin'
26                 templateRootPaths:
27                   10: 'EXT:form/Resources/Private/Frontend/Templates/'
28                 partialRootPaths:
29                   10: 'EXT:form/Resources/Private/Frontend/Partials/'
30                 layoutRootPaths:
31                   10: 'EXT:form/Resources/Private/Frontend/Layouts/'
32                 addQueryString: false
33                 argumentsToBeExcludedFromQueryString: []
34                 additionalParams: []
35                 controllerAction: perform
36                 httpMethod: post
37                 httpEnctype: 'multipart/form-data'
38                 _isCompositeFormElement: false
39                 _isTopLevelFormElement: true
40
41                 honeypot:
42                   enable: true
43                   formElementToUse: 'Honeypot'
44
45                 # set this to TRUE if you want to avoid exceptions for FormElements without definitions
46                 skipUnknownElements: true
47
48             ### FORM ELEMENTS: CONTAINER ###
49             Page:
50               __inheritances:
51                 10: 'TYPO3.CMS.Form.mixins.formElementMixins.BaseFormElementMixin'
52               implementationClassName: 'TYPO3\CMS\Form\Domain\Model\FormElements\Page'
53               renderingOptions:
54                 _isTopLevelFormElement: true
55                 _isCompositeFormElement: true
56
57             SummaryPage:
58               __inheritances:
59                 10: 'TYPO3.CMS.Form.prototypes.standard.formElementsDefinition.Page'
60               renderingOptions:
61                 _isTopLevelFormElement: true
62                 _isCompositeFormElement: false
63
64             Fieldset:
65               __inheritances:
66                 10: 'TYPO3.CMS.Form.mixins.formElementMixins.FormElementMixin'
67               implementationClassName: 'TYPO3\CMS\Form\Domain\Model\FormElements\Section'
68               renderingOptions:
69                 _isCompositeFormElement: true
70
71             GridContainer:
72               __inheritances:
73                 10: 'TYPO3.CMS.Form.mixins.formElementMixins.FormElementMixin'
74               implementationClassName: 'TYPO3\CMS\Form\Domain\Model\FormElements\GridContainer'
75               renderingOptions:
76                 _isCompositeFormElement: true
77                 _isGridContainerFormElement: true
78               properties:
79                 elementClassAttribute: 'container'
80                 # overrules 'GridRow.properties.gridColumnClassAutoConfiguration'
81                 gridColumnClassAutoConfiguration:
82                   gridSize: 12
83                   viewPorts:
84                     xs:
85                       classPattern: 'col-xs-{@numbersOfColumnsToUse}'
86                     sm:
87                       classPattern: 'col-sm-{@numbersOfColumnsToUse}'
88                     md:
89                       classPattern: 'col-md-{@numbersOfColumnsToUse}'
90                     lg:
91                       classPattern: 'col-lg-{@numbersOfColumnsToUse}'
92
93             GridRow:
94               __inheritances:
95                 10: 'TYPO3.CMS.Form.mixins.formElementMixins.FormElementMixin'
96               implementationClassName: 'TYPO3\CMS\Form\Domain\Model\FormElements\GridRow'
97               properties:
98                 elementClassAttribute: 'row'
99                 gridColumnClassAutoConfiguration:
100                   gridSize: 12
101                   viewPorts:
102                     xs:
103                       classPattern: 'col-xs-{@numbersOfColumnsToUse}'
104                     sm:
105                       classPattern: 'col-sm-{@numbersOfColumnsToUse}'
106                     md:
107                       classPattern: 'col-md-{@numbersOfColumnsToUse}'
108                     lg:
109                       classPattern: 'col-lg-{@numbersOfColumnsToUse}'
110               renderingOptions:
111                 _isCompositeFormElement: true
112                 _isGridRowFormElement: true
113
114             ### FORM ELEMENTS: INPUT ###
115             Text:
116               __inheritances:
117                 10: 'TYPO3.CMS.Form.mixins.formElementMixins.TextMixin'
118
119             Password:
120               __inheritances:
121                 10: 'TYPO3.CMS.Form.mixins.formElementMixins.TextMixin'
122
123             AdvancedPassword:
124               __inheritances:
125                 10: 'TYPO3.CMS.Form.prototypes.standard.formElementsDefinition.Password'
126               # implementationClassName 'TYPO3\CMS\Form\Domain\Model\FormElements\AdvancedPassword'
127               # is deprecated since TYPO3 v8 and will be removed in TYPO3 v9
128               # will be 'TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement' in TYPO3 v9
129               implementationClassName: 'TYPO3\CMS\Form\Domain\Model\FormElements\AdvancedPassword'
130               properties:
131                 elementClassAttribute: 'input-medium'
132                 confirmationLabel: ''
133                 # Optional description (hint) for the first password input element
134                 #passwordDescription: ''
135                 confirmationClassAttribute: 'input-medium'
136
137             Textarea:
138               __inheritances:
139                 10: 'TYPO3.CMS.Form.mixins.formElementMixins.TextMixin'
140               properties:
141                 elementClassAttribute: 'xxlarge'
142
143             Honeypot:
144               __inheritances:
145                 10: 'TYPO3.CMS.Form.mixins.formElementMixins.TextMixin'
146               properties:
147                 renderAsHiddenField: false
148                 styleAttribute: 'position:absolute; margin:0 0 0 -999em;'
149
150             Hidden:
151               __inheritances:
152                 10: 'TYPO3.CMS.Form.mixins.formElementMixins.FormElementMixin'
153
154             ### FORM ELEMENTS: SELECT ###
155             Checkbox:
156               __inheritances:
157                 10: 'TYPO3.CMS.Form.mixins.formElementMixins.FormElementMixin'
158               properties:
159                 elementClassAttribute: 'add-on'
160                 value: 1
161
162             MultiCheckbox:
163               __inheritances:
164                 10: 'TYPO3.CMS.Form.mixins.formElementMixins.MultiSelectionMixin'
165
166             MultiSelect:
167               __inheritances:
168                 10: 'TYPO3.CMS.Form.mixins.formElementMixins.MultiSelectionMixin'
169               properties:
170                 elementClassAttribute: 'xlarge'
171
172             RadioButton:
173               __inheritances:
174                 10: 'TYPO3.CMS.Form.mixins.formElementMixins.SingleSelectionMixin'
175               properties:
176                 elementClassAttribute: 'xlarge'
177
178             SingleSelect:
179               __inheritances:
180                 10: 'TYPO3.CMS.Form.mixins.formElementMixins.SingleSelectionMixin'
181
182             ### FORM ELEMENTS: CUSTOM ###
183             DatePicker:
184               __inheritances:
185                 10: 'TYPO3.CMS.Form.mixins.formElementMixins.FormElementMixin'
186               implementationClassName: 'TYPO3\CMS\Form\Domain\Model\FormElements\DatePicker'
187               properties:
188                 elementClassAttribute: 'small form-control'
189                 timeSelectorClassAttribute: 'mini'
190                 timeSelectorHourLabel: ''
191                 timeSelectorMinuteLabel: ''
192                 dateFormat: 'Y-m-d'
193                 enableDatePicker: true
194                 displayTimeSelector: false
195
196             StaticText:
197               __inheritances:
198                 10: 'TYPO3.CMS.Form.mixins.formElementMixins.ReadOnlyFormElementMixin'
199               properties:
200                 text: ''
201
202             ContentElement:
203               __inheritances:
204                 10: 'TYPO3.CMS.Form.mixins.formElementMixins.ReadOnlyFormElementMixin'
205               properties:
206                 contentElementUid: ''
207
208             ### FORM ELEMENTS: UPLOADS ###
209             FileUpload:
210               __inheritances:
211                 10: 'TYPO3.CMS.Form.mixins.formElementMixins.FileUploadMixin'
212               properties:
213                 allowedMimeTypes: ['application/doc', 'application/docx', 'application/odt', 'application/pdf']
214
215             ImageUpload:
216               __inheritances:
217                 10: 'TYPO3.CMS.Form.mixins.formElementMixins.FileUploadMixin'
218               properties:
219                 allowedMimeTypes: ['image/jpeg', 'image/png', 'image/bmp']
220                 elementClassAttribute: 'lightbox'
221                 imageLinkMaxWidth: 500
222                 imageMaxWidth: 500
223                 imageMaxHeight: 500
224
225           ### FINISHERS ###
226
227           finishersDefinition:
228             Closure:
229               implementationClassName: 'TYPO3\CMS\Form\Domain\Finishers\ClosureFinisher'
230               options:
231                 #closure:
232
233             Confirmation:
234               implementationClassName: 'TYPO3\CMS\Form\Domain\Finishers\ConfirmationFinisher'
235               #options:
236                 #message: ''
237
238             EmailToSender:
239               __inheritances:
240                 10: 'TYPO3.CMS.Form.mixins.finishersEmailMixin'
241
242             EmailToReceiver:
243               __inheritances:
244                 10: 'TYPO3.CMS.Form.mixins.finishersEmailMixin'
245
246             DeleteUploads:
247               implementationClassName: 'TYPO3\CMS\Form\Domain\Finishers\DeleteUploadsFinisher'
248
249             FlashMessage:
250               implementationClassName: 'TYPO3\CMS\Form\Domain\Finishers\FlashMessageFinisher'
251               #options:
252                 #messageBody: ''
253                 #messageTitle: ''
254                 #messageArguments: {}
255                 #messageCode: 0
256                 #severity: 0
257
258             Redirect:
259               implementationClassName: 'TYPO3\CMS\Form\Domain\Finishers\RedirectFinisher'
260               #options:
261                 #pageUid: 1
262                 #additionalParameters: ''
263                 #delay: 0
264                 #statusCode: 303
265
266             SaveToDatabase:
267               implementationClassName: 'TYPO3\CMS\Form\Domain\Finishers\SaveToDatabaseFinisher'
268               #options:
269                 #table: ''
270                 #mode: 'insert'
271                 #whereClause: []
272                 #elements:
273                 #  <elementIdentifier>:
274                 #    mapOnDatabaseColumn: <databaseColumnName>
275                 #    saveFileIdentifierInsteadOfUid: false
276                 #    skipIfValueIsEmpty: false
277                 #databaseColumnMappings:
278                 #  <databaseColumnName>:
279                 #    value: 'someValue'
280                 #    skipIfValueIsEmpty: false
281
282           ### VALIDATORS ###
283           validatorsDefinition:
284             NotEmpty:
285               implementationClassName: 'TYPO3\CMS\Extbase\Validation\Validator\NotEmptyValidator'
286             DateTime:
287               implementationClassName: 'TYPO3\CMS\Extbase\Validation\Validator\DateTimeValidator'
288             Alphanumeric:
289               implementationClassName: 'TYPO3\CMS\Extbase\Validation\Validator\AlphanumericValidator'
290             Text:
291               implementationClassName: 'TYPO3\CMS\Extbase\Validation\Validator\TextValidator'
292             StringLength:
293               implementationClassName: 'TYPO3\CMS\Extbase\Validation\Validator\StringLengthValidator'
294               #options:
295                 #minimum: 0
296                 #maximum: 0
297             EmailAddress:
298               implementationClassName: 'TYPO3\CMS\Extbase\Validation\Validator\EmailAddressValidator'
299             Integer:
300               implementationClassName: 'TYPO3\CMS\Extbase\Validation\Validator\IntegerValidator'
301             Float:
302               implementationClassName: 'TYPO3\CMS\Extbase\Validation\Validator\FloatValidator'
303             NumberRange:
304               implementationClassName: 'TYPO3\CMS\Extbase\Validation\Validator\NumberRangeValidator'
305               #options:
306                 #minimum: 0
307                 #maximum: 0
308             RegularExpression:
309               implementationClassName: 'TYPO3\CMS\Extbase\Validation\Validator\RegularExpressionValidator'
310               #options:
311                 #regularExpression: '/^.*$/'
312             Count:
313               implementationClassName: 'TYPO3\CMS\Form\Mvc\Validation\CountValidator'
314               #options:
315                 #minimum: 0
316                 #maximum: 0
317
318       ########### MIXINS ###########
319       mixins:
320         translationSettingsMixin:
321           translation:
322             translationFile: 'EXT:form/Resources/Private/Language/locallang.xlf'
323             #translatePropertyValueIfEmpty: true
324
325         ########### FORM ELEMENT MIXINS ###########
326         formElementMixins:
327           BaseFormElementMixin: []
328               # The form element type is chosen as the template name by default.
329               # If you want another name you can set it with 'templateName'
330               #templateName: 'CustomTemplateName'
331
332           ReadOnlyFormElementMixin:
333             __inheritances:
334               10: 'TYPO3.CMS.Form.mixins.formElementMixins.BaseFormElementMixin'
335             implementationClassName: 'TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement'
336
337           FormElementMixin:
338             __inheritances:
339               10: 'TYPO3.CMS.Form.mixins.formElementMixins.BaseFormElementMixin'
340             implementationClassName: 'TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement'
341             properties:
342               containerClassAttribute: 'input'
343               elementClassAttribute: ''
344               elementErrorClassAttribute: 'error'
345               #gridColumnClassAutoConfiguration:
346               #  viewPorts:
347               #    xs:
348               #      numbersOfColumnsToUse: ''
349               #    sm:
350               #      numbersOfColumnsToUse: ''
351               #    md:
352               #      numbersOfColumnsToUse: ''
353               #    lg:
354               #      numbersOfColumnsToUse: ''
355
356           TextMixin:
357             __inheritances:
358               10: 'TYPO3.CMS.Form.mixins.formElementMixins.FormElementMixin'
359
360           SelectionMixin:
361             __inheritances:
362               10: 'TYPO3.CMS.Form.mixins.formElementMixins.FormElementMixin'
363
364           SingleSelectionMixin:
365             __inheritances:
366               10: 'TYPO3.CMS.Form.mixins.formElementMixins.SelectionMixin'
367
368           MultiSelectionMixin:
369             __inheritances:
370               10: 'TYPO3.CMS.Form.mixins.formElementMixins.SelectionMixin'
371
372           FileUploadMixin:
373             __inheritances:
374               10: 'TYPO3.CMS.Form.mixins.formElementMixins.FormElementMixin'
375             implementationClassName: 'TYPO3\CMS\Form\Domain\Model\FormElements\FileUpload'
376             properties:
377               saveToFileMount: '1:/user_upload/'
378
379         finishersEmailMixin:
380           implementationClassName: 'TYPO3\CMS\Form\Domain\Finishers\EmailFinisher'
381           options:
382             #subject: ''
383             #recipientAddress: ''
384             #recipientName: ''
385             #senderAddress:
386             #senderName: ''
387             #replyToAddress: ''
388             #carbonCopyAddress: ''
389             #blindCarbonCopyAddress: ''
390             #format: 'html'
391             #attachUploads: true
392             #translation:
393             #  language: 'default'
394             # {@format} depends the 'format' value
395             templatePathAndFilename: 'EXT:form/Resources/Private/Frontend/Templates/Finishers/Email/{@format}.html'
396             #partialRootPaths: []
397             #layoutRootPaths: []
398             #variables: {}