ef4ad1f00b0cbf4e8e22abdbd8752b78e088c190
[Packages/TYPO3.CMS.git] / typo3 / sysext / extensionmanager / Classes / ViewHelpers / Be / TriggerViewHelper.php
1 <?php
2 namespace TYPO3\CMS\Extensionmanager\ViewHelpers\Be;
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\Extensionmanager\Controller\AbstractController;
18
19 /**
20 * Special view helper for the BE module of the Extension Manager. Loads JS code for triggering
21 * refresh events.
22 *
23 * = Examples =
24 *
25 * <code title="Simple">
26 * <em:be.container triggers="{triggers}" />
27 * </code>
28 * <output>
29 * Writes some JS inline code
30 * </output>
31 *
32 * @internal
33 */
34 class TriggerViewHelper extends \TYPO3\CMS\Fluid\ViewHelpers\Be\AbstractBackendViewHelper {
35
36 /**
37 * Loads some JS inline code based on a list of triggers. This is used to reload the main
38 * menu when modules are loaded/unloaded.
39 *
40 * @param array $triggers Defined triggers to be forwarded to client (e.g. refreshing backend widgets)
41 * @return string This view helper does not return any content
42 * @see \TYPO3\CMS\Backend\Template\DocumentTemplate
43 * @see \TYPO3\CMS\Core\Page\PageRenderer
44 */
45 public function render($triggers = array()) {
46 $doc = $this->getDocInstance();
47 $pageRenderer = $doc->getPageRenderer();
48 // Handle triggers
49 if (!empty($triggers[AbstractController::TRIGGER_RefreshModuleMenu])) {
50 $pageRenderer->addJsInlineCode(
51 AbstractController::TRIGGER_RefreshModuleMenu,
52 'if (top.TYPO3ModuleMenu.refreshMenu) { top.TYPO3ModuleMenu.refreshMenu(); }'
53 );
54 }
55 return '';
56 }
57
58 }