From 96a0a9c5ddc2de7a830a5dee01ff7443ab852ad9 Mon Sep 17 00:00:00 2001 From: Fabian Franz Date: Thu, 2 May 2013 02:12:45 +0200 Subject: [PATCH] Issue #1920886 by Cottser: Twig should check to see if it's rendering a 'render element' and if so call drupal_render_children() instead of drupal_render(). --- core/includes/theme.inc | 2 ++ core/themes/engines/twig/twig.engine | 5 +++++ 2 files changed, 7 insertions(+), 0 deletions(-) diff --git a/core/includes/theme.inc b/core/includes/theme.inc index 6ea8af2..dcc1b62 100644 --- a/core/includes/theme.inc +++ b/core/includes/theme.inc @@ -1033,6 +1033,8 @@ function theme($hook, $variables = array()) { } else { $variables[$info['render element']] = $element; + // Give a hint to render engines to prevent recursion. + $variables['#render_children'] = TRUE; } } diff --git a/core/themes/engines/twig/twig.engine b/core/themes/engines/twig/twig.engine index 1ba60a5..9e7c8dd 100644 --- a/core/themes/engines/twig/twig.engine +++ b/core/themes/engines/twig/twig.engine @@ -113,6 +113,11 @@ function twig_render_var($arg) { return $arg; } + // Prevent recursion by only rendering children + if (isset($arg['#render_children'])) { + return drupal_render_children($arg); + } + if (is_scalar($arg)) { return $arg; } -- 1.7.4.1