From cd20fe379db0d5241dd400cca72d8c43272e11ee Mon Sep 17 00:00:00 2001 From: jensp Date: Wed, 20 Mar 2019 18:05:16 +0000 Subject: [PATCH] Additional Freemarker functions git-svn-id: https://svn.libreccm.org/ccm/trunk@5871 8810af33-2d31-482b-a856-94f89814c4df --- .../ccm-cms-types-article/macros.ftl | 18 ++++- .../web/themes/freemarker/ccm-cms/macros.ftl | 72 +++++++++++++++++++ .../ccm-navigation/macros/navigation.ftl | 6 +- .../ccm-navigation/macros/objectlist.ftl | 26 ++++++- 4 files changed, 116 insertions(+), 6 deletions(-) diff --git a/ccm-cms-types-article/web/themes/freemarker/ccm-cms-types-article/macros.ftl b/ccm-cms-types-article/web/themes/freemarker/ccm-cms-types-article/macros.ftl index 079effaed..e28b811d5 100644 --- a/ccm-cms-types-article/web/themes/freemarker/ccm-cms-types-article/macros.ftl +++ b/ccm-cms-types-article/web/themes/freemarker/ccm-cms-types-article/macros.ftl @@ -16,11 +16,25 @@ +<#function getLead item> + <#if (item["./lead"]?size > 0)> + <#return item["./lead"]> + <#elseif (item["./nav:attribute[@name='lead']"]?size > 0)> + <#return item["./nav:attribute[@name='lead']"]> + + + <#-- Output the main text of the provided article. --> -<#macro main item> +<#macro mainText item> <#if (item["./textAsset"]?size > 0)> ${item["./textAsset/content"]} - \ No newline at end of file + + +<#function getMainText item> + <#if (item["./textAsset"]?size > 0)> + <#return item["./textAsset/content"]> + + \ No newline at end of file diff --git a/ccm-cms/web/themes/freemarker/ccm-cms/macros.ftl b/ccm-cms/web/themes/freemarker/ccm-cms/macros.ftl index bda077111..89784d7a4 100644 --- a/ccm-cms/web/themes/freemarker/ccm-cms/macros.ftl +++ b/ccm-cms/web/themes/freemarker/ccm-cms/macros.ftl @@ -50,3 +50,75 @@ ${item["./nav:attribute[@name='title']"]} + +<#function getItemTitle item> + <#if (item["./title"]?size > 0)> + <#return item["./title"]> + <#elseif (item["./nav:attribute[@name='title']"]?size > 0)> + <#return item["./nav:attribute[@name='title']"]> + <#else> + <#return ''> + + + +<#function getPageTitle useCategoryMenu='categoryMenu' useRootIndexItemTitle=false> + + <#if (model["/bebop:page//cms:contentPanel"]?size > 0)> + <#if (model["/bebop:page//cms:contentPanel/cms:item/type/label"].@@text == 'Glossary Item')> + <#return getLocalizedText('page.title.glossary')> + <#elseif (model["/bebop:page//cms:contentPanel/cms:item/type/label"].@@text == 'FAQ Item')> + <#return getLocalizedText('page.title.faq')> + <#else> + <#return model["/bebop:page//cms:contentPanel/cms:item/title[1]"].@@text> + + <#elseif (model["/bebop:page/bebop:title"].@@text == 'AtoZ')> + <#return getLocalizedText('layout.page.title.atoz')> + <#elseif (model["/bebop:page/bebop:title"].@@text == 'Search')> + <#return getLocalizedText('layout.page.title.search')> + <#elseif (model["/bebop:page/@application"] == 'login')> + <#return getLocalizedText('layout.page.title.login')> + <#elseif (model["/bebop:page/@id"] == 'sitemapPage')> + <#return getLocalizedText('layout.page.title.sitemap')> + <#elseif (model["/bebop:page/@application"] == 'PublicPersonalProfile' && model["/bebop:page/nav:greetingItem"]?size > 0)> + <#return model["/bebop:page/nav:greetingItem/cms:item/title"].@@text> + <#else> + <#if (model["/bebop:page/nav:categoryMenu[@id='${useCategoryMenu}']//nav:category[@isSelected='true']"]?size > 0)> + <#if useRootIndexItemTitle && model["/bebop:page/nav:categoryMenu[@id='${useCategoryMenu}']//nav:category[@isSelected='true']"]?size > 0> + <#if (model["/bebop:page//title"]?size > 0)> + <#return model["/bebop:page//title[1]"].@@text> + <#else> + <#return ''> + + <#else> + <#return model["(/bebop:page/nav:categoryMenu[@id='${useCategoryMenu}']//nav:category[@isSelected='true'])[last()]/@title"]> + + <#else> + <#return ''> + + + + + +<#macro itemSummary> + <#if (item["./nav:attribute[./@name='lead']"]?size > 0)> + ${item["./nav:attribute[./@name='lead']"]} + <#elseif (item["./nav:attribute[./@name='summary']"]?size > 0)> + ${item["./nav:attribute[./@name='summary']"]} + <#elseif (item["./lead"]?size > 0)> + ${item["./lead"]} + <#elseif (item["./summary"]?size > 0)> + ${item["./summary"]} + + + +<#function getItemSummary item> + <#if (item["./nav:attribute[./@name='lead']"]?size > 0)> + <#return item["./nav:attribute[./@name='lead']"]> + <#elseif (item["./nav:attribute[./@name='summary']"]?size > 0)> + <#return item["./nav:attribute[./@name='summary']"]> + <#elseif (item["./lead"]?size > 0)> + <#return item["./lead"]> + <#elseif (item["./summary"]?size > 0)> + <#return item["./summary"]> + + diff --git a/ccm-navigation/web/themes/freemarker/ccm-navigation/macros/navigation.ftl b/ccm-navigation/web/themes/freemarker/ccm-navigation/macros/navigation.ftl index 0d5fa1cf4..46631fbdf 100644 --- a/ccm-navigation/web/themes/freemarker/ccm-navigation/macros/navigation.ftl +++ b/ccm-navigation/web/themes/freemarker/ccm-navigation/macros/navigation.ftl @@ -125,4 +125,8 @@ <#nested model["/bebop:page/nav:greetingItem/cms:item"]> - \ No newline at end of file + + +<#function getGreetingItem> + <#return model["/bebop:page/nav:greetingItem/cms:item"]> + \ No newline at end of file diff --git a/ccm-navigation/web/themes/freemarker/ccm-navigation/macros/objectlist.ftl b/ccm-navigation/web/themes/freemarker/ccm-navigation/macros/objectlist.ftl index 6d9c003e1..aed8e5f77 100644 --- a/ccm-navigation/web/themes/freemarker/ccm-navigation/macros/objectlist.ftl +++ b/ccm-navigation/web/themes/freemarker/ccm-navigation/macros/objectlist.ftl @@ -28,14 +28,34 @@ -<#function itemLink item> +<#function getItems listId> + <#if (model["/bebop:page/nav:simpleObjectList[@id='${listId}']/nav:objectList"]?size > 0)> + <#-- <#assign items=model["/bebop:page/nav:simpleObjectList[@id='${listId}']/nav:objectList/nav:item"]> --> + <#--
Found simple object list ${listId}
+
  -->
+        <#return model["/bebop:page/nav:simpleObjectList[@id='${listId}']/nav:objectList/nav:item"]>
+    <#elseif (model["/bebop:page/nav:complexObjectList[@id='${listId}']/nav:objectList"]?size > 0)>
+        <#--  
Found complex object list ${listId}
--> + <#return model["/bebop:page/nav:complexObjectList[@id='${listId}']/nav:objectList/nav:item"]> + <#-- <#assign items=model["/bebop:page/nav:simpleObjectList[@id='${listId}']/nav:objectList/nav:item"]> --> + <#elseif (model["/bebop:page/nav:customizableObjectList[@id='${listId}']/nav:objectList"]?size > 0)> + <#--
Found customizable object list ${listId}
--> + <#return model["/bebop:page/nav:simpleObjectList[@id='${listId}']/nav:objectList/nav:item"]> + <#-- <#assign items=model["/bebop:page/nav:simpleObjectList[@id='${listId}']/nav:objectList/nav:item"]> --> + <#else> + <#return []> + <#--
no item list with id ${listId}
--> + + + +<#function getItemLink item> <#return item["./nav:path"]> -<#function funImageId item> +<#function getImageId item> <#return item["./nav:attribute[@name='imageAttachments.image.id'][1]"]> -<#function funImageCaption item> +<#function getImageCaption item> <#return item["./nav:attribute[@name='imageAttachments.image.caption'][1]"].@@text>