Inconsistencies in sys_language_uid of parent and child elements

I had a problem where some elements were displayed in the frontend, but not visible in the backend (page module). This only occurred on translated pages.

The problem could be narrowed down to inconsistencies in a language, for example:

gridelement (sys_language_uid=1)
|
->  gridelement (sys_language_uid=0)

  |
  -> textmedia (sys_language_uid=0)

If the sys_language_uid is set to 1 for the children of a gridelement with sys_language_uid=1 (recursively), the problem seems to be solved.

Obviously, this shouldn't happen.

Before I proceed and try to track down the problem, is this something that is already known and might be fixed?

This is a system that has been running on previous TYPO3 versions and was continuously updated.

DB query

If this gives any results, there are inconsistencies

SELECT tt1.uid,tt1.pid,tt1.list_type,tt1.ctype,tt1.header,tt1.sys_language_uid,tt2.uid,tt2.header,tt2.sys_language_uid 
  FROM tt_content tt1,tt_content tt2 
  WHERE NOT tt1.hidden 
    AND NOT tt1.deleted
    AND tt1.tx_gridelements_container != 0
    AND tt1.tx_gridelements_container = tt2.uid
    AND tt1.sys_language_uid != tt2.sys_language_uid
  ORDER BY tt1.uid;

System

  • TYPO3 8.7.24
  • gridelements 8.3.0

Reproduce

  1. in default language, copy a gridelement with children
  2. insert in other language

copied child elements do not get the new sys_language_uid.

I don't know if this is how the inconsistencies got created, but you can reproduce the problem this way. It is reproducible with 8.3.0 and also with the latest version 8.51 of gridelements.

Edited by Sybille Peters