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';