Attention
TYPO3 v10 has reached end-of-life as of April 30th 2023 and is no longer being maintained. Use the version switcher on the top left of this page to select documentation for a supported version of TYPO3.
Need more time before upgrading? You can purchase Extended Long Term Support (ELTS) for TYPO3 v10 here: TYPO3 ELTS.
TCAdefaults¶
This allows to set or override the default
values of TCA
fields that is available
for various TCA types, for instance for type=input.
The full path of a setting include the table and the field name: TCAdefaults.[table name].[field]
This key is also available on Page TSconfig level, the order of default values when creating new records in the backend is this:
Value from
$GLOBALS['TCA']
Value from User TSconfig (these settings)
Value from Page TSconfig
Value from "defVals" GET variables
Value from previous record based on 'useColumnsForDefaultValues'
However the order for default values used by \TYPO3\CMS\Core\DataHandling\DataHandler
if a certain
field is not granted access to for user will be:
Value from
$GLOBALS['TCA']
Value from User TSconfig (these settings)
So these values will be authoritative if the user has no access to the field anyway.
Example:
# Show newly created pages by default
TCAdefaults.pages.hidden = 0
Important
This example will not work when creating the page from the context menu
since this is triggered by the values listed in the ctrl
section of
typo3/sysext/core/Configuration/TCA/pages.php
:
'ctrl' => [
'useColumnsForDefaultValues' => 'doktype,fe_group,hidden',
...
]
If 'hidden' is in the list, it gets overridden with the "neighbor" record value (see
\TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseRowInitializeNew::setDefaultsFromNeighborRow
)
and as the value is set - usually to '0' - it will not be overridden
again. To make it work as expected, that value must be overridden. This
can be done for example in the Configuration/TCA/Overrides
folder
of an extension:
$GLOBALS['TCA']['pages']['ctrl']['useColumnsForDefaultValues'] = 'doktype,fe_group';