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> </#if>
</#macro> </#macro>
<#macro endDate item> <#macro startDate item>
<#if (item["./endDate"]?size > 0)> <#if (item["./startDate"]?size > 0)>
${item["./endDate"]} ${item["./startDate"]}
<#elseif (item["./nav:attribute[@name='endDate']"]?size > 0)> <#elseif (item["./nav:attribute[@name='startDate']"]?size > 0)>
${item["./nav:attribute[@name='endDate']"]} ${item["./nav:attribute[@name='startDate']"]}
</#if> </#if>
</#macro> </#macro>
<#macro endDateYear item> <#macro startDateYear item>
<#if (item["./endDate"]?size > 0)> <#if (item["./startDate"]?size > 0)>
${item["./endDate/@year"]} ${item["./startDate/@year"]}
<#elseif (item["./nav:attribute[@name='endDate']"]?size > 0)> <#elseif (item["./nav:attribute[@name='startDate']"]?size > 0)>
${item["./nav:attribute[@name='endDate']/@year"]} ${item["./nav:attribute[@name='startDate']/@year"]}
</#if> </#if>
</#macro> </#macro>
<#macro endDateMonth item> <#macro startDateMonth item>
<#if (item["./endDate"]?size > 0)> <#if (item["./startDate"]?size > 0)>
${item["./endDate/@month"]} ${item["./startDate/@month"]}
<#elseif (item["./nav:attribute[@name='endDate']"]?size > 0)> <#elseif (item["./nav:attribute[@name='startDate']"]?size > 0)>
${item["./nav:attribute[@name='endDate']/@month"]} ${item["./nav:attribute[@name='startDate']/@month"]}
</#if> </#if>
</#macro> </#macro>
<#macro endDateDay item> <#macro startDateDay item>
<#if (item["./endDate"]?size > 0)> <#if (item["./startDate"]?size > 0)>
${item["./endDate/@day"]} ${item["./startDate/@day"]}
<#elseif (item["./nav:attribute[@name='endDate']"]?size > 0)> <#elseif (item["./nav:attribute[@name='startDate']"]?size > 0)>
${item["./nav:attribute[@name='endDate']/@day"]} ${item["./nav:attribute[@name='startDate']/@day"]}
</#if> </#if>
</#macro> </#macro>
<#macro endDateDayNameShort item> <#macro startDateDayNameShort item>
<#if (item["./endDate"]?size > 0)> <#if (item["./startDate"]?size > 0)>
${item["./endDate/@dayNameShort"]} ${item["./startDate/@dayNameShort"]}
<#elseif (item["./nav:attribute[@name='endDate']"]?size > 0)> <#elseif (item["./nav:attribute[@name='startDate']"]?size > 0)>
${item["./nav:attribute[@name='endDate']/@dayNameShort"]} ${item["./nav:attribute[@name='startDate']/@dayNameShort"]}
</#if> </#if>
</#macro> </#macro>
<#macro endDateHour item> <#macro startDateHour item>
<#if (item["./endDate"]?size > 0)> <#if (item["./startDate"]?size > 0)>
${item["./endDate/@hour"]} ${item["./startDate/@hour"]}
<#elseif (item["./nav:attribute[@name='endDate']"]?size > 0)> <#elseif (item["./nav:attribute[@name='startDate']"]?size > 0)>
${item["./nav:attribute[@name='endDate']/@hour"]} ${item["./nav:attribute[@name='startDate']/@hour"]}
</#if> </#if>
</#macro> </#macro>
<#macro endDateMinute item> <#macro startDateMinute item>
<#if (item["./endDate"]?size > 0)> <#if (item["./startDate"]?size > 0)>
${item["./endDate/@minute"]} ${item["./startDate/@minute"]}
<#elseif (item["./nav:attribute[@name='endDate']"]?size > 0)> <#elseif (item["./nav:attribute[@name='startDate']"]?size > 0)>
${item["./nav:attribute[@name='endDate']/@minute"]} ${item["./nav:attribute[@name='startDate']/@minute"]}
</#if> </#if>
</#macro> </#macro>
<#macro endDateSecond item> <#macro startDateSecond item>
<#if (item["./endDate"]?size > 0)> <#if (item["./startDate"]?size > 0)>
${item["./endDate/@second"]} ${item["./startDate/@second"]}
<#elseif (item["./nav:attribute[@name='endDate']"]?size > 0)> <#elseif (item["./nav:attribute[@name='startDate']"]?size > 0)>
${item["./nav:attribute[@name='endDate']/@second"]} ${item["./nav:attribute[@name='startDate']/@second"]}
</#if> </#if>
</#macro> </#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> <#macro location item>
<#if (item["./location"]?size > 0)> <#if (item["./location"]?size > 0)>
${item["./location"]} ${item["./location"]}
@ -162,24 +290,24 @@
<#macro mainContributor item> <#macro mainContributor item>
<#if (item["./mainContributor"]?size > 0)> <#if (item["./mainContributor"]?size > 0)>
${item["./mainContributor"]} ${item["./mainContributor"]}
<#/if> </#if>
</#macro> </#macro>
<#macro eventType item> <#macro eventType item>
<#if (item["./eventType"]?size > 0)> <#if (item["./eventType"]?size > 0)>
${item["./eventType"]} ${item["./eventType"]}
<#/if> </#if>
</#macro> </#macro>
<#macro cost item> <#macro cost item>
<#if (item["./cost"]?size > 0)> <#if (item["./cost"]?size > 0)>
${item[./cost"]} ${item["./cost"]}
</#if> </#if>
</#macro> </#macro>
<#macro mapLink item> <#macro mapLink item>
<#if (item["./mapLink"]?size > 0)> <#if (item["./mapLink"]?size > 0)>
<#nested item["./mapLink"> <#nested item["./mapLink"]>
</#if> </#if>
</#macro> </#macro>

View File

@ -25,6 +25,14 @@
</#if> </#if>
</#macro> </#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. Outputs value of the date property of the provided news item as provided by the model.
--> -->
@ -47,6 +55,14 @@
</#if> </#if>
</#macro> </#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. Outputs the month part of the date property of the provided news item.
--> -->
@ -58,6 +74,14 @@
</#if> </#if>
</#macro> </#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. Outputs the day part of the date property of the provided news item.
--> -->
@ -69,6 +93,15 @@
</#if> </#if>
</#macro> </#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. Outputs the short day name of the date property of the provided news item.
--> -->
@ -80,6 +113,14 @@
</#if> </#if>
</#macro> </#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. Outputs the hour part of the date property of the provided news item.
--> -->
@ -91,6 +132,14 @@
</#if> </#if>
</#macro> </#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. Outputs the minute part of the date property of the provided news item.
--> -->
@ -102,8 +151,16 @@
</#if> </#if>
</#macro> </#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> <#macro newsDateSecond item>
<#if (item["./newsDate"]?size > 0)> <#if (item["./newsDate"]?size > 0)>
@ -113,4 +170,11 @@
</#if> </#if>
</#macro> </#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> --> <pre></pre> -->
<#nested model["/bebop:page/nav:simpleObjectList[@id='${listId}']/nav:objectList/nav:item"]> <#nested model["/bebop:page/nav:simpleObjectList[@id='${listId}']/nav:objectList/nav:item"]>
<#elseif (model["/bebop:page/nav:complexObjectList[@id='${listId}']/nav:objectList"]?size > 0)> <#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"]> <#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"]> --> <#-- <#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)> <#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"]> <#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"]> --> <#-- <#assign items=model["/bebop:page/nav:simpleObjectList[@id='${listId}']/nav:objectList/nav:item"]> -->
<#else> <#else>
<pre>no item list with id ${listId}</pre> <#-- <pre>no item list with id ${listId}</pre> -->
</#if> </#if>
<#-- <#nested items> --> <#-- <#nested items> -->
</#macro> </#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>