From 4ab0dc2246326772231bfc44f946b1313275bd07 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Christian=20E=C3=9Fl?= <indy.essl@gmail.com>
Date: Mon, 6 Mar 2023 09:11:52 +0100
Subject: [PATCH] [BUGFIX] Fix exception in view module for missing site
 configuration

When opening a page in the view module, that belongs to a page
tree with no valid site configuration, an exception was thrown,
because the ModuleData clean-method was expecting at least one
item in the language array.

Resolves: #100092
Releases: main
Change-Id: I60ae316e29ec87d62ba8728103283bbe0778f0c8
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/78032
Reviewed-by: Markus Klein <markus.klein@typo3.org>
Tested-by: Markus Klein <markus.klein@typo3.org>
Tested-by: Oliver Bartsch <bo@cedev.de>
Tested-by: core-ci <typo3@b13.com>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
---
 .../viewpage/Classes/Controller/ViewModuleController.php       | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/typo3/sysext/viewpage/Classes/Controller/ViewModuleController.php b/typo3/sysext/viewpage/Classes/Controller/ViewModuleController.php
index 6b569b7a0fbb..fa44eee9f94d 100644
--- a/typo3/sysext/viewpage/Classes/Controller/ViewModuleController.php
+++ b/typo3/sysext/viewpage/Classes/Controller/ViewModuleController.php
@@ -81,7 +81,8 @@ class ViewModuleController
             return $view->renderResponse('Empty');
         }
 
-        if ($moduleData->clean('language', array_keys($this->getPreviewLanguages($pageId)))) {
+        $previewLanguages = $this->getPreviewLanguages($pageId);
+        if ($previewLanguages !== [] && $moduleData->clean('language', array_keys($previewLanguages))) {
             $this->getBackendUser()->pushModuleData($moduleData->getModuleIdentifier(), $moduleData->toArray());
         }
         $languageId = (int)$moduleData->get('language');
-- 
GitLab