From bbfba7dc34ed7b9d74884ba780fbb2a75afd2108 Mon Sep 17 00:00:00 2001 From: Samuel Georges Date: Wed, 30 Sep 2015 05:26:00 +1000 Subject: [PATCH] Remove the use of Twig_Loader_String, added Twig::parse --- CHANGELOG.md | 3 +++ modules/system/ServiceProvider.php | 17 ++++------------- modules/system/aliases.php | 1 + modules/system/models/MailTemplate.php | 14 +++++++------- 4 files changed, 15 insertions(+), 20 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3392310bb..33e959d88 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +* **Build 300** (2015-10-xx) + - Added new helper `Twig::parse` for parsing Twig. + * **Build 298** (2015-09-24) - Added the ability to use a wildcard URL parameter in CMS pages (see CMS > Pages docs). diff --git a/modules/system/ServiceProvider.php b/modules/system/ServiceProvider.php index c0eb14170..d8913f8ef 100644 --- a/modules/system/ServiceProvider.php +++ b/modules/system/ServiceProvider.php @@ -257,10 +257,10 @@ class ServiceProvider extends ModuleServiceProvider protected function registerTwigParser() { /* - * Register basic Twig + * Register system Twig environment */ - App::singleton('twig', function ($app) { - $twig = new Twig_Environment(new TwigLoader(), ['auto_reload' => true]); + App::singleton('twig.environment', function ($app) { + $twig = new Twig_Environment(new TwigLoader, ['auto_reload' => true]); $twig->addExtension(new TwigExtension); return $twig; }); @@ -269,16 +269,7 @@ class ServiceProvider extends ModuleServiceProvider * Register .htm extension for Twig views */ App::make('view')->addExtension('htm', 'twig', function () { - return new TwigEngine(App::make('twig')); - }); - - /* - * Register Twig that will parse strings - */ - App::singleton('twig.string', function ($app) { - $twig = $app['twig']; - $twig->setLoader(new Twig_Loader_String); - return $twig; + return new TwigEngine(App::make('twig.environment')); }); } diff --git a/modules/system/aliases.php b/modules/system/aliases.php index 93920f893..d7859661f 100644 --- a/modules/system/aliases.php +++ b/modules/system/aliases.php @@ -51,6 +51,7 @@ return [ 'Str' => 'October\Rain\Support\Facades\Str', 'Markdown' => 'October\Rain\Support\Facades\Markdown', 'Yaml' => 'October\Rain\Support\Facades\Yaml', + 'Twig' => 'October\Rain\Support\Facades\Twig', 'DbDongle' => 'October\Rain\Support\Facades\DbDongle', 'Backend' => 'Backend\Facades\Backend', 'BackendMenu' => 'Backend\Facades\BackendMenu', diff --git a/modules/system/models/MailTemplate.php b/modules/system/models/MailTemplate.php index bc708ce66..b560cbfa0 100644 --- a/modules/system/models/MailTemplate.php +++ b/modules/system/models/MailTemplate.php @@ -2,6 +2,7 @@ use App; use File; +use Twig; use View; use Model; use October\Rain\Mail\MailParser; @@ -130,17 +131,16 @@ class MailTemplate extends Model } /* - * Get Twig to load from a string + * Subject */ - $twig = App::make('twig.string'); - $message->subject($twig->render($template->subject, $data)); + $message->subject(Twig::parse($template->subject, $data)); /* * HTML contents */ - $html = $twig->render($template->content_html, $data); + $html = Twig::parse($template->content_html, $data); if ($template->layout) { - $html = $twig->render($template->layout->content_html, [ + $html = Twig::parse($template->layout->content_html, [ 'content' => $html, 'css' => $template->layout->content_css ] + (array) $data); @@ -152,9 +152,9 @@ class MailTemplate extends Model * Text contents */ if (strlen($template->content_text)) { - $text = $twig->render($template->content_text, $data); + $text = Twig::parse($template->content_text, $data); if ($template->layout) { - $text = $twig->render($template->layout->content_text, [ + $text = Twig::parse($template->layout->content_text, [ 'content' => $text ] + (array) $data); }