From 258d7473bc5eb82aed55b44d7d98c4cdf3b3d3f0 Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Fri, 1 Apr 2022 21:52:26 +0300 Subject: [PATCH] Added `has_env()` twig function to test if environmental variable is defined --- CHANGELOG.md | 1 + .../src/Grav/Common/Twig/Extension/GravExtension.php | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c57d40dab..6a909f3fc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ 1. [](#new) * Added `FileInterface::touch()` method * Added optional `$field` parameter to `FlexMediaTrait::deleteMediaFile()` method + * Added `has_env()` twig function to test if environmental variable is defined 2. [](#improved) * By default, add media to only pages which have been initialized in pages loop 3. [](#bugfix) diff --git a/system/src/Grav/Common/Twig/Extension/GravExtension.php b/system/src/Grav/Common/Twig/Extension/GravExtension.php index a2a76b317..b870a9221 100644 --- a/system/src/Grav/Common/Twig/Extension/GravExtension.php +++ b/system/src/Grav/Common/Twig/Extension/GravExtension.php @@ -222,6 +222,7 @@ class GravExtension extends AbstractExtension implements GlobalsInterface new TwigFunction('svg_image', [$this, 'svgImageFunction']), new TwigFunction('xss', [$this, 'xssFunc']), new TwigFunction('unique_id', [$this, 'uniqueId']), + new TwigFunction('has_env', [$this, 'hasEnv']), // Translations new TwigFunction('t', [$this, 'translate'], ['needs_environment' => true]), @@ -707,6 +708,15 @@ class GravExtension extends AbstractExtension implements GlobalsInterface return Utils::uniqueId($length, $options); } + /** + * @param $string + * @return bool + */ + public function hasEnv($string): bool + { + return is_string($string) && getenv($string) !== false; + } + /** * @param string $string * @return string