Project

General

Profile

Actions

Bug #101708

open

Fields not be kept in sync with their l10n_parent value if the field is excluded for the user

Added by Philipp Wrann over 1 year ago.

Status:
New
Priority:
Should have
Assignee:
-
Category:
DataHandler aka TCEmain
Start date:
2023-08-18
Due date:
% Done:

0%

Estimated time:
TYPO3 Version:
11
PHP Version:
8.2
Tags:
Complexity:
Is Regression:
Sprint Focus:

Description

When updating a record all fields of the default_language should be taken into account when synchronizing the translations.

Example:
Create a page, chose a backend_layout and a different backend_layout_next_level. You would do this to configure the default behaviour and make the creation of new content for the editor as easy as possible. Now the editor wants to translate all content and translates the parent page. Because he does not have the exclude-field "backend_layout_next_level" enabled the field will not be kept in synced state with the l10n_parent/l10n_source value.

In my opinion this behaviour is not correct. You could fix the situation only by allowing the editor to edit the backend_layout_next_level. But that way the editor might break things, which is the reason you may have decided to NOT enable the field.

As i see it data consistency is too important to accept this situation. My recommendation is to take ALL fields into account when syncing records with their translation source.

The update record method in pseudo code:

updateRow(type, data[uid], data);
uid = getOriginalContentUidForRecord(type, data[uid])
allContent = getAllLanguageVersionsOfRecord(type, uid)
for languageVersion of allContent
  if languageVersion[uid] === data[uid] continue
  merged = mergeLanguageVersionWithTranslationSources(languageVersion, allContent);
  updateRow(type, languageVersion[uid], merged)

No data to display

Actions

Also available in: Atom PDF