diff --git a/typo3/sysext/setup/Classes/Controller/SetupModuleController.php b/typo3/sysext/setup/Classes/Controller/SetupModuleController.php index 46bcf8ed7ba394bc3d051603eb15520716c06f75..c6a8eb9b49339c22d1fee38cdeab6a54796440dc 100644 --- a/typo3/sysext/setup/Classes/Controller/SetupModuleController.php +++ b/typo3/sysext/setup/Classes/Controller/SetupModuleController.php @@ -665,10 +665,19 @@ class SetupModuleController $loadModules->load($GLOBALS['TBE_MODULES']); $startModuleSelect = '<option value="">' . htmlspecialchars($this->getLanguageService()->getLL('startModule.firstInMenu')) . '</option>'; foreach ($loadModules->modules as $mainMod => $modData) { - if (!empty($modData['sub']) && is_array($modData['sub'])) { + $hasSubmodules = !empty($modData['sub']) && is_array($modData['sub']); + $isStandalone = $modData['standalone'] ?? false; + if ($hasSubmodules || $isStandalone) { $modules = ''; - foreach ($modData['sub'] as $subData) { - $modName = $subData['name']; + if (($hasSubmodules)) { + foreach ($modData['sub'] as $subData) { + $modName = $subData['name']; + $modules .= '<option value="' . htmlspecialchars($modName) . '"'; + $modules .= $this->getBackendUser()->uc['startModule'] === $modName ? ' selected="selected"' : ''; + $modules .= '>' . htmlspecialchars($this->getLanguageService()->sL($loadModules->getLabelsForModule($modName)['title'])) . '</option>'; + } + } elseif ($isStandalone) { + $modName = $modData['name']; $modules .= '<option value="' . htmlspecialchars($modName) . '"'; $modules .= $this->getBackendUser()->uc['startModule'] === $modName ? ' selected="selected"' : ''; $modules .= '>' . htmlspecialchars($this->getLanguageService()->sL($loadModules->getLabelsForModule($modName)['title'])) . '</option>';