diff --git a/typo3/sysext/backend/Classes/Form/AbstractNode.php b/typo3/sysext/backend/Classes/Form/AbstractNode.php index 67bea6c13fc8a968ec63fbd58c2ccb0fd277be06..6fd004abbb754263a4dc0bd1a1461dbd12916e41 100644 --- a/typo3/sysext/backend/Classes/Form/AbstractNode.php +++ b/typo3/sysext/backend/Classes/Form/AbstractNode.php @@ -108,7 +108,9 @@ abstract class AbstractNode implements NodeInterface, LoggerAwareInterface } /** - * Merge existing data with a child return array + * Merge existing data with a child return array. + * The incoming $childReturn array should be initialized + * using initializeResultArray() beforehand. * * @param array $existing Currently merged array * @param array $childReturn Array returned by child @@ -120,27 +122,23 @@ abstract class AbstractNode implements NodeInterface, LoggerAwareInterface if ($mergeHtml && !empty($childReturn['html'])) { $existing['html'] .= LF . $childReturn['html']; } - foreach ($childReturn['additionalJavaScriptPost'] as $value) { + foreach ($childReturn['additionalJavaScriptPost'] ?? [] as $value) { $existing['additionalJavaScriptPost'][] = $value; } - foreach ($childReturn['additionalJavaScriptSubmit'] as $value) { + foreach ($childReturn['additionalJavaScriptSubmit'] ?? [] as $value) { $existing['additionalJavaScriptSubmit'][] = $value; } - foreach ($childReturn['additionalHiddenFields'] as $value) { + foreach ($childReturn['additionalHiddenFields'] ?? [] as $value) { $existing['additionalHiddenFields'][] = $value; } - foreach ($childReturn['stylesheetFiles'] as $value) { + foreach ($childReturn['stylesheetFiles'] ?? [] as $value) { $existing['stylesheetFiles'][] = $value; } - if (!empty($childReturn['requireJsModules'])) { - foreach ($childReturn['requireJsModules'] as $module) { - $existing['requireJsModules'][] = $module; - } + foreach ($childReturn['requireJsModules'] ?? [] as $module) { + $existing['requireJsModules'][] = $module; } - if (!empty($childReturn['additionalInlineLanguageLabelFiles'])) { - foreach ($childReturn['additionalInlineLanguageLabelFiles'] as $inlineLanguageLabelFile) { - $existing['additionalInlineLanguageLabelFiles'][] = $inlineLanguageLabelFile; - } + foreach ($childReturn['additionalInlineLanguageLabelFiles'] ?? [] as $inlineLanguageLabelFile) { + $existing['additionalInlineLanguageLabelFiles'][] = $inlineLanguageLabelFile; } if (!empty($childReturn['inlineData'])) { $existingInlineData = $existing['inlineData'];