Macros for Freemarker

git-svn-id: https://svn.libreccm.org/ccm/trunk@5869 8810af33-2d31-482b-a856-94f89814c4df
master
jensp 2019-03-18 19:32:21 +00:00
parent 63037eb2e2
commit 04ef5e2740
3 changed files with 254 additions and 50 deletions

View File

@ -89,70 +89,198 @@
</#if>
</#macro>
<#macro endDate item>
<#if (item["./endDate"]?size > 0)>
${item["./endDate"]}
<#elseif (item["./nav:attribute[@name='endDate']"]?size > 0)>
${item["./nav:attribute[@name='endDate']"]}
<#macro startDate item>
<#if (item["./startDate"]?size > 0)>
${item["./startDate"]}
<#elseif (item["./nav:attribute[@name='startDate']"]?size > 0)>
${item["./nav:attribute[@name='startDate']"]}
</#if>
</#macro>
<#macro endDateYear item>
<#if (item["./endDate"]?size > 0)>
${item["./endDate/@year"]}
<#elseif (item["./nav:attribute[@name='endDate']"]?size > 0)>
${item["./nav:attribute[@name='endDate']/@year"]}
<#macro startDateYear item>
<#if (item["./startDate"]?size > 0)>
${item["./startDate/@year"]}
<#elseif (item["./nav:attribute[@name='startDate']"]?size > 0)>
${item["./nav:attribute[@name='startDate']/@year"]}
</#if>
</#macro>
<#macro endDateMonth item>
<#if (item["./endDate"]?size > 0)>
${item["./endDate/@month"]}
<#elseif (item["./nav:attribute[@name='endDate']"]?size > 0)>
${item["./nav:attribute[@name='endDate']/@month"]}
<#macro startDateMonth item>
<#if (item["./startDate"]?size > 0)>
${item["./startDate/@month"]}
<#elseif (item["./nav:attribute[@name='startDate']"]?size > 0)>
${item["./nav:attribute[@name='startDate']/@month"]}
</#if>
</#macro>
<#macro endDateDay item>
<#if (item["./endDate"]?size > 0)>
${item["./endDate/@day"]}
<#elseif (item["./nav:attribute[@name='endDate']"]?size > 0)>
${item["./nav:attribute[@name='endDate']/@day"]}
<#macro startDateDay item>
<#if (item["./startDate"]?size > 0)>
${item["./startDate/@day"]}
<#elseif (item["./nav:attribute[@name='startDate']"]?size > 0)>
${item["./nav:attribute[@name='startDate']/@day"]}
</#if>
</#macro>
<#macro endDateDayNameShort item>
<#if (item["./endDate"]?size > 0)>
${item["./endDate/@dayNameShort"]}
<#elseif (item["./nav:attribute[@name='endDate']"]?size > 0)>
${item["./nav:attribute[@name='endDate']/@dayNameShort"]}
<#macro startDateDayNameShort item>
<#if (item["./startDate"]?size > 0)>
${item["./startDate/@dayNameShort"]}
<#elseif (item["./nav:attribute[@name='startDate']"]?size > 0)>
${item["./nav:attribute[@name='startDate']/@dayNameShort"]}
</#if>
</#macro>
<#macro endDateHour item>
<#if (item["./endDate"]?size > 0)>
${item["./endDate/@hour"]}
<#elseif (item["./nav:attribute[@name='endDate']"]?size > 0)>
${item["./nav:attribute[@name='endDate']/@hour"]}
<#macro startDateHour item>
<#if (item["./startDate"]?size > 0)>
${item["./startDate/@hour"]}
<#elseif (item["./nav:attribute[@name='startDate']"]?size > 0)>
${item["./nav:attribute[@name='startDate']/@hour"]}
</#if>
</#macro>
<#macro endDateMinute item>
<#if (item["./endDate"]?size > 0)>
${item["./endDate/@minute"]}
<#elseif (item["./nav:attribute[@name='endDate']"]?size > 0)>
${item["./nav:attribute[@name='endDate']/@minute"]}
<#macro startDateMinute item>
<#if (item["./startDate"]?size > 0)>
${item["./startDate/@minute"]}
<#elseif (item["./nav:attribute[@name='startDate']"]?size > 0)>
${item["./nav:attribute[@name='startDate']/@minute"]}
</#if>
</#macro>
<#macro endDateSecond item>
<#if (item["./endDate"]?size > 0)>
${item["./endDate/@second"]}
<#elseif (item["./nav:attribute[@name='endDate']"]?size > 0)>
${item["./nav:attribute[@name='endDate']/@second"]}
<#macro startDateSecond item>
<#if (item["./startDate"]?size > 0)>
${item["./startDate/@second"]}
<#elseif (item["./nav:attribute[@name='startDate']"]?size > 0)>
${item["./nav:attribute[@name='startDate']/@second"]}
</#if>
</#macro>
<#function funEndDate item>
<#if (item["./endDate"]?size > 0)>
<#return item["./endDate"]>
<#elseif (item["./nav:attribute[@name='endDate']"]?size > 0)>
<#return item["./nav:attribute[@name='endDate']"]>
</#if>
</#function>
<#function funEndDateYear item>
<#if (item["./endDate"]?size > 0)>
<#return item["./endDate/@year"]>
<#elseif (item["./nav:attribute[@name='endDate']"]?size > 0)>
<#return item["./nav:attribute[@name='endDate']/@year"]>
</#if>
</#function>
<#function funEndDateMonth item>
<#if (item["./endDate"]?size > 0)>
<#return item["./endDate/@month"]>
<#elseif (item["./nav:attribute[@name='endDate']"]?size > 0)>
<#return item["./nav:attribute[@name='endDate']/@month"]>
</#if>
</#function>
<#function funEndDateDay item>
<#if (item["./endDate"]?size > 0)>
<#return item["./endDate/@day"]>
<#elseif (item["./nav:attribute[@name='endDate']"]?size > 0)>
<#return item["./nav:attribute[@name='endDate']/@day"]>
</#if>
</#function>
<#function funEndDateDayNameShort item>
<#if (item["./endDate"]?size > 0)>
<#return item["./endDate/@dayNameShort"]>
<#elseif (item["./nav:attribute[@name='endDate']"]?size > 0)>
<#return item["./nav:attribute[@name='endDate']/@dayNameShort"]>
</#if>
</#function>
<#function funEndDateHour item>
<#if (item["./endDate"]?size > 0)>
<#return item["./endDate/@hour"]>
<#elseif (item["./nav:attribute[@name='endDate']"]?size > 0)>
<#return item["./nav:attribute[@name='endDate']/@hour"]>
</#if>
</#function>
<#function funEndDateMinute item>
<#if (item["./endDate"]?size > 0)>
<#return item["./endDate/@minute"]>
<#elseif (item["./nav:attribute[@name='endDate']"]?size > 0)>
<#return item["./nav:attribute[@name='endDate']/@minute"]>
</#if>
</#function>
<#function funEndDateSecond item>
<#if (item["./endDate"]?size > 0)>
<#return item["./endDate/@second"]>
<#elseif (item["./nav:attribute[@name='endDate']"]?size > 0)>
<#return item["./nav:attribute[@name='endDate']/@second"]>
</#if>
</#function>
<#function funStartDate item>
<#if (item["./startDate"]?size > 0)>
<#return item["./startDate"]>
<#elseif (item["./nav:attribute[@name='startDate']"]?size > 0)>
<#return item["./nav:attribute[@name='startDate']"]>
</#if>
</#function>
<#function funStartDateYear item>
<#if (item["./startDate"]?size > 0)>
<#return item["./startDate/@year"]>
<#elseif (item["./nav:attribute[@name='startDate']"]?size > 0)>
<#return item["./nav:attribute[@name='startDate']/@year"]>
</#if>
</#function>
<#function funStartDateMonth item>
<#if (item["./startDate"]?size > 0)>
<#return item["./startDate/@month"]>
<#elseif (item["./nav:attribute[@name='startDate']"]?size > 0)>
<#return item["./nav:attribute[@name='startDate']/@month"]>
</#if>
</#function>
<#function funStartDateDay item>
<#if (item["./startDate"]?size > 0)>
<#return item["./startDate/@day"]>
<#elseif (item["./nav:attribute[@name='startDate']"]?size > 0)>
<#return item["./nav:attribute[@name='startDate']/@day"]>
</#if>
</#function>
<#function funStartDateDayNameShort item>
<#if (item["./startDate"]?size > 0)>
<#return item["./startDate/@dayNameShort"]>
<#elseif (item["./nav:attribute[@name='startDate']"]?size > 0)>
<#return item["./nav:attribute[@name='startDate']/@dayNameShort"]>
</#if>
</#function>
<#function funStartDateHour item>
<#if (item["./startDate"]?size > 0)>
<#return item["./startDate/@hour"]>
<#elseif (item["./nav:attribute[@name='startDate']"]?size > 0)>
<#return item["./nav:attribute[@name='startDate']/@hour"]>
</#if>
</#function>
<#function funStartDateMinute item>
<#if (item["./startDate"]?size > 0)>
<#return item["./startDate/@minute"]>
<#elseif (item["./nav:attribute[@name='startDate']"]?size > 0)>
<#return item["./nav:attribute[@name='startDate']/@minute"]>
</#if>
</#function>
<#function funStartDateSecond item>
<#if (item["./startDate"]?size > 0)>
<#return item["./startDate/@second"]>
<#elseif (item["./nav:attribute[@name='startDate']"]?size > 0)>
<#return item["./nav:attribute[@name='startDate']/@second"]>
</#if>
</#function>
<#macro location item>
<#if (item["./location"]?size > 0)>
${item["./location"]}
@ -162,24 +290,24 @@
<#macro mainContributor item>
<#if (item["./mainContributor"]?size > 0)>
${item["./mainContributor"]}
<#/if>
</#if>
</#macro>
<#macro eventType item>
<#if (item["./eventType"]?size > 0)>
${item["./eventType"]}
<#/if>
</#if>
</#macro>
<#macro cost item>
<#if (item["./cost"]?size > 0)>
${item[./cost"]}
${item["./cost"]}
</#if>
</#macro>
<#macro mapLink item>
<#if (item["./mapLink"]?size > 0)>
<#nested item["./mapLink">
<#nested item["./mapLink"]>
</#if>
</#macro>

View File

@ -25,6 +25,14 @@
</#if>
</#macro>
<#function funNewsDate item>
<#if (item["./newsDate"]?size > 0)>
<#return item["./newsDate"].@@text />
<#elseif (item["./nav:attribute[@name='newsDate']"]?size > 0)>
<#return item["./nav:attribute[@name='newsDate']"].@@text />
</#if>
</#function>
<#--
Outputs value of the date property of the provided news item as provided by the model.
-->
@ -47,6 +55,14 @@
</#if>
</#macro>
<#function funNewsDateYear item>
<#if (item["./newsDate"]?size > 0)>
<#return item["./newsDate/@year"]>
<#elseif (item["./nav:attribute[@name='newsDate']"]?size > 0)>
<#return item["./nav:attribute[@name='newsDate']/@year"]>
</#if>
</#function>
<#--
Outputs the month part of the date property of the provided news item.
-->
@ -58,6 +74,14 @@
</#if>
</#macro>
<#function funNewsDateMonth item>
<#if (item["./newsDate"]?size > 0)>
<#return item["./newsDate/@month"]>
<#elseif (item["./nav:attribute[@name='newsDate']"]?size > 0)>
<#return item["./nav:attribute[@name='newsDate']/@month"]>
</#if>
</#function>
<#--
Outputs the day part of the date property of the provided news item.
-->
@ -69,6 +93,15 @@
</#if>
</#macro>
<#function funNewsDateDay item>
<#if (item["./newsDate"]?size > 0)>
<#return item["./newsDate/@day"]>
<#elseif (item["./nav:attribute[@name='newsDate']"]?size > 0)>
<#return item["./nav:attribute[@name='newsDate']/@day"]>
</#if>
</#function>
<#--
Outputs the short day name of the date property of the provided news item.
-->
@ -80,6 +113,14 @@
</#if>
</#macro>
<#function funNewsDateDayNameShort item>
<#if (item["./newsDate"]?size > 0)>
<#return item["./newsDate/@dayNameShort"]>
<#elseif (item["./nav:attribute[@name='newsDate']"]?size > 0)>
<#return item["./nav:attribute[@name='newsDate']/@dayNameShort"]>
</#if>
</#function>
<#--
Outputs the hour part of the date property of the provided news item.
-->
@ -91,6 +132,14 @@
</#if>
</#macro>
<#function newsDateHour item>
<#if (item["./newsDate"]?size > 0)>
<#return item["./newsDate/@hour"]>
<#elseif (item["./nav:attribute[@name='newsDate']"]?size > 0)>
<#return $item["./nav:attribute[@name='newsDate']/@hour"]>
</#if>
</#function>
<#--
Outputs the minute part of the date property of the provided news item.
-->
@ -102,8 +151,16 @@
</#if>
</#macro>
<#function newsDateMinute item>
<#if (item["./newsDate"]?size > 0)>
<#return item["./newsDate/@minute"]>
<#elseif (item["./nav:attribute[@name='newsDate']"]?size > 0)>
<#return item["./nav:attribute[@name='newsDate']/@minute"]>
</#if>
</#function>
<#--
Outputs the second part of the date property of the provided news item.
Outputs the Second (the time unit) part of the date property of the provided news item.
-->
<#macro newsDateSecond item>
<#if (item["./newsDate"]?size > 0)>
@ -113,4 +170,11 @@
</#if>
</#macro>
h
<#function newsDateSecond item>
<#if (item["./newsDate"]?size > 0)>
<#return item["./newsDate/@second"]>
<#elseif (item["./nav:attribute[@name='newsDate']"]?size > 0)>
<#return item["./nav:attribute[@name='newsDate']/@second"]>
</#if>
</#function>

View File

@ -13,17 +13,29 @@
<pre></pre> -->
<#nested 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>
<#-- <pre>Found complex object list ${listId}</pre> -->
<#nested 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>
<#-- <pre>Found customizable object list ${listId}</pre> -->
<#nested 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>
<pre>no item list with id ${listId}</pre>
<#-- <pre>no item list with id ${listId}</pre> -->
</#if>
<#-- <#nested items> -->
</#macro>
<#function itemLink item>
<#return item["./nav:path"]>
</#function>
<#function funImageId item>
<#return item["./nav:attribute[@name='imageAttachments.image.id'][1]"]>
</#function>
<#function funImageCaption item>
<#return item["./nav:attribute[@name='imageAttachments.image.caption'][1]"].@@text>
</#function>