ded6db1eefb2c00c8a6016701f35b878d093a26b
[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 /**
18 * This class is a wrapper for WebInfo controller of belog.
19 * It is registered in ext_tables.php with \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::insertModuleFunction()
20 * and called by the info extension via SCbase functionality.
21 *
22 * Extbase currently provides no way to register a "TBE_MODULES_EXT" module directly,
23 * therefore we need to bootstrap extbase on our own here to jump to the WebInfo controller.
24 */
25 class BackendLogModuleBootstrap
26 {
27 /**
28 * Dummy method, called by SCbase external object handling
29 */
30 public function init()
31 {
32 }
33
34 /**
35 * Dummy method, called by SCbase external object handling
36 */
37 public function checkExtObj()
38 {
39 }
40
41 /**
42 * Bootstrap extbase and jump to WebInfo controller
43 *
44 * @return string
45 */
46 public function main()
47 {
48 $configuration = [
49 'extensionName' => 'Belog',
50 'pluginName' => 'system_BelogLog',
51 'vendorName' => 'TYPO3\\CMS',
52 ];
53 // Yeah, this is ugly. But currently, there is no other direct way
54 // in extbase to force a specific controller in backend mode.
55 // Overwriting $_GET was the most simple solution here until extbase
56 // provides a clean way to solve this.
57 $_GET['tx_belog_system_beloglog']['controller'] = 'BackendLog';
58 $_GET['tx_belog_system_beloglog']['pageId'] = \TYPO3\CMS\Core\Utility\GeneralUtility::_GP('id');
59 $_GET['tx_belog_system_beloglog']['layout'] = 'Plain';
60 /** @var \TYPO3\CMS\Extbase\Core\Bootstrap $extbaseBootstrap */
61 $extbaseBootstrap = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Extbase\Core\Bootstrap::class);
62 return $extbaseBootstrap->run('', $configuration);
63 }
64 }