TCA::createConfig()
\nn\t3::TCA()->createConfig($tablename = '', $basics = [], $custom = []);
Get basic configuration for the TCA.
These are the fields such as hidden, starttime etc., which are always the same for (almost) all tables.
Get ALL typical fields:
'columns' => \nn\t3::TCA()->createConfig(
'tx_myext_domain_model_entry', true,
['title'=>...]
)
Copied!
Get only certain fields:
'columns' => \nn\t3::TCA()->createConfig(
'tx_myext_domain_model_entry',
['sys_language_uid', 'l10n_parent', 'l10n_source', 'l10n_diffsource', 'hidden', 'cruser_id', 'pid', 'crdate', 'tstamp', 'sorting', 'starttime', 'endtime', 'fe_group'],
['title'=>...]
)
Copied!
| @return array
Source Code
public function createConfig( $tablename = '', $basics = [], $custom = [] )
{
if ($basics === true) {
$basics = ['sys_language_uid', 'l10n_parent', 'l10n_source', 'l10n_diffsource', 'hidden', 'cruser_id', 'pid', 'crdate', 'tstamp', 'sorting', 'starttime', 'endtime', 'fe_group'];
}
$defaults = [
'sys_language_uid' => [
'exclude' => true,
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.language',
'config' => [
'type' => 'language',
'renderType' => 'selectSingle',
'special' => 'languages',
'items' => [
[
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.allLanguages',
'value' => -1,
'iconIdentifierChecked' => 'flags-multiple'
],
],
'default' => 0,
]
],
'l10n_parent' => [
'displayCond' => 'FIELD:sys_language_uid:>:0',
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent',
'config' => [
'type' => 'group',
'allowed' => $tablename,
'size' => 1,
'maxitems' => 1,
'minitems' => 0,
'default' => 0,
],
],
'l10n_source' => [
'config' => [
'type' => 'passthrough'
]
],
'l10n_diffsource' => [
'config' => [
'type' => 'passthrough',
'default' => ''
]
],
'hidden' => [
'exclude' => true,
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.hidden',
'config' => [
'type' => 'check',
'renderType' => 'checkboxToggle',
'default' => 0,
'items' => [
[
'label' => '',
'value' => '',
]
],
]
],
'cruser_id' => [
'label' => 'cruser_id',
'config' => [
'type' => 'passthrough'
]
],
'pid' => [
'label' => 'pid',
'config' => [
'type' => 'passthrough'
]
],
'crdate' => [
'label' => 'crdate',
'config' => [
'type' => 'input',
]
],
'tstamp' => [
'label' => 'tstamp',
'config' => [
'type' => 'input',
]
],
'sorting' => [
'label' => 'sorting',
'config' => [
'type' => 'passthrough',
]
],
'starttime' => [
'exclude' => true,
'label' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:starttime_formlabel',
'config' => [
'type' => 'datetime',
'default' => 0,
'behaviour' => [
'allowLanguageSynchronization' => true,
],
]
],
'endtime' => [
'exclude' => true,
'label' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:endtime_formlabel',
'config' => [
'type' => 'datetime',
'default' => 0,
'range' => [
'upper' => mktime(0, 0, 0, 1, 1, 2038),
],
'behaviour' => [
'allowLanguageSynchronization' => true,
],
]
],
'fe_group' => [
'exclude' => true,
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.fe_group',
'config' => [
'type' => 'select',
'renderType' => 'selectMultipleSideBySide',
'size' => 5,
'maxitems' => 20,
'items' => [
[
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.hide_at_login',
'value' => -1,
],
[
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.any_login',
'value' => -2,
],
[
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.usergroups',
'value' => '--div--',
],
],
'exclusiveKeys' => '-1,-2',
'foreign_table' => 'fe_groups',
'foreign_table_where' => 'ORDER BY fe_groups.title',
],
],
];
$result = [];
foreach ($basics as $key) {
if ($config = $defaults[$key] ?? false) {
$result[$key] = $config;
}
}
return array_merge( $result, $custom );
}
Copied!