Bug #85914
closedErrors in L10nModeUpdater with "l10n_mode = exclude" in pages_language_overlay
100%
Description
Given a field in pages_language_overlay
marked with 'l10n_mode' => 'exclude'
the L10nModeUpdater
fails to process all records when upgrading from TYPO3v7 to TYPO3v8. The error:
Child record was not processed
In our specific case the field media
was marked as such since editors are not supposed to manage it in translations. (Notice that the field is actually never hidden, see #81348) When running the upgrade wizard, it constantly failed with the mentioned error message but in fact did get further by one record on each run.
While looking into this I noticed that the DataMapProcessor
determines if 'l10n_mode' => 'exclude'
is set for a field based on DataMapItem::getFromTableName()
which is always pages
for pages_language_overlay
. Thus for the given example above $GLOBALS['TCA']['pages']['columns']['media']['l10n_mode']
is checked instead of $GLOBALS['TCA']['pages_language_overlay']['columns']['media']['l10n_mode']
.
After moving the l10n_mode
to the TCA of pages
instead I noticed that this is reverted on the fly by TcaMigration::migratePageLocalizationDefinitions()
which moves the l10n_mode
back from pages
to pages_language_overlay
. So it looks like like it is in fact impossible to set l10n_mode
for columns of pages
/pages_language_overlay
.
In the end the issue could be solved/worked around by dropping l10n_mode
completely here but I think that's not how it's supposed to be.