‪TYPO3CMS  11.5
FlashMessagesViewHelper.php
Go to the documentation of this file.
1 <?php
2 
3 /*
4  * This file is part of the TYPO3 CMS project.
5  *
6  * It is free software; you can redistribute it and/or modify it under
7  * the terms of the GNU General Public License, either version 2
8  * of the License, or any later version.
9  *
10  * For the full copyright and license information, please read the
11  * LICENSE.txt file that was distributed with this source code.
12  *
13  * The TYPO3 project - inspiring people to share!
14  */
15 
17 
22 use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
23 use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;
24 use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
25 
97 class ‪FlashMessagesViewHelper extends AbstractViewHelper
98 {
99  use CompileWithRenderStatic;
100 
106  protected ‪$escapeOutput = false;
107 
111  public function ‪initializeArguments()
112  {
113  $this->registerArgument('queueIdentifier', 'string', 'Flash-message queue to use');
114  $this->registerArgument('as', 'string', 'The name of the current flashMessage variable for rendering inside');
115  }
116 
131  public static function ‪renderStatic(array $arguments, \Closure $renderChildrenClosure, RenderingContextInterface $renderingContext)
132  {
133  $as = $arguments['as'];
134  $queueIdentifier = $arguments['queueIdentifier'] ?? null;
135 
136  if ($queueIdentifier === null) {
137  $extensionService = GeneralUtility::makeInstance(ExtensionService::class);
138  $pluginNamespace = $extensionService->getPluginNamespace(
139  $renderingContext->getRequest()->getControllerExtensionName(),
140  $renderingContext->getRequest()->getPluginName()
141  );
142  $queueIdentifier = 'extbase.flashmessages.' . $pluginNamespace;
143  }
144 
145  $flashMessageQueue = GeneralUtility::makeInstance(FlashMessageService::class)
146  ->getMessageQueueByIdentifier($queueIdentifier);
147 
148  $flashMessages = $flashMessageQueue->getAllMessagesAndFlush();
149  if (count($flashMessages) === 0) {
150  return '';
151  }
152 
153  if ($as === null) {
154  return GeneralUtility::makeInstance(FlashMessageRendererResolver::class)
155  ->resolve()
156  ->render($flashMessages);
157  }
158  $templateVariableContainer = $renderingContext->getVariableProvider();
159  $templateVariableContainer->add($as, $flashMessages);
160  $content = $renderChildrenClosure();
161  $templateVariableContainer->remove($as);
162 
163  return $content;
164  }
165 }
‪TYPO3\CMS\Fluid\ViewHelpers\FlashMessagesViewHelper\initializeArguments
‪initializeArguments()
Definition: FlashMessagesViewHelper.php:109
‪TYPO3\CMS\Fluid\ViewHelpers\FlashMessagesViewHelper\$escapeOutput
‪bool $escapeOutput
Definition: FlashMessagesViewHelper.php:104
‪TYPO3\CMS\Core\Messaging\FlashMessageRendererResolver
Definition: FlashMessageRendererResolver.php:33
‪TYPO3\CMS\Fluid\ViewHelpers
‪TYPO3\CMS\Fluid\ViewHelpers\FlashMessagesViewHelper
Definition: FlashMessagesViewHelper.php:98
‪TYPO3\CMS\Extbase\Service\ExtensionService
Definition: ExtensionService.php:34
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:50
‪TYPO3\CMS\Core\Messaging\FlashMessageService
Definition: FlashMessageService.php:27
‪TYPO3\CMS\Fluid\ViewHelpers\FlashMessagesViewHelper\renderStatic
‪static mixed renderStatic(array $arguments, \Closure $renderChildrenClosure, RenderingContextInterface $renderingContext)
Definition: FlashMessagesViewHelper.php:129