Examples
Some examples from extension styleguide to get an idea on what the field definition is capable of: An input field with slider, a select drop-down for images, an inline relation spanning multiple tables.
The following examples all can be found in the extension styleguide.
Select drop-down for records represented by images
Select field with foreign table relation and field wizard:
[
'columns' => [
'select_single_12' => [
'label' => 'select_single_12 foreign_table selicon_field',
'config' => [
'type' => 'select',
'renderType' => 'selectSingle',
'foreign_table' => 'tx_styleguide_elements_select_single_12_foreign',
'fieldWizard' => [
'selectIcons' => [
'disabled' => false,
],
],
],
],
],
]
The table tx_
is defined as
follows:
[
'ctrl' => [
'title' => 'Form engine elements - select foreign single_12',
'label' => 'fal_1',
'selicon_field' => 'fal_1',
// ...
],
'columns' => [
// ...
'fal_1' => [
'label' => 'fal_1 selicon_field',
'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
'fal_1',
[
'maxitems' => 1,
],
$GLOBALS['TYPO3_CONF_VARS']['SYS']['mediafile_ext']
),
],
],
// ...
];
Inline relation (IRRE) spanning multiple tables
Inline relation to a foreign table:
[
'columns' => [
'inline_1' => [
'label' => 'inline_1',
'config' => [
'type' => 'inline',
'foreign_table' => 'tx_styleguide_inline_1n1n_child',
'foreign_field' => 'parentid',
'foreign_table_field' => 'parenttable',
],
],
],
]
Example: prefixLangTitle
The following example can be found in the extension styleguide. On translating a record in a new language the content of the
field gets copied to the target language. It get prefixed with
[Translate to <language name>:]
.
The language mode is defined as follows:
[
'columns' => [
'text_2' => [
'l10n_mode' => 'prefixLangTitle',
'label' => 'text_2',
'description' => 'cols=20',
'config' => [
'type' => 'text',
'cols' => 20,
],
],
],
]
Disable the prefixLangTitle for the header field in tt_content
Use the default behaviour instead of prefix
: the field will
be copied without a prepended string.
$GLOBALS['TCA']['tt_content']['columns']['header']['l10n_mode'] = ''
Select field with defaultAsReadonly
The following field has the option 'l10n_
set:
Complete TCA definition of the field:
[
'columns' => [
'select_single_13' => [
'label' => 'select_single_13 l10n_display=defaultAsReadonly',
'l10n_mode' => 'exclude',
'l10n_display' => 'defaultAsReadonly',
'config' => [
'type' => 'select',
'renderType' => 'selectSingle',
'items' => [
[
'label' => 'foo',
'value' => 'foo',
],
[
'label' => 'bar',
'value' => 'bar',
],
],
],
],
],
]
Translated field without l10n_display
definition
The following has no 'l10n_
definition:
Complete TCA definition of the field:
[
'columns' => [
'select_single_8' => [
'label' => 'select_single_8 drop down with empty div',
'config' => [
'type' => 'select',
'renderType' => 'selectSingle',
'items' => [
[
'label' => 'First div with items',
'value' => '--div--',
],
[
'label' => 'item 1',
'value' => 1,
],
[
'label' => 'item 2',
'value' => 2,
],
[
'label' => 'Second div without items',
'value' => '--div--',
],
[
'label' => 'Third div with items',
'value' => '--div--',
],
[
'label' => 'item 3',
'value' => 3,
],
],
],
],
],
]