Mask used to create a new db column for every type Content field. This field was used as "foreign_field", which holds the parent uid. The name of the column was used to backtrack the original parent. This worked as long as the Content field has a globally unique name.
Now, because of a missing validation, it was possible to create two Content fields with the same name. This led to same child items appearing in both fields.
Analogous to the sys_file_reference table, the nested tt_content field now saves the parent uid (foreign_field), role (foreign_match_fields) and the table name (foreign_table_field) in three separate db columns.
Using the standard TCA way, the door for shared type Content fields opened as well.
Mask used to create a new db column for every type Content field. This field was used as "foreign_field", which holds the parent uid. The name of the column was used to backtrack the original parent. This worked as long as the Content field has a globally unique name.
Now, because of a missing validation, it was possible to create two Content fields with the same name. This led to same child items appearing in both fields.
Analogous to the sys_file_reference table, the nested tt_content field now saves the parent uid (foreign_field), role (foreign_match_fields) and the table name (foreign_table_field) in three separate db columns.
Using the standard TCA way, the door for shared type Content fields opened as well.
@todo Migration Wizard @todo Recursive resolving
Fixes: #542