diff --git a/typo3/sysext/core/Classes/LinkHandling/LegacyLinkNotationConverter.php b/typo3/sysext/core/Classes/LinkHandling/LegacyLinkNotationConverter.php index 9bb4a541622acebd5b5e2ee8d12b4841c3670746..9bf76ab24e8d71957fcf3511d2b5cd3011c4c349 100644 --- a/typo3/sysext/core/Classes/LinkHandling/LegacyLinkNotationConverter.php +++ b/typo3/sysext/core/Classes/LinkHandling/LegacyLinkNotationConverter.php @@ -200,18 +200,26 @@ class LegacyLinkNotationConverter protected function getFileOrFolderObjectFromMixedIdentifier(string $mixedIdentifier): array { $result = []; - if (strpos($mixedIdentifier, '#') !== false) { - [$mixedIdentifier, $result['fragment']] = explode('#', $mixedIdentifier, 2); - } try { - $fileOrFolderObject = $this->getResourceFactory()->retrieveFileOrFolderObject($mixedIdentifier); + $fileIdentifier = $mixedIdentifier; + $fragment = null; + if (strpos($fileIdentifier, '#') !== false) { + [$fileIdentifier, $fragment] = explode('#', $fileIdentifier, 2); + } + $fileOrFolderObject = $this->getResourceFactory()->retrieveFileOrFolderObject($fileIdentifier); // Link to a folder or file if ($fileOrFolderObject instanceof File) { $result['type'] = LinkService::TYPE_FILE; $result['file'] = $fileOrFolderObject; + if ($fragment) { + $result['fragment'] = $fragment; + } } elseif ($fileOrFolderObject instanceof Folder) { $result['type'] = LinkService::TYPE_FOLDER; $result['folder'] = $fileOrFolderObject; + if ($fragment) { + $result['fragment'] = $fragment; + } } else { $result['type'] = LinkService::TYPE_UNKNOWN; $result['file'] = $mixedIdentifier;