Bugfix: When rendering blocks of other templates, don't pass the local blocks array.

This commit is contained in:
Alexander M. Turek
2016-11-18 18:16:19 +01:00
parent a1eb0f5601
commit c04d077e4f
+20 -6
View File
@@ -50,17 +50,17 @@ class Twig_Node_Expression_BlockReference extends Twig_Node_Expression
$this
->compileTemplateCall($compiler)
->raw('->displayBlock(')
->subcompile($this->getNode('name'))
->raw(", \$context, \$blocks);\n")
->raw('->displayBlock')
;
$this
->compileBlockArguments($compiler)
->raw(";\n");
} else {
$this
->compileTemplateCall($compiler)
->raw('->renderBlock(')
->subcompile($this->getNode('name'))
->raw(', $context, $blocks)')
->raw('->renderBlock')
;
$this->compileBlockArguments($compiler);
}
}
}
@@ -81,4 +81,18 @@ class Twig_Node_Expression_BlockReference extends Twig_Node_Expression
->raw(')')
;
}
private function compileBlockArguments(Twig_Compiler $compiler)
{
$compiler
->raw('(')
->subcompile($this->getNode('name'))
->raw(', $context');
if (!$this->hasNode('template')) {
$compiler->raw(', $blocks');
}
return $compiler->raw(')');
}
}