From 529b3af98aca5e2b64f2a47554b5316185012639 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Chris=20M=C3=BCller?= <typo3@krue.ml>
Date: Tue, 21 Dec 2021 16:50:17 +0100
Subject: [PATCH] [BUGFIX] Avoid undefined array key warnings in
 DatabaseRecordLinkBuilder

Resolves: #96420
Releases: main, 11.5
Change-Id: Ida1b27956bfe759062904ee9d0c8246ea73f0667
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/72763
Tested-by: core-ci <typo3@b13.com>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Benni Mack <benni@typo3.org>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Benni Mack <benni@typo3.org>
---
 .../Classes/Typolink/DatabaseRecordLinkBuilder.php     | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/typo3/sysext/frontend/Classes/Typolink/DatabaseRecordLinkBuilder.php b/typo3/sysext/frontend/Classes/Typolink/DatabaseRecordLinkBuilder.php
index 30bdb98de0dc..d4e6519c23dd 100644
--- a/typo3/sysext/frontend/Classes/Typolink/DatabaseRecordLinkBuilder.php
+++ b/typo3/sysext/frontend/Classes/Typolink/DatabaseRecordLinkBuilder.php
@@ -31,8 +31,8 @@ class DatabaseRecordLinkBuilder extends AbstractTypolinkBuilder
         $tsfe = $this->getTypoScriptFrontendController();
         $pageTsConfig = $tsfe->getPagesTSconfig();
         $configurationKey = $linkDetails['identifier'] . '.';
-        $configuration = $tsfe->tmpl->setup['config.']['recordLinks.'];
-        $linkHandlerConfiguration = $pageTsConfig['TCEMAIN.']['linkHandler.'];
+        $configuration = $tsfe->tmpl->setup['config.']['recordLinks.'] ?? [];
+        $linkHandlerConfiguration = $pageTsConfig['TCEMAIN.']['linkHandler.'] ?? [];
 
         if (!isset($configuration[$configurationKey], $linkHandlerConfiguration[$configurationKey])) {
             throw new UnableToLinkException(
@@ -45,7 +45,7 @@ class DatabaseRecordLinkBuilder extends AbstractTypolinkBuilder
         $typoScriptConfiguration = $configuration[$configurationKey]['typolink.'];
         $linkHandlerConfiguration = $linkHandlerConfiguration[$configurationKey]['configuration.'];
 
-        if ($configuration[$configurationKey]['forceLink']) {
+        if ($configuration[$configurationKey]['forceLink'] ?? false) {
             $record = $tsfe->sys_page->getRawRecord($linkHandlerConfiguration['table'], $linkDetails['uid']);
         } else {
             $record = $tsfe->sys_page->checkRecord($linkHandlerConfiguration['table'], $linkDetails['uid']);
@@ -64,9 +64,9 @@ class DatabaseRecordLinkBuilder extends AbstractTypolinkBuilder
         unset($conf['parameter.']);
 
         $typoLinkCodecService = GeneralUtility::makeInstance(TypoLinkCodecService::class);
-        $parameterFromDb = $typoLinkCodecService->decode($conf['parameter']);
+        $parameterFromDb = $typoLinkCodecService->decode($conf['parameter'] ?? '');
         unset($parameterFromDb['url']);
-        $parameterFromTypoScript = $typoLinkCodecService->decode($typoScriptConfiguration['parameter']);
+        $parameterFromTypoScript = $typoLinkCodecService->decode($typoScriptConfiguration['parameter'] ?? '');
         $parameter = array_replace_recursive($parameterFromTypoScript, array_filter($parameterFromDb));
         $typoScriptConfiguration['parameter'] = $typoLinkCodecService->encode($parameter);
 
-- 
GitLab