diff --git a/CHANGELOG.md b/CHANGELOG.md index 94b6d1c94..34253f39b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ see wiki for more information: [wiki](https://github.com/thmarx/cms/wiki) # changelog +## 7.8.0 + +* **BUG** Namespaces not set when executing content pipeline [#416](https://github.com/CondationCMS/cms-server/pull/416) + ## 7.7.0 * **FEATURE** TemplateEngineFeature for scripts [#393](https://github.com/CondationCMS/cms-server/pull/393) diff --git a/cms-api/src/main/java/com/condation/cms/api/template/TemplateEngine.java b/cms-api/src/main/java/com/condation/cms/api/template/TemplateEngine.java index 8181325d4..fc07ad7bc 100644 --- a/cms-api/src/main/java/com/condation/cms/api/template/TemplateEngine.java +++ b/cms-api/src/main/java/com/condation/cms/api/template/TemplateEngine.java @@ -21,7 +21,6 @@ * . * #L% */ - import com.condation.cms.api.db.ContentNode; import com.condation.cms.api.db.cms.ReadOnlyFile; import com.condation.cms.api.request.RequestContext; @@ -36,22 +35,31 @@ * @author thmar */ public interface TemplateEngine { - + public void invalidateCache(); - void updateTheme (Theme theme); - + void updateTheme(Theme theme); + String render(final String template, final TemplateEngine.Model model) throws IOException; - + default String renderFromString(final String templateString, final TemplateEngine.Model model) throws IOException { return templateString; } - + @RequiredArgsConstructor public static class Model { + public final Map values = new HashMap<>(); public final ReadOnlyFile contentFile; public final ContentNode contentNode; public final RequestContext requestContext; - } + + public Model copy() { + var copy = new Model(this.contentFile, this.contentNode, this.requestContext); + + copy.values.putAll(this.values); + + return copy; + } + } } diff --git a/cms-content/src/main/java/com/condation/cms/content/DefaultContentRenderer.java b/cms-content/src/main/java/com/condation/cms/content/DefaultContentRenderer.java index 550c280ef..0dcdbf242 100644 --- a/cms-content/src/main/java/com/condation/cms/content/DefaultContentRenderer.java +++ b/cms-content/src/main/java/com/condation/cms/content/DefaultContentRenderer.java @@ -207,7 +207,10 @@ public String render(final ReadOnlyFile contentFile, final RequestContext contex extendModel(model, namespace); - String content = renderContent(rawContent, context, model); + var modelCopy = model.copy(); + modelCopy.values.putAll(namespace.getNamespaces()); + + String content = renderContent(rawContent, context, modelCopy); model.values.put("content", content); namespace.add("node", "content", content);