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 @@ #if> #macro> +<#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']"]> + #if> +#function> + <#-- Output the main text of the provided article. --> -<#macro main item> +<#macro mainText item> <#if (item["./textAsset"]?size > 0)> ${item["./textAsset/content"]} #if> -#macro> \ No newline at end of file +#macro> + +<#function getMainText item> + <#if (item["./textAsset"]?size > 0)> + <#return item["./textAsset/content"]> + #if> +#function> \ 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']"]} #if> #macro> + +<#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 ''> + #if> +#function> + +<#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> + #if> + <#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 ''> + #if> + <#else> + <#return model["(/bebop:page/nav:categoryMenu[@id='${useCategoryMenu}']//nav:category[@isSelected='true'])[last()]/@title"]> + #if> + <#else> + <#return ''> + #if> + #if> + +#function> + +<#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"]} + #if> +#macro> + +<#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"]> + #if> +#function> 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"]> -#macro> \ No newline at end of file +#macro> + +<#function getGreetingItem> + <#return model["/bebop:page/nav:greetingItem/cms:item"]> +#function> \ 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 @@ #macro> -<#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} -->
+ #if>
+#function>
+
+<#function getItemLink item>
<#return item["./nav:path"]>
#function>
-<#function funImageId item>
+<#function getImageId item>
<#return item["./nav:attribute[@name='imageAttachments.image.id'][1]"]>
#function>
-<#function funImageCaption item>
+<#function getImageCaption item>
<#return item["./nav:attribute[@name='imageAttachments.image.caption'][1]"].@@text>
#function>