17 use Psr\Http\Message\ResponseInterface;
22 use TYPO3\CMS\Core\Package\PackageManager;
25 use TYPO3Fluid\Fluid\View\ViewInterface;
54 $this->moduleTemplate = GeneralUtility::makeInstance(ModuleTemplate::class);
58 foreach (
$GLOBALS[
'TYPO3_CONF_VARS'][
'SC_OPTIONS'][
't3lib/class.t3lib_befunc.php'][
'displayWarningMessages'] ?? [] as $className) {
59 $hookObj = GeneralUtility::makeInstance($className);
60 if (method_exists($hookObj,
'displayWarningMessages_postProcess')) {
61 $hookObj->displayWarningMessages_postProcess($warnings);
65 $this->view->assignMultiple([
66 'copyrightYear' => TYPO3_copyright_year,
67 'donationUrl' => TYPO3_URL_DONATE,
68 'currentVersion' => TYPO3_version,
71 'warnings' => $warnings,
75 $this->moduleTemplate->setContent($this->view->render());
76 return new HtmlResponse($this->moduleTemplate->renderContent());
87 $loadedModules = GeneralUtility::makeInstance(ModuleLoader::class);
88 $loadedModules->observeWorkspaces =
true;
89 $loadedModules->load(
$GLOBALS[
'TBE_MODULES']);
90 $mainModulesData = [];
91 foreach ($loadedModules->modules as $moduleName => $moduleInfo) {
92 $moduleLabels = $loadedModules->getLabelsForModule($moduleName);
94 'name' => $moduleName,
95 'label' => $moduleLabels[
'title']
97 if (is_array($moduleInfo[
'sub']) && !empty($moduleInfo[
'sub'])) {
98 $mainModuleData[
'subModules'] = $this->
getSubModuleData($loadedModules, $moduleName);
100 $mainModulesData[] = $mainModuleData;
102 return $mainModulesData;
114 if (empty($loadedModules->modules[$moduleName][
'sub'])) {
118 $subModulesData = [];
119 foreach ($loadedModules->modules[$moduleName][
'sub'] as $subModuleName => $subModuleInfo) {
122 $subModuleData[
'name'] = $subModuleName;
123 $subModuleData[
'icon'] = $subModuleInfo[
'icon'] ??
null;
124 $subModuleData[
'iconIdentifier'] = $subModuleInfo[
'iconIdentifier'] ??
null;
125 $subModuleData[
'label'] = $moduleLabels[
'title'] ??
null;
126 $subModuleData[
'shortDescription'] = $moduleLabels[
'shortdescription'] ??
null;
127 $subModuleData[
'longDescription'] = $moduleLabels[
'description'] ??
null;
128 $subModulesData[] = $subModuleData;
130 return $subModulesData;
141 $packageManager = GeneralUtility::makeInstance(PackageManager::class);
142 foreach ($packageManager->getActivePackages() as $package) {
144 if ($package->getValueFromComposerManifest(
'type') !==
'typo3-cms-extension') {
148 'key' => $package->getPackageKey(),
149 'title' => $package->getPackageMetaData()->getDescription(),
150 'authors' => $package->getValueFromComposerManifest(
'authors')
163 $this->view = GeneralUtility::makeInstance(StandaloneView::class);
164 $this->view->setTemplate($templateName);
165 $this->view->setTemplateRootPaths([
'EXT:about/Resources/Private/Templates/About']);
166 $this->view->setPartialRootPaths([
'EXT:about/Resources/Private/Partials']);
167 $this->view->setLayoutRootPaths([
'EXT:about/Resources/Private/Layouts']);