From 4853ef71933caf22fa0c222036115abb8770c215 Mon Sep 17 00:00:00 2001
From: Benni Mack <benni@typo3.org>
Date: Thu, 23 Dec 2021 14:13:43 +0100
Subject: [PATCH] [BUGFIX] Fix PHP 8 notices in workspaces preview
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Resolves: #96430
Releases: main, 11.5
Change-Id: I8569537d90ee5dc74157db4f3e583366b82a2e27
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/72800
Reviewed-by: Simon Gilli <typo3@gilbertsoft.org>
Reviewed-by: Oliver Klee <typo3-coding@oliverklee.de>
Reviewed-by: Stefan Bürk <stefan@buerk.tech>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Benni Mack <benni@typo3.org>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Simon Gilli <typo3@gilbertsoft.org>
Tested-by: Stefan Bürk <stefan@buerk.tech>
Tested-by: Oliver Bartsch <bo@cedev.de>
Tested-by: Benni Mack <benni@typo3.org>
---
 .../workspaces/Classes/Controller/PreviewController.php   | 8 ++++----
 typo3/sysext/workspaces/Classes/Service/StagesService.php | 6 +++---
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/typo3/sysext/workspaces/Classes/Controller/PreviewController.php b/typo3/sysext/workspaces/Classes/Controller/PreviewController.php
index 08cec3d4a71b..242a770ee7fc 100644
--- a/typo3/sysext/workspaces/Classes/Controller/PreviewController.php
+++ b/typo3/sysext/workspaces/Classes/Controller/PreviewController.php
@@ -203,10 +203,10 @@ class PreviewController
             'enablePreviousStageButton' => $this->isValidStage($previousStage),
             'enableNextStageButton' => $this->isValidStage($nextStage),
             'enableDiscardStageButton' => $this->isValidStage($nextStage) || $this->isValidStage($previousStage),
-            'nextStage' => $nextStage['title'],
-            'nextStageId' => $nextStage['uid'],
-            'prevStage' => $previousStage['title'],
-            'prevStageId' => $previousStage['uid'],
+            'nextStage' => $nextStage['title'] ?? '',
+            'nextStageId' => $nextStage['uid'] ?? 0,
+            'prevStage' => $previousStage['title'] ?? '',
+            'prevStageId' => $previousStage['uid'] ?? 0,
         ]);
 
         $this->moduleTemplate->setContent($this->view->render());
diff --git a/typo3/sysext/workspaces/Classes/Service/StagesService.php b/typo3/sysext/workspaces/Classes/Service/StagesService.php
index d781bba8e7f1..f01bd855784c 100644
--- a/typo3/sysext/workspaces/Classes/Service/StagesService.php
+++ b/typo3/sysext/workspaces/Classes/Service/StagesService.php
@@ -94,7 +94,7 @@ class StagesService implements SingletonInterface
                 continue;
             }
             foreach ($items as $item) {
-                $usedStages[$item['t3ver_stage']] = true;
+                $usedStages[$item['t3ver_stage'] ?? 0] = true;
             }
         }
         foreach ($availableStagesForWS as $stage) {
@@ -105,7 +105,7 @@ class StagesService implements SingletonInterface
             }
         }
         foreach ($availableStagesForWSUser as $userWS) {
-            if ($previousStage['uid'] == $userWS['uid']) {
+            if ($previousStage && $previousStage['uid'] == $userWS['uid']) {
                 $found = true;
                 break;
             }
@@ -142,7 +142,7 @@ class StagesService implements SingletonInterface
                 continue;
             }
             foreach ($items as $item) {
-                $usedStages[$item['t3ver_stage']] = true;
+                $usedStages[$item['t3ver_stage'] ?? 0] = true;
             }
         }
         foreach ($availableStagesForWS as $stage) {
-- 
GitLab