From 23a7a217db16d295b41d29c4a1807d4983764bf4 Mon Sep 17 00:00:00 2001 From: Benjamin Nussbaum Date: Mon, 6 Oct 2025 23:08:19 +0200 Subject: [PATCH] fix(#95): improve compatibilty with strftime in Liquid for date and l_date filters --- app/Models/Plugin.php | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/app/Models/Plugin.php b/app/Models/Plugin.php index 74cb5bf..d415af9 100644 --- a/app/Models/Plugin.php +++ b/app/Models/Plugin.php @@ -256,13 +256,26 @@ class Plugin extends Model */ private function convertDateFormats(string $template): string { - // Handle date filter formats: date: "format" + // Handle date filter formats: date: "format" or date: 'format' $template = preg_replace_callback( - '/date:\s*"([^"]+)"/', + '/date:\s*(["\'])([^"\']+)\1/', function ($matches): string { - $format = $matches[1]; + $quote = $matches[1]; + $format = $matches[2]; $convertedFormat = \App\Liquid\Utils\ExpressionUtils::strftimeToPhpFormat($format); - return 'date: "'.$convertedFormat.'"'; + return 'date: '.$quote.$convertedFormat.$quote; + }, + $template + ); + + // Handle l_date filter formats: l_date: "format" or l_date: 'format' + $template = preg_replace_callback( + '/l_date:\s*(["\'])([^"\']+)\1/', + function ($matches): string { + $quote = $matches[1]; + $format = $matches[2]; + $convertedFormat = \App\Liquid\Utils\ExpressionUtils::strftimeToPhpFormat($format); + return 'l_date: '.$quote.$convertedFormat.$quote; }, $template );