diff --git a/typo3/sysext/backend/Classes/Controller/BackendController.php b/typo3/sysext/backend/Classes/Controller/BackendController.php index 7b882bc981ada8953796d43aeb7abc1b1e3849dd..357e64e39e333298c949094e0bb88c488eae5026 100644 --- a/typo3/sysext/backend/Classes/Controller/BackendController.php +++ b/typo3/sysext/backend/Classes/Controller/BackendController.php @@ -93,6 +93,11 @@ class BackendController */ protected $moduleStorage; + /** + * @var ModuleLoader + */ + protected $moduleLoader; + /** * Constructor */ @@ -104,6 +109,10 @@ class BackendController $this->uriBuilder = GeneralUtility::makeInstance(UriBuilder::class); $this->typo3Version = GeneralUtility::makeInstance(Typo3Version::class); $this->pageRenderer = GeneralUtility::makeInstance(PageRenderer::class); + $this->moduleLoader = GeneralUtility::makeInstance(ModuleLoader::class); + $this->moduleLoader->observeWorkspaces = true; + $this->moduleLoader->load($GLOBALS['TBE_MODULES']); + // Add default BE javascript $this->pageRenderer->addJsFile('EXT:backend/Resources/Public/JavaScript/md5.js'); $this->pageRenderer->addJsFile('EXT:backend/Resources/Public/JavaScript/backend.js'); @@ -451,7 +460,7 @@ class BackendController $startModule = $beUser->uc['startModuleOnFirstLogin']; unset($beUser->uc['startModuleOnFirstLogin']); $beUser->writeUC(); - } elseif ($beUser->uc['startModule']) { + } elseif ($this->moduleLoader->checkMod($beUser->uc['startModule']) !== 'notFound') { $startModule = $beUser->uc['startModule']; } else { $startModule = $this->determineFirstAvailableBackendModule(); @@ -481,11 +490,7 @@ class BackendController protected function determineFirstAvailableBackendModule(): string { - $loadModules = GeneralUtility::makeInstance(ModuleLoader::class); - $loadModules->observeWorkspaces = true; - $loadModules->load($GLOBALS['TBE_MODULES']); - - foreach ($loadModules->modules as $mainMod => $modData) { + foreach ($this->moduleLoader->modules as $mainMod => $modData) { $hasSubmodules = !empty($modData['sub']) && is_array($modData['sub']); $isStandalone = $modData['standalone'] ?? false; if ($isStandalone) { diff --git a/typo3/sysext/backend/Classes/Module/ModuleLoader.php b/typo3/sysext/backend/Classes/Module/ModuleLoader.php index 6bea2e21fda07f1664bb50385c664a300827f318..a5eb2336f70c0a9ab08c1a33bbfedd0074a2a3ff 100644 --- a/typo3/sysext/backend/Classes/Module/ModuleLoader.php +++ b/typo3/sysext/backend/Classes/Module/ModuleLoader.php @@ -226,7 +226,7 @@ class ModuleLoader } // Add some default configuration - if (!isset($moduleSetupInformation['configuration']['inheritNavigationComponentFromMainModule'])) { + if ($moduleSetupInformation['configuration'] !== [] && !isset($moduleSetupInformation['configuration']['inheritNavigationComponentFromMainModule'])) { $moduleSetupInformation['configuration']['inheritNavigationComponentFromMainModule'] = true; }