From 469ab56b64ba98d64cbed6b6805c2c5de50bf419 Mon Sep 17 00:00:00 2001 From: Flavio Copes Date: Fri, 4 Sep 2015 14:59:41 +0200 Subject: [PATCH] Add a string Twig function that renders arrays as json_encoded strings, and just outputs other values (used by the form plugin) --- system/src/Grav/Common/Twig/TwigExtension.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/system/src/Grav/Common/Twig/TwigExtension.php b/system/src/Grav/Common/Twig/TwigExtension.php index fd6653340..57c646089 100644 --- a/system/src/Grav/Common/Twig/TwigExtension.php +++ b/system/src/Grav/Common/Twig/TwigExtension.php @@ -84,6 +84,7 @@ class TwigExtension extends \Twig_Extension new \Twig_SimpleFunction('gist', [$this, 'gistFunc']), new \Twig_simpleFunction('random_string', [$this, 'randomStringFunc']), new \Twig_SimpleFunction('array', [$this, 'arrayFunc']), + new \Twig_SimpleFunction('string', [$this, 'stringFunc']), new \Twig_simpleFunction('t', [$this, 'translate']), new \Twig_simpleFunction('ta', [$this, 'translateArray']) ]; @@ -414,7 +415,7 @@ class TwigExtension extends \Twig_Extension public function translate() { - return $this->grav['language']->translate(func_get_args()); + return $this->grav['language']->translate(func_get_args()); } public function translateArray($key, $index, $lang = null) @@ -531,6 +532,15 @@ class TwigExtension extends \Twig_Extension return (array) $value; } + public function stringFunc($value) + { + if (is_array($value)) { //format the array as a string + return json_encode($value); + } else { + return $value; + } + } + public function translateFunc() { return $this->grav['language']->translate(func_get_args());