diff --git a/modules/system/ServiceProvider.php b/modules/system/ServiceProvider.php index 620ef7c2b..28815dd3c 100644 --- a/modules/system/ServiceProvider.php +++ b/modules/system/ServiceProvider.php @@ -8,6 +8,7 @@ use Backend; use BackendMenu; use BackendAuth; use Twig_Environment; +use Twig_Loader_String; use System\Classes\ErrorHandler; use System\Classes\PluginManager; use System\Classes\SettingsManager; @@ -72,7 +73,7 @@ class ServiceProvider extends ModuleServiceProvider }); /* - * Register basic twig + * Register basic Twig */ App::bindShared('twig', function($app) { $twig = new Twig_Environment(new TwigLoader(), ['auto_reload' => true]); @@ -87,6 +88,15 @@ class ServiceProvider extends ModuleServiceProvider return new TwigEngine(App::make('twig')); }); + /* + * Register Twig that will parse strings + */ + App::bindShared('twig.string', function($app) { + $twig = $app['twig']; + $twig->setLoader(new Twig_Loader_String); + return $twig; + }); + /* * Override system email with email settings */ diff --git a/modules/system/models/EmailTemplate.php b/modules/system/models/EmailTemplate.php index 4ca58a5d9..16eb2d036 100644 --- a/modules/system/models/EmailTemplate.php +++ b/modules/system/models/EmailTemplate.php @@ -100,12 +100,9 @@ class EmailTemplate extends Model $template = self::$cache[$code]; /* - * Set Twig to load from a string + * Get Twig to load from a string */ - $twig = App::make('twig'); - $oldLoader = $twig->getLoader(); - $twig->setLoader(new \Twig_Loader_String); - + $twig = App::make('twig.string'); $message->subject($twig->render($template->subject, $data)); /* @@ -133,7 +130,6 @@ class EmailTemplate extends Model $message->addPart($text, 'text/plain'); } - $twig->setLoader($oldLoader); return true; }