Type Overrides
New in version 1.2
Type Overrides are a feature available for the field type Collection and File. With them it is possible to override a type definition of an existing type when used in the context of a Collection.
Internally the TCA option overrideChildTca
is used here to override the
showitem string for the specified type.
This feature can be used for different purposes:
- Reorder fields of the child record
- Remove fields from the child record
- Add completely new fields to the child record
- Override options like label, description, renderType etc.
For either of those purposes you need to re-define the
fields definition
for the specified type.
Warning
If you use type overrides to change validation options like
required,
max or
eval of existing fields, this won't have an effect
when saving the record. Only the editing interface will reflect the changes,
which might lead to inconsistencies.
Example 1: Override Multi Type Record
name: friendsoftypo3/example
table: tx_friendsoftypo3_example
prefixFields: false
labelField: title
fields:
-
identifier: title
type: Text
label: Title
- identifier: collection_override
type: Collection
foreign_table: tx_hov_domain_model_record1
overrideType:
record1:
- identifier: type
type: Select
useExistingField: true
- identifier: title
type: Text
useExistingField: true
- identifier: custom_field
type: Text
Here, the type record1 is overridden in the context of the Collection field
collection_. A type override is created with the option
override and then with the
type as the next key. From
there you define the usual configuration like in
fields.
Example 2: Override Single Type Record
name: friendsoftypo3/example
table: tx_friendsoftypo3_example
prefixFields: false
labelField: title
fields:
- identifier: title
type: Text
label: Title
- identifier: collection_override
type: Collection
foreign_table: tx_hov_domain_model_record
overrideType:
- identifier: title
type: Text
useExistingField: true
- identifier: custom_field
type: Text
This is the same as for multi-type records. The only difference is that you can
omit the type key. Internally, the
type 1 is used.
Example 3: Override File Types
name: friendsoftypo3/example
table: tx_friendsoftypo3_example
prefixFields: false
labelField: title
fields:
- identifier: title
type: Text
label: Title
- identifier: file_override
type: File
overrideType:
image:
- identifier: image_overlay_palette
type: Palette
label: 'LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.imageoverlayPalette'
fields:
- identifier: alternative
useExistingField: true
- identifier: description
useExistingField: true
- type: Linebreak
- identifier: link
useExistingField: true
- identifier: title
useExistingField: true
- type: Linebreak
- identifier: example_custom_field
type: Text
label: 'My custom Field'
- type: Linebreak
- identifier: crop
useExistingField: true
Lastly, type overrides can be used to re-define file definitions. In this
example the file type
image is overridden. File Types are usually
structured in a palette. This is why there is a type Palette as the first field.
Tip
File Types can also be re-defined on a global level. Refer to the File Types API for this.