From 1312b7c81c4a846e54b405df6fc5f1fef72efcd7 Mon Sep 17 00:00:00 2001 From: jeroen Date: Mon, 5 Sep 2022 14:43:01 +0200 Subject: [PATCH] NEW FEATURE: added version tag --- config/packages/twig.yaml | 2 ++ src/Twig/AppExtension.php | 32 +++++++++++++++++++++++++----- templates/base.html.twig | 3 +++ templates/security/login.html.twig | 3 +++ 4 files changed, 35 insertions(+), 5 deletions(-) diff --git a/config/packages/twig.yaml b/config/packages/twig.yaml index f9f4cc5..f1bf67b 100644 --- a/config/packages/twig.yaml +++ b/config/packages/twig.yaml @@ -1,5 +1,7 @@ twig: default_path: '%kernel.project_dir%/templates' + globals: + kernelProjectDir: '%kernel.project_dir%' when@test: twig: diff --git a/src/Twig/AppExtension.php b/src/Twig/AppExtension.php index c4366f9..56a4897 100644 --- a/src/Twig/AppExtension.php +++ b/src/Twig/AppExtension.php @@ -4,6 +4,7 @@ namespace App\Twig; use App\Service\Secret; use Twig\Extension\AbstractExtension; use Twig\TwigFilter; +use Twig\TwigTest; class AppExtension extends AbstractExtension { @@ -13,10 +14,19 @@ class AppExtension extends AbstractExtension new TwigFilter('interval', [$this, 'parseInterval']), new TwigFilter('parsetags', [$this, 'parseTags']), new TwigFilter('decryptsecret', [$this, 'decryptSecret']), + new TwigFilter('contents', [$this, 'getContents']), ]; } - function parseInterval(int|float $time) { + public function getTests() + { + return [ + new TwigTest('ondisk', [$this, 'onDisk']) + ]; + } + + function parseInterval(int|float $time) + { $return = ''; $days = floor($time / (60 * 60 * 24)); @@ -37,7 +47,8 @@ class AppExtension extends AbstractExtension return (!empty($return)) ? trim($return) : '0.000s'; } - function parseTags(string $text) { + function parseTags(string $text) + { $results = []; preg_match_all('/\[([A-Za-z0-9 \-]+)\]/', $text, $results); foreach ($results[0] as $key=>$result) { @@ -48,7 +59,8 @@ class AppExtension extends AbstractExtension return $text; } - private function lightOrDark ($color) { + private function lightOrDark ($color) + { $color = str_split($color, 2); foreach($color as &$value) { $value = hexdec($value); @@ -70,8 +82,18 @@ class AppExtension extends AbstractExtension } } - - function decryptSecret(string $text) { + function decryptSecret(string $text) + { return Secret::decrypt(base64_decode($text)); } + + function getContents(string $file) + { + return file_get_contents($file); + } + + public function onDisk(string $file) + { + return file_exists($file); + } } diff --git a/templates/base.html.twig b/templates/base.html.twig index 670ac1c..7401d4c 100644 --- a/templates/base.html.twig +++ b/templates/base.html.twig @@ -27,6 +27,9 @@ +
+ {% if (kernelProjectDir ~ "/version") is ondisk %}{{ (kernelProjectDir ~ "/version") | contents }}{% else %}dev-main{% endif %} +
{{ include('flashes.html.twig') }} diff --git a/templates/security/login.html.twig b/templates/security/login.html.twig index ed9945d..b76b177 100755 --- a/templates/security/login.html.twig +++ b/templates/security/login.html.twig @@ -47,6 +47,9 @@

{{ 'demomode.credentials.password' | trans }}: {{ app.request.server.get('DEMO_PASS') }}

{% endif %} +
+ {% if (kernelProjectDir ~ "/version") is ondisk %}{{ (kernelProjectDir ~ "/version") | contents }}{% else %}dev-main{% endif %} +