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: When using the TCA type file
, TYPO3 takes care of
generating the according database field.
A developer does not need to define this field in an extension's
ext_tables.sql
file.
The TCA field type File can be used to provide a field in which files can be referenced and/or uploaded:
<?php
return [
'ctrl' => [
// ...
],
'columns' => [
'my_media_file' => [
'label' => 'My image',
'config' => [
'type' => 'file',
'allowed' => 'common-media-types',
],
],
// ...
],
// ...
];
The property appearance can be used to specify, if a file upload button and file by URL button (Vimeo, Youtube) should be displayed.
Example:
<?php
$GLOBALS['TCA']['my_table']['columns']['my_media_file']['config']['appearance'] = [
'fileUploadAllowed' => false,
'fileByUrlAllowed' => false,
];
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'
],
],
],