From 1cc7a9a80d993f98d98f9452b4a9df92e91c6e60 Mon Sep 17 00:00:00 2001 From: jensp Date: Thu, 14 Feb 2019 19:02:36 +0000 Subject: [PATCH] Freemarker Macro for creating a language selector git-svn-id: https://svn.libreccm.org/ccm/trunk@5828 8810af33-2d31-482b-a856-94f89814c4df --- .../FreeMarkerPresentationManager.java | 2 +- ccm-pages/web/themes/freemarker/language.ftl | 23 +++++++++++++++++++ ccm-pages/web/themes/freemarker/macros.ftl | 4 +--- 3 files changed, 25 insertions(+), 4 deletions(-) create mode 100644 ccm-pages/web/themes/freemarker/language.ftl diff --git a/ccm-pages/src/org/libreccm/theming/FreeMarkerPresentationManager.java b/ccm-pages/src/org/libreccm/theming/FreeMarkerPresentationManager.java index 04730620d..d6fa2eb5e 100644 --- a/ccm-pages/src/org/libreccm/theming/FreeMarkerPresentationManager.java +++ b/ccm-pages/src/org/libreccm/theming/FreeMarkerPresentationManager.java @@ -187,7 +187,7 @@ public class FreeMarkerPresentationManager implements PresentationManager { final Map data = new HashMap<>(); // The XML document - data.put("ccm", NodeModel.wrap(root)); + data.put("model", NodeModel.wrap(root)); // Parameters (in XSL provided as XSL parameters) data.put("contextPath", request.getContextPath()); diff --git a/ccm-pages/web/themes/freemarker/language.ftl b/ccm-pages/web/themes/freemarker/language.ftl new file mode 100644 index 000000000..c253dd3f4 --- /dev/null +++ b/ccm-pages/web/themes/freemarker/language.ftl @@ -0,0 +1,23 @@ +<#ftl ns_prefixes={ +"bebop":"http://www.arsdigita.com/bebop/1.0", +"cms":"http://www.arsdigita.com/cms/1.0", +"nav":"http://ccm.redhat.com/navigation", +"ui": "http://www.arsdigita.com/ui/1.0"} +> + +<#macro availableLanguages> + + <#assign langs=["empty"]> + <#if (model["/bebop:page/cms:contentPanel"]?size > 0)> + <#assign langs=model["/bebop:page/cms:contentPanel/availableLanguages/language/@locale"]> + <#elseif (model["/bebop:page/nav:greetingItem"]?size > 0)> + <#assign langs=model["/bebop:page/nav:greetingItem/availableLanguages/language/@locale"]> + <#else> + <#assign langs=model["/bebop:page/ui:siteBanner/supportedLanguages/language/@locale"]> + + + <#list langs?sort as lang> + <#nested lang, lang==negotiatedLanguage> + + + diff --git a/ccm-pages/web/themes/freemarker/macros.ftl b/ccm-pages/web/themes/freemarker/macros.ftl index 51da94d91..475e36cb6 100644 --- a/ccm-pages/web/themes/freemarker/macros.ftl +++ b/ccm-pages/web/themes/freemarker/macros.ftl @@ -5,9 +5,7 @@ "ui": "http://www.arsdigita.com/ui/1.0"} > - - <#macro pageTitle> - ${ccm["//nav:categoryMenu/nav:category/@title"]} + ${model["//nav:categoryMenu/nav:category/@title"]}