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:

  1. Value from $GLOBALS['TCA']

  2. Value from User TSconfig (these settings)

  3. Value from Page TSconfig

  4. Value from "defVals" GET variables

  5. 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:

  1. Value from $GLOBALS['TCA']

  2. 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 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 the Configuration/TCA/Overrides folder of an extension:

$GLOBALS['TCA']['pages']['ctrl']['useColumnsForDefaultValues'] = 'doktype,fe_group';