FluidTYPO3\Flux\ViewHelpers\Field\CustomViewHelper::buildClosure PHP Method

buildClosure() protected static method

protected static buildClosure ( TYPO3\CMS\Fluid\Core\Rendering\RenderingContextInterface $renderingContext, array $arguments, Closure $renderChildrenClosure ) : Closure
$renderingContext TYPO3\CMS\Fluid\Core\Rendering\RenderingContextInterface
$arguments array
$renderChildrenClosure Closure
return Closure
    protected static function buildClosure(RenderingContextInterface $renderingContext, array $arguments, \Closure $renderChildrenClosure)
    {
        $container = $renderingContext->getTemplateVariableContainer();
        $closure = function ($parameters) use($container, $renderingContext, $renderChildrenClosure) {
            $backupParameters = NULL;
            $backupParameters = NULL;
            if ($container->exists('parameters') === TRUE) {
                $backupParameters = $container->get('parameters');
                $container->remove('parameters');
            }
            $container->add('parameters', $parameters);
            $content = $renderChildrenClosure();
            $container->remove('parameters');
            if (NULL !== $backupParameters) {
                $container->add('parameters', $backupParameters);
            }
            return $content;
        };
        return $closure;
    }