Bug #84998
opensys_language uid isn't updated when parent records sys_languge_uid changes
0%
Description
When you have a CE (tt_content) with some images created in the not default language and you change the sys_language_uid
the relation handling + BE forms break.
When you translate the CE again opening the BE form of the CE will create new sys_language_uid
records so you will see multiple file references appearing. Saving the CE will give an error:
ERROR Error handler Core: Exception handler (WEB): Uncaught TYPO3 Exception: #1486233164: Child record was not processed | RuntimeException thrown in file vendor/typo3/cms/typo3/sysext/core/Classes/DataHandling/Localization/DataMapProcessor.php in line 631.
Situation before sys_language_uid
change:
tt_content.sys_language_uid = 10 sys_file_reference.uid = 1111 sys_file_reference.sys_language_uid = 10 sys_file_reference.l10n_parent = 0
After change of sys_language_uid
:
tt_content.sys_language_uid = 0 sys_file_reference.uid = 1111 sys_file_reference.sys_language_uid = 10 sys_file_reference.l10n_parent = 0
Expected:
tt_content.sys_language_uid = 0 sys_file_reference.uid = 1111 sys_file_reference.sys_language_uid = 0 sys_file_reference.l10n_parent = 0
Note for others who run into this issue, after you changed the sys_language_uid
to 0 and create translation you will see records appearing like:
sys_file_reference.sys_language_uid = 10 sys_file_reference.l10n_parent = 0
But this should be
sys_file_reference.uid = 1111 sys_file_reference.sys_language_uid = 0 sys_file_reference.l10n_parent = 0 sys_file_reference.sys_language_uid = 10 sys_file_reference.l10n_parent = 1111
Due to the fact that sys_file_reference.sys_language_uid
isn't correctly set to 0
for the CE in the default language the l10n_parent
value for the translated CE's/file references is not correctly set.