2 declare(strict_types = 1);
20 use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
21 use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;
22 use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
23 use TYPO3Fluid\Fluid\View\Exception;
47 use CompileWithRenderStatic;
56 \Closure $renderChildrenClosure,
57 RenderingContextInterface $renderingContext
59 $viewHelperVariableContainer = $renderingContext->getViewHelperVariableContainer();
60 if ($viewHelperVariableContainer->exists(self::class, ModuleTemplate::class)) {
61 throw new Exception(
'ModuleLayoutViewHelper can only be used once per module.', 1483292643);
64 $moduleTemplate = GeneralUtility::makeInstance(ModuleTemplate::class);
65 $moduleTemplate->setFlashMessageQueue($renderingContext->getControllerContext()->getFlashMessageQueue());
67 $viewHelperVariableContainer->add(self::class, ModuleTemplate::class, $moduleTemplate);
68 $moduleTemplate->setContent($renderChildrenClosure());
69 $viewHelperVariableContainer->remove(self::class, ModuleTemplate::class);
71 return $moduleTemplate->renderContent();