8a5d2af3c8ac14f1b12d1795c604019f94cb4cc6
[Packages/TYPO3.CMS.git] / typo3 / sysext / belog / Classes / Module / BackendLogModuleBootstrap.php
1 <?php
2 namespace TYPO3\CMS\Belog\Module;
3
4 /*
5 * This file is part of the TYPO3 CMS project.
6 *
7 * It is free software; you can redistribute it and/or modify it under
8 * the terms of the GNU General Public License, either version 2
9 * of the License, or any later version.
10 *
11 * For the full copyright and license information, please read the
12 * LICENSE.txt file that was distributed with this source code.
13 *
14 * The TYPO3 project - inspiring people to share!
15 */
16
17 use TYPO3\CMS\Core\Utility\GeneralUtility;
18 use TYPO3\CMS\Extbase\Core\Bootstrap;
19
20 /**
21 * This class is a wrapper for WebInfo controller of belog.
22 * It is registered in ext_tables.php with \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::insertModuleFunction()
23 * and called by the info extension via SCbase functionality.
24 *
25 * Extbase currently provides no way to register a "TBE_MODULES_EXT" module directly,
26 * therefore we need to bootstrap extbase on our own here to jump to the WebInfo controller.
27 * @internal This class is a experimental and is not considered part of the Public TYPO3 API.
28 */
29 class BackendLogModuleBootstrap
30 {
31 /**
32 * Bootstrap extbase and jump to WebInfo controller
33 *
34 * @return string
35 */
36 public function main()
37 {
38 $configuration = [
39 'extensionName' => 'Belog',
40 'pluginName' => 'system_BelogLog',
41 'vendorName' => 'TYPO3\\CMS',
42 ];
43 // Yeah, this is ugly. But currently, there is no other direct way
44 // in extbase to force a specific controller in backend mode.
45 // Overwriting $_GET was the most simple solution here until extbase
46 // provides a clean way to solve this.
47 $_GET['tx_belog_system_beloglog']['controller'] = 'BackendLog';
48 $_GET['tx_belog_system_beloglog']['pageId'] = GeneralUtility::_GP('id');
49 $_GET['tx_belog_system_beloglog']['layout'] = 'Plain';
50 $extbaseBootstrap = GeneralUtility::makeInstance(Bootstrap::class);
51 return $extbaseBootstrap->run('', $configuration);
52 }
53 }