Additional Freemarker functions

git-svn-id: https://svn.libreccm.org/ccm/trunk@5871 8810af33-2d31-482b-a856-94f89814c4df
master
jensp 2019-03-20 18:05:16 +00:00
parent 04ef5e2740
commit cd20fe379d
4 changed files with 116 additions and 6 deletions

View File

@ -16,11 +16,25 @@
</#if> </#if>
</#macro> </#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. Output the main text of the provided article.
--> -->
<#macro main item> <#macro mainText item>
<#if (item["./textAsset"]?size > 0)> <#if (item["./textAsset"]?size > 0)>
${item["./textAsset/content"]} ${item["./textAsset/content"]}
</#if> </#if>
</#macro> </#macro>
<#function getMainText item>
<#if (item["./textAsset"]?size > 0)>
<#return item["./textAsset/content"]>
</#if>
</#function>

View File

@ -50,3 +50,75 @@
${item["./nav:attribute[@name='title']"]} ${item["./nav:attribute[@name='title']"]}
</#if> </#if>
</#macro> </#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>

View File

@ -126,3 +126,7 @@
<#nested model["/bebop:page/nav:greetingItem/cms:item"]> <#nested model["/bebop:page/nav:greetingItem/cms:item"]>
</#macro> </#macro>
<#function getGreetingItem>
<#return model["/bebop:page/nav:greetingItem/cms:item"]>
</#function>

View File

@ -28,14 +28,34 @@
</#macro> </#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"]> -->
<#-- <pre>Found simple object list ${listId}</pre>
<pre></pre> -->
<#return model["/bebop:page/nav:simpleObjectList[@id='${listId}']/nav:objectList/nav:item"]>
<#elseif (model["/bebop:page/nav:complexObjectList[@id='${listId}']/nav:objectList"]?size > 0)>
<#-- <pre>Found complex object list ${listId}</pre> -->
<#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)>
<#-- <pre>Found customizable object list ${listId}</pre> -->
<#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 []>
<#-- <pre>no item list with id ${listId}</pre> -->
</#if>
</#function>
<#function getItemLink item>
<#return item["./nav:path"]> <#return item["./nav:path"]>
</#function> </#function>
<#function funImageId item> <#function getImageId item>
<#return item["./nav:attribute[@name='imageAttachments.image.id'][1]"]> <#return item["./nav:attribute[@name='imageAttachments.image.id'][1]"]>
</#function> </#function>
<#function funImageCaption item> <#function getImageCaption item>
<#return item["./nav:attribute[@name='imageAttachments.image.caption'][1]"].@@text> <#return item["./nav:attribute[@name='imageAttachments.image.caption'][1]"].@@text>
</#function> </#function>