TCA definition

This chapter explains how to create a field that makes it possible to create relations to files.

Changed in version 12.0

For TYPO3 v11 and below the API function ExtensionManagementUtility::getFileFieldTCAConfig() was used to create a TCA configuration suitable to handle files. This function has been deprecated with the introduction of the new field type File. See the Migration section on how to adjust the configuration.

Changed in version 13.0

The TCA field type File can be used to provide a field in which files can be referenced and/or uploaded:

EXT:my_extension/Configuration/TCA/my_table.php
<?php

return [
    'ctrl' => [
        // ...
    ],
    'columns' => [
        'my_media_file' => [
            'label' => 'My image',
            'config' => [
                'type' => 'file',
                'allowed' => 'common-media-types',
            ],
        ],
        // ...
    ],
    // ...
];
Copied!

The property appearance can be used to specify, if a file upload button and file by URL button (Vimeo, Youtube) should be displayed.

Example:

EXT:my_extension/Configuration/TCA/Overrides/my_table.php
<?php

$GLOBALS['TCA']['my_table']['columns']['my_media_file']['config']['appearance'] = [
    'fileUploadAllowed' => false,
    'fileByUrlAllowed' => false,
];
Copied!

This will suppress two buttons for upload and external URL and only leave the button Create new relation.

Migration from ExtensionManagementUtility::getFileFieldTCAConfig

// Before
'columns' => [
    'image' => [
        'label' => 'My image',
        'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
            'image',
            [
                'maxitems' => 6,
            ],
            $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']
        ),
    ],
],

// After
'columns' => [
    'image' => [
        'label' => 'My image',
        'config' => [
            'type' => 'file',
            'maxitems' => 6,
            'allowed' => 'common-image-types'
        ],
    ],
],
Copied!