Some bugfixes for Freemarker function libraries

git-svn-id: https://svn.libreccm.org/ccm/trunk@6274 8810af33-2d31-482b-a856-94f89814c4df
master
jensp 2019-10-18 12:59:50 +00:00
parent bc4cd15da3
commit fa53f6ae0f
2 changed files with 26 additions and 11 deletions

View File

@ -16,6 +16,13 @@
</#if>
</#function>
<#--
Checks if the provided item has a lead property.
-->
<#function hasLead item>
<#return (item["./lead"]?size > 0 || item["./nav:attribute[@name='lead']"]?size > 0)>
</#function>
<#--
Gets the main text the the provided article.
-->

View File

@ -5,10 +5,14 @@
"ui": "http://www.arsdigita.com/ui/1.0"}
>
<#function hasDescription item>
<#return (item["./description"]?size > 0 || item["./nav:attribute[@name = 'description']"]?size > 0)>
</#function>
<#function getDescription item>
<#if (item["./description"]?size > 0)>
<#return item["./description"]>
<#else if (item["./nav:attribute[@name = 'description']"])>
<#elseif (item["./nav:attribute[@name = 'description']"]?size > 0)>
<#return item["./nav:attribute[@name = 'description']"]>
</#if>
</#function>
@ -16,27 +20,31 @@
<#function getFileId item>
<#if (item["./file/id"]?size > 0)>
<#return item["./file/id"]>
<#else if (item["./nav:attribute[@name = 'file.id']"])>
<#elseif (item["./nav:attribute[@name = 'file.id']"]?size > 0)>
<#return item["./nav:attribute[@name = 'file.id']"]>
</#if>
</#function>
<#function hasFileName item>
<#return (item["./file/name"]?size > 0 || item["./nav:attribute[@name = 'file.name']"]?size > 0)>
</#function>
<#function getFileName item>
<#if (item["./file/name"]?size > 0)>
<#return item["./file/name"]>
<#else if (item["./nav:attribute[@name = 'file.name']"])>
<#elseif (item["./nav:attribute[@name = 'file.name']"]?size > 0)>
<#return item["./nav:attribute[@name = 'file.name']"]>
</#if>
</#function>
<#function getFileLink item mode="download" useFileName=true>
<#if mode == "stream" && useFileName>
<#return "${dispatcherPrefix}/cms-service/stream/asset/${getFileName(item)}?asset_id=${getFileId(item)">
<#else if mode="stream" && !useFileName>
<#return "${dispatcherPrefix}/cms-service/stream/asset/?asset_id=${getFileId(item)">
<#else if mode="download" && useFileName>
<#return "${dispatcherPrefix}/cms-service/download/asset/${getFileName(item)}?asset_id=${getFileId(item)">
</#else>
<#return "${dispatcherPrefix}/cms-service/download/asset/?asset_id=${getFileId(item)">
<#if (mode == "stream" && useFileName && hasFileName(item))>
<#return "${dispatcherPrefix}/cms-service/stream/asset/${getFileName(item)}?asset_id=${getFileId(item)}">
<#elseif (mode="stream" && (!useFileName || !hasFileName(item)))>
<#return "${dispatcherPrefix}/cms-service/stream/asset/?asset_id=${getFileId(item)}">
<#elseif (mode="download" && useFileName && hasFileName(item))>
<#return "${dispatcherPrefix}/cms-service/download/asset/${getFileName(item)}?asset_id=${getFileId(item)}">
<#else>
<#return "${dispatcherPrefix}/cms-service/download/asset/?asset_id=${getFileId(item)}">
</#if>
</#function>