From 8a68af7e0611b9f4a3662cc6c8dab1c9319bf62c Mon Sep 17 00:00:00 2001 From: Conner Harkness Date: Tue, 2 Sep 2025 12:20:00 -0600 Subject: [PATCH] Added PHP english date string support for default values and other in-text replacements --- pages/run.php | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/pages/run.php b/pages/run.php index 499aee9..6f0e832 100644 --- a/pages/run.php +++ b/pages/run.php @@ -21,6 +21,31 @@ $strSelection = urldecode($strSelection); $strFileData = file_get_contents("{$strQueryDir}/{$strSelection}"); + // Translate occurrences of {{ Date: next monday }} into yyyy-MM-dd format: + // Can be used in string literals or default values in comments! + preg_match_all( + "/\{\{\s*?Date\:\s*?(.*)\s*?\}\}/i", + $strFileData, + $varDateReplacements); + + for ($i = 0; $i < count($varDateReplacements[0]); $i++) + { + try + { + $strMatch = $varDateReplacements[0][$i]; + $strMatchSafe = preg_quote($strMatch); + $strDateString = $varDateReplacements[1][$i]; + $strFileData = preg_replace( + "/{$strMatchSafe}/i", + date_create($strDateString)->format("Y-m-d"), + $strFileData); + } + catch (Exception $x) {} + } + + //foreach ($varReplacements as $k => $v) + // $strFileData = preg_replace("/\{\{{$k}\}\}/i", $v, $strFileData); + // Get the inputs: preg_match_all( "/declare\s+\@([A-Za-z0-9]{1,})\s+(.+)\s+=\s+\?;(\s+-- Default\:\s(.*))?/i", @@ -128,7 +153,7 @@