diff --git a/typo3/sysext/impexp/Classes/Controller/ExportController.php b/typo3/sysext/impexp/Classes/Controller/ExportController.php index b6471c77d9fbe8a4080d5222d251db68904f119c..599ca146f525b1d29d0713487405e1f6bb981a10 100644 --- a/typo3/sysext/impexp/Classes/Controller/ExportController.php +++ b/typo3/sysext/impexp/Classes/Controller/ExportController.php @@ -217,24 +217,24 @@ class ExportController if (!empty($inputData['filetype'])) { $export->setExportFileType((string)$inputData['filetype']); } - $export->setExportFileName($inputData['filename'] ?? ''); - $export->setRelStaticTables($inputData['external_static']['tables']); - $export->setRelOnlyTables($inputData['external_ref']['tables']); + $export->setExportFileName((string)($inputData['filename'] ?? '')); + $export->setRelStaticTables((($inputData['external_static']['tables'] ?? '') === '') ? [] : (array)$inputData['external_static']['tables']); + $export->setRelOnlyTables((($inputData['external_ref']['tables'] ?? '') === '') ? [] : (array)$inputData['external_ref']['tables']); if (isset($inputData['save_export'], $inputData['saveFilesOutsideExportFile']) && $inputData['saveFilesOutsideExportFile'] === '1') { $export->setSaveFilesOutsideExportFile(true); } - $export->setTitle($inputData['meta']['title']); - $export->setDescription($inputData['meta']['description']); - $export->setNotes($inputData['meta']['notes']); - $export->setRecord($inputData['record']); - $export->setList($inputData['list']); + $export->setTitle((string)($inputData['meta']['title'] ?? '')); + $export->setDescription((string)($inputData['meta']['description'] ?? '')); + $export->setNotes((string)($inputData['meta']['notes'] ?? '')); + $export->setRecord((($inputData['record'] ?? '') === '') ? [] : (array)$inputData['record']); + $export->setList((($inputData['list'] ?? '') === '') ? [] : (array)$inputData['list']); if (MathUtility::canBeInterpretedAsInteger($inputData['pagetree']['id'] ?? null)) { $export->setPid((int)$inputData['pagetree']['id']); } if (MathUtility::canBeInterpretedAsInteger($inputData['pagetree']['levels'] ?? null)) { $export->setLevels((int)$inputData['pagetree']['levels']); } - $export->setTables($inputData['pagetree']['tables']); + $export->setTables((($inputData['pagetree']['tables'] ?? '') === '') ? [] : (array)$inputData['pagetree']['tables']); return $export; } diff --git a/typo3/sysext/impexp/Classes/Import.php b/typo3/sysext/impexp/Classes/Import.php index 1984b02ac3a2a1419131dd113bff78524a693c43..3d4716ac3c3ce3cabb39a36338f4796982f4eebc 100644 --- a/typo3/sysext/impexp/Classes/Import.php +++ b/typo3/sysext/impexp/Classes/Import.php @@ -1046,7 +1046,9 @@ class Import extends ImportExport // @see fixUidLocalInSysFileReferenceRecords() // If it's empty or a uid to another record the FileExtensionFilter will throw an exception or // delete the reference record if the file extension of the related record doesn't match. - if (!($table === 'sys_file_reference' && $field === 'uid_local')) { + if (!($table === 'sys_file_reference' && $field === 'uid_local') + && is_array($GLOBALS['TCA'][$table]['columns'][$field]['config'] ?? false) + ) { $importData[$table][$ID][$field] = $this->getReferenceDefaultValue($GLOBALS['TCA'][$table]['columns'][$field]['config']); } break; @@ -1449,7 +1451,7 @@ class Import extends ImportExport if (isset($GLOBALS['TCA'][$table])) { foreach ($records as $uid => $record) { if (is_array($record['softrefs'] ?? null)) { - $actualUid = BackendUtility::wsMapId($table, $this->importMapId[$table][$uid]); + $actualUid = BackendUtility::wsMapId($table, $this->importMapId[$table][$uid] ?? 0); // First, group soft references by record field ... // (this could probably also have been done with $this->dat['records'] instead of $this->dat['header']) $softrefs = [];