Feature: #94406 - Override fileFolder TCA configuration with TSconfig

See forge#94406

Description

The special fileFolder configuration options for TCA columns of type select can be used to fill a select field with files (images / icons) from a defined folder. This is really handy, e.g. for selecting predefined icons from a corporate icon set. However, in installations with multiple sites, such icon sets usually differ from site to site.

Therefore, the fileFolder configuration can now be overridden with page TSconfig, allowing administrators to easily handle those situations by e.g. using different folders or allowing different file extensions, per site.

To streamline both, the TCA configuration and the corresponding overrides, the fileFolder configuration options have been moved into a dedicated sub array fileFolderConfig, some options have been renamed:

  • fileFolder option folder
  • fileFolder_extList to allowedExtensions
  • fileFolder_recursions to depth

A TCA migration wizard is available, showing where adjustments have to take place.

Before:

'aField' => [
   'config' => [
      'type' => 'select',
      'renderType' => 'selectSingle',
      'fileFolder' => 'EXT:my_ext/Resources/Public/Icons',
      'fileFolder_extList' => 'svg',
      'fileFolder_recursions' => 1,
   ]
]
Copied!

After:

'aField' => [
   'config' => [
      'type' => 'select',
      'renderType' => 'selectSingle',
      'fileFolderConfig' => [
         'folder' => 'EXT:styleguide/Resources/Public/Icons',
         'allowedExtensions' => 'svg',
         'depth' => 1,
      ]
   ]
]
Copied!

Thus, the following TSconfig options can be used to overriding their TCA counterpart:

config.fileFolderConfig.folder
config.fileFolderConfig.allowedExtensions
config.fileFolderConfig.depth
Copied!

As already known from TCEFORM, those options can be used on various levels

On table level:

TCEFORM.myTable.myField.config.fileFolderConfig.folder
Copied!

On table and record type level:

TCEFORM.myTable.myFiled.types.myType.config.fileFolderConfig.folder
Copied!

On flex form field level:

TCEFORM.myTable.pi_flexform.my_ext_pi1.sDEF.myField.config.fileFolderConfig.folder
Copied!

Impact

It's now possible to override the TCA fileFolder configuration options with page TSconfig, allowing administrators to manipulate the available items on a page basis.

The fileFolder TCA configuration is furthermore streamlined and now encapsulated in a dedicated sub array fileFolderConfig.