From d2630409ef173ddeebdf217e750de3c81ccf2d7d Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Sun, 2 Jun 2019 15:21:24 +0300 Subject: [PATCH] Added support for Twig 2.11 (1.40 compatible) --- CHANGELOG.md | 5 ++-- classes/plugin/AdminController.php | 3 ++- classes/plugin/Twig/AdminTwigExtension.php | 31 +++++++++++----------- 3 files changed, 20 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ef746ee..2e529eba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,8 +2,9 @@ ## mm/dd/2019 1. [](#new) - * Require Grav v1.7 - * Use PSR-4 for plugin classes + * Require Grav v1.7 + * Use PSR-4 for plugin classes + * Added support for Twig 2.11 # v1.9.5 ## mm/dd/2019 diff --git a/classes/plugin/AdminController.php b/classes/plugin/AdminController.php index f1621bd0..df606727 100644 --- a/classes/plugin/AdminController.php +++ b/classes/plugin/AdminController.php @@ -28,6 +28,7 @@ use PicoFeed\Parser\MalformedXmlException; use RocketTheme\Toolbox\Event\Event; use RocketTheme\Toolbox\File\File; use RocketTheme\Toolbox\ResourceLocator\UniformResourceLocator; +use Twig\Loader\FilesystemLoader; /** @@ -2019,7 +2020,7 @@ class AdminController extends AdminBaseController // Add theme template paths to Twig loader $template_paths = $this->grav['locator']->findResources('theme://templates'); - $this->grav['twig']->twig->getLoader()->addLoader(new \Twig_Loader_Filesystem($template_paths)); + $this->grav['twig']->twig->getLoader()->addLoader(new FilesystemLoader($template_paths)); $html = $page->content(); diff --git a/classes/plugin/Twig/AdminTwigExtension.php b/classes/plugin/Twig/AdminTwigExtension.php index 073aef23..1eb12219 100644 --- a/classes/plugin/Twig/AdminTwigExtension.php +++ b/classes/plugin/Twig/AdminTwigExtension.php @@ -6,17 +6,16 @@ use Grav\Common\Grav; use Grav\Common\Page\Interfaces\PageInterface; use Grav\Common\Yaml; use Grav\Common\Language\Language; +use Twig\Extension\AbstractExtension; +use Twig\TwigFilter; +use Twig\TwigFunction; -class AdminTwigExtension extends \Twig_Extension +class AdminTwigExtension extends AbstractExtension { - /** - * @var Grav - */ + /** @var Grav */ protected $grav; - /** - * @var Language $lang - */ + /** @var Language $lang */ protected $lang; public function __construct() @@ -25,22 +24,22 @@ class AdminTwigExtension extends \Twig_Extension $this->lang = $this->grav['user']->language; } - public function getFilters() + public function getFilters(): array { return [ - new \Twig_SimpleFilter('tu', [$this, 'tuFilter']), - new \Twig_SimpleFilter('toYaml', [$this, 'toYamlFilter']), - new \Twig_SimpleFilter('fromYaml', [$this, 'fromYamlFilter']), - new \Twig_SimpleFilter('adminNicetime', [$this, 'adminNicetimeFilter']), - new \Twig_SimpleFilter('nested', [$this, 'nestedFilter']), + new TwigFilter('tu', [$this, 'tuFilter']), + new TwigFilter('toYaml', [$this, 'toYamlFilter']), + new TwigFilter('fromYaml', [$this, 'fromYamlFilter']), + new TwigFilter('adminNicetime', [$this, 'adminNicetimeFilter']), + new TwigFilter('nested', [$this, 'nestedFilter']), ]; } - public function getFunctions() + public function getFunctions(): array { return [ - new \Twig_SimpleFunction('getPageUrl', [$this, 'getPageUrl'], ['needs_context' => true]), - new \Twig_SimpleFunction('clone', [$this, 'cloneFunc']), + new TwigFunction('getPageUrl', [$this, 'getPageUrl'], ['needs_context' => true]), + new TwigFunction('clone', [$this, 'cloneFunc']), ]; }