From 38bafb35555e2f2b721b7cb4494f49bd2c41922c Mon Sep 17 00:00:00 2001 From: Thorsten Marx Date: Tue, 25 Feb 2025 11:47:36 +0100 Subject: [PATCH 1/2] use request variables in expression context --- .../condation/cms/content/shortcodes/TagParser.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/cms-content/src/main/java/com/condation/cms/content/shortcodes/TagParser.java b/cms-content/src/main/java/com/condation/cms/content/shortcodes/TagParser.java index 30d425873..e7f16aac3 100644 --- a/cms-content/src/main/java/com/condation/cms/content/shortcodes/TagParser.java +++ b/cms-content/src/main/java/com/condation/cms/content/shortcodes/TagParser.java @@ -178,13 +178,13 @@ private Parameter evaluateAttributes(Parameter rawAttributes, Map entry : rawAttributes.entrySet()) { String key = entry.getKey(); String rawValue = (String) entry.getValue(); // Rohwert als String - evaluatedAttributes.put(key, parseValue(rawValue, contextModel)); // Wert erst jetzt parsen + evaluatedAttributes.put(key, parseValue(rawValue, contextModel, requestContext)); // Wert erst jetzt parsen } return evaluatedAttributes; } // Methode zur Auswertung von Attributwerten im zweiten Schritt - private Object parseValue(String value, Map contextModel) { + private Object parseValue(String value, Map contextModel, RequestContext requestContext) { if (value.matches("\\d+")) { return Integer.valueOf(value); } else if (value.equalsIgnoreCase("true") || value.equalsIgnoreCase("false")) { @@ -192,8 +192,14 @@ private Object parseValue(String value, Map contextModel) { } else if (value.startsWith("${") && value.endsWith("}")) { String expressionString = value.substring(2, value.length() - 1); + var contextMap = new HashMap(); + contextMap.putAll(contextModel); + if (requestContext != null) { + contextMap.putAll(requestContext.getVariables()); + } + var expression = engine.createExpression(expressionString); - return expression.evaluate(new MapContext(contextModel)); + return expression.evaluate(new MapContext(contextMap)); } return value; } From 0581fb83cd9c4698a49ae937fa866eb66524b98a Mon Sep 17 00:00:00 2001 From: Thorsten Marx Date: Tue, 25 Feb 2025 11:51:00 +0100 Subject: [PATCH 2/2] update changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index bcb581a36..f63369517 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,8 @@ see wiki for more information: [wiki](https://github.com/thmarx/cms/wiki) * **FEATURE** add system module for default markdown renderer [#394](https://github.com/CondationCMS/cms-server/pull/394) * **BUG** Fix request context issues [#392](https://github.com/CondationCMS/cms-server/pull/392) * **BUG** Missing template filter (date) added [#397](https://github.com/CondationCMS/cms-server/pull/397) +* **FEATURE** Add variables to request context to share data in request scope [#403](https://github.com/CondationCMS/cms-server/pull/403) +* **FEATURE** use request variables in expression context [#404](https://github.com/CondationCMS/cms-server/pull/404) ## 7.6.3