FluidTYPO3\Flux\ViewHelpers\FormViewHelper::renderStatic PHP Method

renderStatic() public static method

public static renderStatic ( array $arguments, Closure $renderChildrenClosure, TYPO3\CMS\Fluid\Core\Rendering\RenderingContextInterface $renderingContext ) : void
$arguments array
$renderChildrenClosure Closure
$renderingContext TYPO3\CMS\Fluid\Core\Rendering\RenderingContextInterface
return void
    public static function renderStatic(array $arguments, \Closure $renderChildrenClosure, RenderingContextInterface $renderingContext)
    {
        $viewHelperVariableContainer = $renderingContext->getViewHelperVariableContainer();
        $templateVariableContainer = $renderingContext->getTemplateVariableContainer();
        $extensionName = static::getExtensionNameFromRenderingContextOrArguments($renderingContext, $arguments);
        $formClassName = FluxPackageFactory::getPackageWithFallback($extensionName)->getImplementation(FluxPackage::IMPLEMENTATION_FORM);
        $form = call_user_func_array(array($formClassName, 'create'), array());
        $container = $form->last();
        // configure Form instance
        $form->setId($arguments['id']);
        $form->setName($arguments['id']);
        $form->setLabel($arguments['label']);
        $form->setDescription($arguments['description']);
        $form->setEnabled($arguments['enabled']);
        $form->setCompact($arguments['compact']);
        $form->setExtensionName($extensionName);
        $form->setLocalLanguageFileRelativePath($arguments['localLanguageFileRelativePath']);
        $form->setVariables((array) $arguments['variables']);
        $form->setOptions((array) $arguments['options']);
        if (FALSE === $form->hasOption(Form::OPTION_ICON)) {
            $form->setOption(Form::OPTION_ICON, $arguments['icon']);
        }
        if (FALSE === $form->hasOption(Form::OPTION_GROUP)) {
            $form->setOption(Form::OPTION_GROUP, $arguments['wizardTab']);
        }
        // rendering child nodes with Form's last sheet as active container
        $viewHelperVariableContainer->addOrUpdate(static::SCOPE, static::SCOPE_VARIABLE_FORM, $form);
        $viewHelperVariableContainer->addOrUpdate(static::SCOPE, static::SCOPE_VARIABLE_EXTENSIONNAME, $extensionName);
        $templateVariableContainer->add(static::SCOPE_VARIABLE_FORM, $form);
        static::setContainerInRenderingContext($renderingContext, $container);
        $renderChildrenClosure();
        $viewHelperVariableContainer->remove(static::SCOPE, static::SCOPE_VARIABLE_EXTENSIONNAME);
        $viewHelperVariableContainer->remove(static::SCOPE, static::SCOPE_VARIABLE_CONTAINER);
        $templateVariableContainer->remove(static::SCOPE_VARIABLE_CONTAINER);
    }