Bug #80699
closedStory #69617: FormEngine bugs
Inline elements with foreign TCA relation to another table should load relations before saving record
0%
Description
We have a BackendPage with some in-line elements and in the inline elements there is foreign TCA relation to another table.
When we create a new element (before saving it) we would like to be able to display the existing relations - but the
###REC_FIELD_questions_uid### of the new inline-element is empty making it impossible to use AND questions_uid=###REC_FIELD_questions_uid###
in the foreign_table_where.
This used to be the case in previous versions of TYPO3.
The problem seems to be in the processing of ###REC_FIELD_field_name### where an extra condition could be added in case that the
###REC_FIELD_field_name### matches the [inlineParentConfig][foreign_field] it could be assigned the value from $result['inlineParentUid']
which is present at that time.
Use-case:
Matching of source and targets elements on a BE form.
User typically creates a number of targets on the form which are store in tx_systimequizmatching_targets.
Now the user want's to create relations between sources and targets by creating a source element in the
same form.
Before the patch the ###REC_FIELD_questions_uid### can't be resolved before the form has been saved - which makes it cumbersome
to create a lot of relations since it requires "create source element", "save" , "go to element again", "create relations" and
"save".
The prober way (used to be so in previous versions of TYPO3) was create source element, add relation and save (faster).
Involved tables:
Table tx_systimequizmatching_sources (sources) Table tx_systimequizmatching_targets (targets) Table tx_systimequizmatching_sources_targets_mm (MM table)
TCA for part of tx_systimequizmatching_sources is
'targets' => array( 'exclude' => 0, 'label' => 'LLL:EXT:systime_quiz_matching/Resources/Private/Language/locallang_db.xlf:tx_systimequizmatching_sources.targets', 'config' => array( 'type' => 'select', 'renderType' => 'selectCheckBox', 'disableNoMatchingValueElement' => 1, 'foreign_table' => 'tx_systimequizmatching_targets', 'foreign_table_where' => 'AND questions_uid=###REC_FIELD_questions_uid### AND questions_uid > 0 ORDER BY tx_systimequizmatching_targets.sorting', 'size' => 10, 'minitems' => 0, 'maxitems' => 10, 'MM' => 'tx_systimequizmatching_sources_targets_mm', 'renderMode' => 'checkbox', ) ),
Files