From 3c0720078ae2865b0ba0ea544297e6da2a3f3720 Mon Sep 17 00:00:00 2001 From: jensp Date: Thu, 7 Feb 2019 16:05:11 +0000 Subject: [PATCH] Import common macros from central locatation git-svn-id: https://svn.libreccm.org/ccm/trunk@5825 8810af33-2d31-482b-a856-94f89814c4df --- .../theming/FreeMarkerPresentationManager.java | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/ccm-pages/src/org/libreccm/theming/FreeMarkerPresentationManager.java b/ccm-pages/src/org/libreccm/theming/FreeMarkerPresentationManager.java index b929206d9..1cb82dee2 100644 --- a/ccm-pages/src/org/libreccm/theming/FreeMarkerPresentationManager.java +++ b/ccm-pages/src/org/libreccm/theming/FreeMarkerPresentationManager.java @@ -10,6 +10,9 @@ import com.arsdigita.xml.Document; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.module.jaxb.JaxbAnnotationModule; +import freemarker.cache.MultiTemplateLoader; +import freemarker.cache.TemplateLoader; +import freemarker.cache.WebappTemplateLoader; import freemarker.ext.dom.NodeModel; import freemarker.template.Configuration; import freemarker.template.Template; @@ -165,8 +168,17 @@ public class FreeMarkerPresentationManager implements PresentationManager { final Configuration configuration = new Configuration( Configuration.VERSION_2_3_28); - configuration.setServletContextForTemplateLoading(servletContext, - themePath); + final WebappTemplateLoader themeTemplateLoader + = new WebappTemplateLoader(servletContext, + themePath); + final WebappTemplateLoader macrosLoader = new WebappTemplateLoader( + servletContext, + "/themes/freemarker"); + final MultiTemplateLoader templateLoader = new MultiTemplateLoader( + new TemplateLoader[]{themeTemplateLoader, macrosLoader}); +// configuration.setServletContextForTemplateLoading(servletContext, +// themePath); + configuration.setTemplateLoader(templateLoader); configuration.setDefaultEncoding("UTF-8"); final Map data = new HashMap<>(); @@ -239,7 +251,7 @@ public class FreeMarkerPresentationManager implements PresentationManager { // .append(template.toString()) // .append("\n"); // } - } catch (IOException | TemplateException ex) { + } catch (IOException | TemplateException ex) { throw new UncheckedWrapperException(ex); }