[TASK] Use BE Routing / PSR-7 instead of BackendUtility::getModuleUrl
[Packages/TYPO3.CMS.git] / typo3 / sysext / documentation / Classes / Service / JavaScriptService.php
1 <?php
2 namespace TYPO3\CMS\Documentation\Service;
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 use TYPO3\CMS\Core\Authentication\BackendUserAuthentication;
17 use TYPO3\CMS\Core\Page\PageRenderer;
18 use TYPO3\CMS\Core\Utility\GeneralUtility;
19
20 /**
21 * JavaScript Service adding JS code to each backend page
22 */
23 class JavaScriptService
24 {
25 /**
26 * Include the JS for the Context Sensitive Help
27 *
28 * @param string $title the title of the page
29 * @param \TYPO3\CMS\Backend\Template\DocumentTemplate $documentTemplateObject
30 */
31 public function addJavaScript($title, $documentTemplateObject)
32 {
33 if (TYPO3_MODE !== 'BE') {
34 return;
35 }
36 $beUser = $this->getBeUser();
37 if ($beUser && !empty($beUser->user)) {
38 /** @var \TYPO3\CMS\Backend\Routing\UriBuilder $uriBuilder */
39 $uriBuilder = GeneralUtility::makeInstance(\TYPO3\CMS\Backend\Routing\UriBuilder::class);
40 $pageRenderer = GeneralUtility::makeInstance(PageRenderer::class);
41 $pageRenderer->loadRequireJsModule('TYPO3/CMS/Backend/ContextHelp');
42 $pageRenderer->addInlineSetting('ContextHelp', 'moduleUrl', (string)$uriBuilder->buildUriFromRoute('help_DocumentationCshmanual', [
43 'tx_documentation_help_documentationcshmanual' => [
44 'controller' => 'Help',
45 'action' => 'detail'
46 ]
47 ]));
48 }
49 }
50
51 /**
52 * @return BackendUserAuthentication
53 */
54 protected function getBeUser()
55 {
56 return isset($GLOBALS['BE_USER']) ? $GLOBALS['BE_USER'] : null;
57 }
58 }