/**
* @param array $arguments
* @param \Closure $renderChildrenClosure
* @param RenderingContextInterface $renderingContext
* @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);
}