diff --git a/system/functions.php b/system/functions.php index df58193f..6f1d8abe 100644 --- a/system/functions.php +++ b/system/functions.php @@ -21,7 +21,6 @@ use MyAAC\News; use MyAAC\Plugins; use MyAAC\Settings; use PHPMailer\PHPMailer\PHPMailer; -use Twig\Loader\ArrayLoader as Twig_ArrayLoader; function message($message, $type, $return) { @@ -1379,17 +1378,7 @@ function getCustomPage($name, &$success): string ob_end_clean(); } else { - $oldLoader = $twig->getLoader(); - - $twig_loader_array = new Twig_ArrayLoader(array( - 'content.html' => $page['body'] - )); - - $twig->setLoader($twig_loader_array); - - $content .= $twig->render('content.html'); - - $twig->setLoader($oldLoader); + $content .= $twig->renderInline($page['body']); } } diff --git a/system/src/Twig/EnvironmentBridge.php b/system/src/Twig/EnvironmentBridge.php index 4b8423f8..6fc90a82 100644 --- a/system/src/Twig/EnvironmentBridge.php +++ b/system/src/Twig/EnvironmentBridge.php @@ -3,6 +3,7 @@ namespace MyAAC\Twig; use Twig\Environment; +use Twig\Loader\ArrayLoader as Twig_ArrayLoader; class EnvironmentBridge extends Environment { @@ -25,4 +26,21 @@ class EnvironmentBridge extends Environment return parent::render($name, $context); } + + public function renderInline($content, array $context = []): string + { + $oldLoader = $this->getLoader(); + + $twig_loader_array = new Twig_ArrayLoader(array( + 'content.html' => $content + )); + + $this->setLoader($twig_loader_array); + + $ret = $this->render('content.html', $context); + + $this->setLoader($oldLoader); + + return $ret; + } }