2 declare(strict_types = 1);
24 use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
25 use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;
26 use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
38 use CompileWithRenderStatic;
52 $this->registerArgument(
'renderable', RootRenderableInterface::class,
'A RenderableInterface instance',
true);
62 public static function renderStatic(array $arguments, \Closure $renderChildrenClosure, RenderingContextInterface $renderingContext)
66 $formRuntime = $renderingContext
67 ->getViewHelperVariableContainer()
68 ->get(self::class,
'formRuntime');
70 $renderable = $arguments[
'renderable'];
72 foreach (
$GLOBALS[
'TYPO3_CONF_VARS'][
'SC_OPTIONS'][
'ext/form'][
'beforeRendering'] ?? [] as $className) {
73 $hookObj = GeneralUtility::makeInstance($className);
74 if (method_exists($hookObj,
'beforeRendering')) {
75 $hookObj->beforeRendering(
85 $content = $renderChildrenClosure();
89 if (!empty($content)) {
90 $renderingOptions = $formRuntime->getRenderingOptions();
91 if (isset($renderingOptions[
'previewMode']) && $renderingOptions[
'previewMode'] ===
true) {
92 $path = $renderable->getIdentifier();
94 while ($renderable = $renderable->getParentRenderable()) {
95 $path = $renderable->getIdentifier() .
'/' . $path;
98 $content =
'<span data-element-identifier-path="' . $path .
'">' . $content .
'</span>';