From 8a9a75c4e16f0de4e0acc460907ff46dd4f7b3d7 Mon Sep 17 00:00:00 2001 From: theLine Date: Thu, 23 Feb 2023 11:01:31 +0100 Subject: [PATCH] [BUGFIX] Fix PHP warnings for undefined array key --- Classes/Mvc/RequestBuilder.php | 6 +++++- Classes/Uri/TyposcriptRenderingUri.php | 16 ++++++++++------ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/Classes/Mvc/RequestBuilder.php b/Classes/Mvc/RequestBuilder.php index 15adb66..cefec75 100644 --- a/Classes/Mvc/RequestBuilder.php +++ b/Classes/Mvc/RequestBuilder.php @@ -27,7 +27,11 @@ class RequestBuilder */ public function build($rawRequestArgument): Request { - if (empty($rawRequestArgument['context']) || !is_string($rawRequestArgument['context'])) { + if ( + ! array_key_exists('context', $rawRequestArgument) + || empty($rawRequestArgument['context']) + || !is_string($rawRequestArgument['context']) + ) { throw new Exception('tx_typoscriptrendering|context must not be empty and must be of type string!', 1403793452); } $rawRequest = @json_decode($rawRequestArgument['context'], true); diff --git a/Classes/Uri/TyposcriptRenderingUri.php b/Classes/Uri/TyposcriptRenderingUri.php index 9db1def..ef49c6e 100644 --- a/Classes/Uri/TyposcriptRenderingUri.php +++ b/Classes/Uri/TyposcriptRenderingUri.php @@ -55,7 +55,7 @@ private function parseViewHelperContext(ViewHelperContext $viewHelperContext): v $pluginName = $arguments['pluginName'] ?? null; $extensionName = $arguments['extensionName'] ?? null; $contextRecord = $arguments['contextRecord']; - $additionalParams = $arguments['additionalParams']; + $additionalParams = $arguments['additionalParams'] ?? []; $renderingPath = $arguments['typoscriptObjectPath'] ?? null; if ($pluginName === null) { @@ -95,8 +95,10 @@ private function parseViewHelperContext(ViewHelperContext $viewHelperContext): v ->setAddQueryString($arguments['addQueryString'] ?? false) ->setAddQueryStringMethod('GET') ->setArgumentsToBeExcludedFromQueryString($arguments['argumentsToBeExcludedFromQueryString'] ?? []); - if (MathUtility::canBeInterpretedAsInteger($arguments['pageUid'])) { - $uriBuilder->setTargetPageUid((int)$arguments['pageUid']); + + $targetPageUid = $arguments['pageUid'] ?? null; + if (MathUtility::canBeInterpretedAsInteger($targetPageUid)) { + $uriBuilder->setTargetPageUid((int)$targetPageUid); } $this->parseUri( @@ -124,7 +126,7 @@ private function parseWidgetContext(ViewHelperContext $viewHelperContext): void $pluginName = $arguments['pluginName'] ?? null; $extensionName = $arguments['extensionName'] ?? null; $contextRecord = $arguments['contextRecord']; - $additionalParams = $arguments['additionalParams']; + $additionalParams = $arguments['additionalParams'] ?? []; $renderingPath = $arguments['typoscriptObjectPath'] ?? null; if ($pluginName === null) { @@ -167,8 +169,10 @@ private function parseWidgetContext(ViewHelperContext $viewHelperContext): void ->setAddQueryString(true) ->setAddQueryStringMethod('GET') ->setArgumentsToBeExcludedFromQueryString($arguments['argumentsToBeExcludedFromQueryString'] ?? []); - if (MathUtility::canBeInterpretedAsInteger($arguments['pageUid'])) { - $uriBuilder->setTargetPageUid((int)$arguments['pageUid']); + + $targetPageUid = $arguments['pageUid'] ?? null; + if (MathUtility::canBeInterpretedAsInteger($targetPageUid)) { + $uriBuilder->setTargetPageUid((int)$targetPageUid); } $uri = $uriBuilder->build();