|
@@ -197,6 +197,12 @@ class FormExtension extends \Twig_Extension
|
|
*/
|
|
*/
|
|
protected function render(FormView $view, $section, array $variables = array())
|
|
protected function render(FormView $view, $section, array $variables = array())
|
|
{
|
|
{
|
|
|
|
+ $mainTemplate = in_array($section, array('widget', 'row'));
|
|
|
|
+ if ($mainTemplate && $view->isRendered()) {
|
|
|
|
+
|
|
|
|
+ return '';
|
|
|
|
+ }
|
|
|
|
+
|
|
$templates = $this->getTemplates($view);
|
|
$templates = $this->getTemplates($view);
|
|
$blocks = $view->get('types');
|
|
$blocks = $view->get('types');
|
|
array_unshift($blocks, '_'.$view->get('id'));
|
|
array_unshift($blocks, '_'.$view->get('id'));
|
|
@@ -205,9 +211,6 @@ class FormExtension extends \Twig_Extension
|
|
$block = $block.'_'.$section;
|
|
$block = $block.'_'.$section;
|
|
|
|
|
|
if (isset($templates[$block])) {
|
|
if (isset($templates[$block])) {
|
|
- if ('widget' === $section || 'row' === $section) {
|
|
|
|
- $view->setRendered();
|
|
|
|
- }
|
|
|
|
|
|
|
|
$this->varStack[$view] = array_replace(
|
|
$this->varStack[$view] = array_replace(
|
|
$view->all(),
|
|
$view->all(),
|
|
@@ -217,6 +220,10 @@ class FormExtension extends \Twig_Extension
|
|
|
|
|
|
$html = $templates[$block]->renderBlock($block, $this->varStack[$view]);
|
|
$html = $templates[$block]->renderBlock($block, $this->varStack[$view]);
|
|
|
|
|
|
|
|
+ if ($mainTemplate) {
|
|
|
|
+ $view->setRendered();
|
|
|
|
+ }
|
|
|
|
+
|
|
unset($this->varStack[$view]);
|
|
unset($this->varStack[$view]);
|
|
|
|
|
|
return $html;
|
|
return $html;
|