/** * Renders a template. * * @param string|array $template The template to render or an array of templates to try consecutively * @param array $variables The variables to pass to the template * @param Boolean $with_context Whether to pass the current context variables or not * @param Boolean $ignore_missing Whether to ignore missing templates or not * @param Boolean $sandboxed Whether to sandbox the template or not * * @return string The rendered template */ function ifwpsn_twig_include(IfwPsn_Vendor_Twig_Environment $env, $context, $template, $variables = array(), $withContext = true, $ignoreMissing = false, $sandboxed = false) { $alreadySandboxed = false; $sandbox = null; if ($withContext) { $variables = array_merge($context, $variables); } if ($isSandboxed = $sandboxed && $env->hasExtension('sandbox')) { $sandbox = $env->getExtension('sandbox'); if (!($alreadySandboxed = $sandbox->isSandboxed())) { $sandbox->enableSandbox(); } } try { return $env->resolveTemplate($template)->render($variables); } catch (IfwPsn_Vendor_Twig_Error_Loader $e) { if (!$ignoreMissing) { throw $e; } } if ($isSandboxed && !$alreadySandboxed) { $sandbox->disableSandbox(); } }