Bug #82391
closedInline records in TYPO3 v. 7.6.22 crash when NOT having sys_language_uid on children
0%
Description
I have a few plugins containing records without DB field sys_language_uid...... - after upgrading to 7.6.22 I get an error 500 when trying to add the record as inline to.... let's say pages.
Sure I can add the language configuration fields, but maybe the core should check for the existence of the field before trying to set the field?!
sysext/backend/Classes/Controller/FormInlineAjaxController.php
if ($parent['localizationMode'] === 'select' && MathUtility::canBeInterpretedAsInteger($parent['uid'])) { $parentRecord = $inlineRelatedRecordResolver->getRecord($parent['table'], $parent['uid']); $parentLanguageField = $GLOBALS['TCA'][$parent['table']]['ctrl']['languageField']; $childLanguageField = $GLOBALS['TCA'][$child['table']]['ctrl']['languageField']; if ($parentRecord[$parentLanguageField] > 0) { $record[$childLanguageField] = $parentRecord[$parentLanguageField]; <---------!!!!!!!! } }
Greatings, Claus
TYPO3 rocks!!!!
Updated by Malte Muth over 7 years ago
The snippet posted seems to be from version 7.6.21; commit ID 9d3aa8618b changed this to
if ($parent['localizationMode'] !== 'keep' && MathUtility::canBeInterpretedAsInteger($parent['uid'])) { $parentRecord = BackendUtility::getRecord($parent['table'], $parent['uid']); $parentLanguageField = $GLOBALS['TCA'][$parent['table']]['ctrl']['languageField']; $childLanguageField = $GLOBALS['TCA'][$child['table']]['ctrl']['languageField']; $childData['databaseRow'][$childLanguageField][0] = $parentRecord[$parentLanguageField]; }
Either way, the behaviour is still "500" when trying to add childs to records that have
localizationMode === false
I think this is a regression, since 7.6.21 worked, as the check
if ($parentRecord[$parentLanguageField] > 0) {
caught this. I propose to add
$parent['localizationMode']
to the conditions - can anybody with some knowledge chime in?
Updated by Mathias Brodala about 7 years ago
- Is duplicate of Bug #82330: cant create inline records if ctrl > enablecolumns > endtime is not specified in childrens TCA added