* .... * * * fixed flexform data for extbase controller * * * @api */ class FixFlexformForExtbaseViewHelper extends AbstractViewHelper { use CompileWithRenderStatic; /** * @var boolean */ protected $escapeOutput = false; public function initializeArguments(): void { parent::initializeArguments(); $this->registerArgument('data', 'array', 'The data array of content element', true); } /** * @param array $arguments * @param \Closure $renderChildrenClosure * @param RenderingContextInterface $renderingContext * * @return array */ public static function renderStatic( array $arguments, \Closure $renderChildrenClosure, RenderingContextInterface $renderingContext ) { $templateVariableContainer = $renderingContext->getVariableProvider(); /** @var FlexFormTools $flexFormTools */ $flexFormTools = GeneralUtility::makeInstance(FlexFormTools::class); $data = $arguments['data']; if (is_array($data['pi_flexform'])) { $data['pi_flexform'] = $flexFormTools->flexArray2Xml($data['pi_flexform']); } $templateVariableContainer->add('data', $data); $output = $renderChildrenClosure(); $templateVariableContainer->remove('data'); return $output; } }