Breaking: #102224 - TemplaVoila related FlexForm dataStructure lookups
See forge#102224
Description
The following TCA config options for 'type' = 'flex'
column fields are
not handled anymore:
['config']
['ds_ pointer Field_ search Parent'] ['config']
['ds_ pointer Field_ search Parent_ sub Field'] ['config']
['ds_ table Field']
The following related exception classes have been removed and are no longer thrown:
\TYPO3\
CMS\ Core\ Configuration\ Flex Form\ Exception\ Invalid Parent Row Exception \TYPO3\
CMS\ Core\ Configuration\ Flex Form\ Exception\ Invalid Parent Row Loop Exception \TYPO3\
CMS\ Core\ Configuration\ Flex Form\ Exception\ Invalid Parent Row Root Exception \TYPO3\
CMS\ Core\ Configuration\ Flex Form\ Exception\ Invalid Pointer Field Value Exception
Impact
When dealing with TCA type flex
fields, there needs to be a "data structure" that
defines which fields are rendered when editing the record. The default is looking up
the data structure using the ['ds']
value.
Multiple different data structures can be defined, so there is a strategy to find the
data structure relevant for current record. For table tt_
, this is
defined using ds_
, which determines the specific data structure based
on the combination of the fields CType
and list_
.
There have been more sophisticated lookup mechanisms based on the TCA config options
ds_
, ds_
and ds_
. Those lookup mechanisms have been removed with TYPO3 v13.
Affected installations
Instances with extensions having flex
fields using one of the TCA options
ds_
, ds_
or ds_
will fail to retrieve their data structure. Most likely,
an exception will be thrown when editing such records.
Those three fields have been implemented long ago for heavily flex form driven instances based on "TemplaVoila" (TV). This detail never found broader acceptance in not-TV driven instances.
Instances not driven by one of the TemplaVoila forks are most likely not affected by this change. Instances actively using TemplaVoila forks may be affected, but those forks seem to implement the data structure lookup on their own already, affected instances should wait for their templavoila maintainers to catch up.
Migration
There are appropriate events that allow manipulating the data structure
lookup logic in class \TYPO3\
.
Those can be used to re-implement the logic that has been removed from TYPO3
Core if needed.