Deprecation: #70138 - Flex form language handling

See forge#70138

Description

TCA flex fields had an own language handling that allowed to store field localization within the flex data itself and not within the usual database driven overlay records. This was mainly introduced for TemplaVoila and usually only used in this context.

The whole flex form specific language handling has been moved from core extensions to extension compatibility6 and will not be delivered with TYPO3 CMS 7 LTS anymore.

The following flex XML data structure keys have been marked as deprecated and are supported by compatiblity6 only:

  • <meta><langDisable>

  • <meta><langChildren>

  • <meta><currentLangId>

The following PageTSConfig options have been dropped and are ignored if compatibility6 is not loaded:

  • TCEFORM.[tableName].[field].[dataStructureKey].langDisable

  • TCEFORM.[tableName].[field].[dataStructureKey].langChildren

The following UserTSConfig options have been dropped and are ignored if compatibility6 is not loaded:

  • options.checkPageLanguageOverlay

The following LocalConfiguration value has been marked as deprecated, will be removed by the install tool and is set by compatibility6 to TRUE:

  • $GLOBALS['TYPO3_CONF_VARS']['BE']['flexFormXMLincludeDiffBase']

The following method has been marked as deprecated and is cloned by compatibility6 in an XCLASS:

  • TYPO3\CMS\Core\Configaration\FlexForm\FlexFormTools->getAvailableLanguages()

The following property has been marked as deprecated:

  • TYPO3\CMS\Core\DataHandling\DataHandler->clear_flexFormData_vDEFbase

Impact

If this feature is needed, the compatibility6 extension must be loaded to keep compatibility with older versions after upgrading from TYPO3 CMS 6.2. If the extension is not loaded, flex form fields can no longer be localized on flex data level.

Affected Installations

All multi language installations that use flex form with meta field langDisable not set to 1 in their data structure definition and that make active use of the flex localization feature. This is the case if records with flex form fields show flex forms multiple times with different language flags.

Migration

Load extension compatibility6 for a compatibility layer in TYPO3 CMS 7, or migrate affected features to use the record based localization feature. The flex field based language handling will most likely vanish with TYPO3 CMS 8 altogether. In case the feature is needed for a longer time the code from compatibility6 could be used as a kick start for an implementation within an own extension.

In case compatibility6 is loaded, some core content elements may start showing flex field language overlays since the langDisable meta definition has been removed from their data structure XML. This can be suppressed with this PageTSConfig snippet:

TCEFORM.tt_content.pi_flexform.table.langDisable = 1
TCEFORM.tt_content.pi_flexform.login.langDisable = 1
TCEFORM.tt_content.pi_flexform.media.langDisable = 1