Attention
TYPO3 v9 has reached its end-of-life September 30th, 2021 and is not maintained by the community anymore. Looking for a stable version? Use the version switch on the top left.
You can order Extended Long Term Support (ELTS) 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 = 0Important
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 oftypo3/sysext/core/Configuration/TCA/pages.php
:'ctrl' => [ 'useColumnsForDefaultValues' => 'doktype,fe_group,hidden', ... ]If 'hidden' is in the list, it gets overwritten 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 overwritten again. To make it work as expected, that value must be overridden. This can be done for example in theConfiguration/TCA/Overrides
folder of an extension:$GLOBALS['TCA']['pages']['ctrl']['useColumnsForDefaultValues'] = 'doktype,fe_group';