diff --git a/typo3/sysext/backend/Classes/Controller/ContentElement/ElementInformationController.php b/typo3/sysext/backend/Classes/Controller/ContentElement/ElementInformationController.php index a7aa92e9d2c77d5047c51a2dbb0b6672d23b79fe..775fae8d716e6ee38f77580368274fd4c0b6ca6b 100644 --- a/typo3/sysext/backend/Classes/Controller/ContentElement/ElementInformationController.php +++ b/typo3/sysext/backend/Classes/Controller/ContentElement/ElementInformationController.php @@ -295,27 +295,31 @@ class ElementInformationController $table = 'sys_file_metadata'; $metaDataRepository = GeneralUtility::makeInstance(MetaDataRepository::class); /** @var array<string, string> $metaData */ - $metaData = $metaDataRepository->findByFileUid($this->row['uid']); - $allowedFields = $this->getFieldList($request, $table, (int)$metaData['uid']); - - foreach ($metaData as $name => $value) { - if (in_array($name, $allowedFields, true)) { - if (!isset($GLOBALS['TCA'][$table]['columns'][$name])) { - continue; - } - - $isExcluded = !(!($GLOBALS['TCA'][$table]['columns'][$name]['exclude'] ?? false) || $this->getBackendUser()->check('non_exclude_fields', $table . ':' . $name)); - if ($isExcluded) { - continue; + $metaData = $metaDataRepository->findByFileUid($this->row['uid'] ?? 0); + + // If there is no metadata record, skip it + if ($metaData !== []) { + $allowedFields = $this->getFieldList($request, $table, (int)$metaData['uid']); + + foreach ($metaData as $name => $value) { + if (in_array($name, $allowedFields, true)) { + if (!isset($GLOBALS['TCA'][$table]['columns'][$name])) { + continue; + } + + $isExcluded = !(!($GLOBALS['TCA'][$table]['columns'][$name]['exclude'] ?? false) || $this->getBackendUser()->check('non_exclude_fields', $table . ':' . $name)); + if ($isExcluded) { + continue; + } + + $label = $lang->sL(BackendUtility::getItemLabel($table, $name)); + $label = $label ?: $name; + + $propertiesForTable['fields'][] = [ + 'fieldValue' => BackendUtility::getProcessedValue($table, $name, $metaData[$name], 0, false, false, (int)$metaData['uid']), + 'fieldLabel' => htmlspecialchars($label), + ]; } - - $label = $lang->sL(BackendUtility::getItemLabel($table, $name)); - $label = $label ?: $name; - - $propertiesForTable['fields'][] = [ - 'fieldValue' => BackendUtility::getProcessedValue($table, $name, $metaData[$name], 0, false, false, (int)$metaData['uid']), - 'fieldLabel' => htmlspecialchars($label), - ]; } } } diff --git a/typo3/sysext/core/Classes/Resource/OnlineMedia/Helpers/AbstractOEmbedHelper.php b/typo3/sysext/core/Classes/Resource/OnlineMedia/Helpers/AbstractOEmbedHelper.php index 0eb3f174988e5e861727d97c3f58988b730669d5..cbd374ca45b02a8c5650e79bd55555af2e4d4df0 100644 --- a/typo3/sysext/core/Classes/Resource/OnlineMedia/Helpers/AbstractOEmbedHelper.php +++ b/typo3/sysext/core/Classes/Resource/OnlineMedia/Helpers/AbstractOEmbedHelper.php @@ -89,12 +89,12 @@ abstract class AbstractOEmbedHelper extends AbstractOnlineMediaHelper $oEmbed = $this->getOEmbedData($this->getOnlineMediaId($file)); if (is_array($oEmbed) && $oEmbed !== []) { - $metadata['width'] = (int)$oEmbed['width']; - $metadata['height'] = (int)$oEmbed['height']; + $metadata['width'] = (int)($oEmbed['width'] ?? 0); + $metadata['height'] = (int)($oEmbed['height'] ?? 0); if (empty($file->getProperty('title'))) { - $metadata['title'] = strip_tags($oEmbed['title']); + $metadata['title'] = strip_tags($oEmbed['title'] ?? ''); } - $metadata['author'] = $oEmbed['author_name']; + $metadata['author'] = $oEmbed['author_name'] ?? ''; } return $metadata;