+<comment>\r
+ This file contains several routines to be used in the templates\r
+</comment>\r
+\r
+<function showArticleUrl(aPrefix, anArticle, aText, aCSSClass)>\r
+ <a class="${aCSSClass}" href="/${aPrefix}/${anArticle.date.formatted.yyyy}/${anArticle.date.formatted.MM}/${anArticle.id}.shtml">${aText}</a>\r
+</function>\r
+\r
+<function showSafeText(aText)>\r
+ ${utility.encodeHTML(aText)}\r
+</function>\r
+\r
+<function showSafeTextOrDefault(aField, aDefault)>\r
+ <if aField>\r
+ <call showSafeText(aField)>\r
+ <else>\r
+ ${aDefault}\r
+ </if>\r
+</function>\r
+
+<function showAddCommentLink(anArticle, aText, aLanguage)>
+ <a href="${config["Producer.OpenAction"]}?do=addcomment&aid=${anArticle.id}&language=${aLanguage.code}">${aText}</a>
+</function>
+ \r
+<function showArticleMedia(anArticle)>\r
+ <!-- media -->\r
+ <list anArticle.to_media_audio as audio>\r
+ <br>\r
+ <br>\r
+ <a href="${audio["publish_server"]}${audio["publish_path"]}">\r
+ <img src="/images/${video["big_icon"]}" border="0" alt="">\r
+ <call showSafeText(audio.title)> - <call showSafeText(audio.descr)>\r
+ </a>\r
+ </list>\r
+\r
+ <list anArticle.to_media_video as video>\r
+ <br>\r
+ <br>\r
+ <a href="${video["publish_server"]}${video["publish_path"]}">\r
+ <img src="/images/${video["big_icon"]}" border="0" alt="">\r
+ <call showSafeText(video.title)> - <call showSafeText(video.descr)>\r
+ </a>\r
+ </list>\r
+\r
+ <list anArticle.to_media_other as other>\r
+ <br>\r
+ <br>\r
+ <a href="${other["publish_server"]}${other["publish_path"]}">\r
+ <img src="/images/${other["big_icon"]}" border="0" alt="">\r
+ <call showSafeText(other.title)> - <call showSafeText(other.descr)>\r
+ </a>\r
+ </list>\r
+\r
+ <list anArticle.to_media_images as image>\r
+ <br>\r
+ <br>\r
+ <img src="${image["publish_server"]}${image["publish_path"]}"\r
+ border="0" width="${image["img_width"]}"\r
+ height="${image["img_height"]}" alt="${image["title"]}"><br>\r
+ <i><call showSafeText(image.title)></i>\r
+ </list>\r
+ <!-- media -->\r
+</function>\r
+\r
+<function showArticleMediaIcons(anArticle)>\r
+ <if anArticle.to_media_audio >
+ <img src="/img/${anArticle.to_media_audio[0]["big_icon"]}">
+ </if>
+ \r
+ <if anArticle.to_media_video >
+ <img src="/img/${anArticle.to_media_video[0]["big_icon"]}">
+ </if>
+ \r
+ <if anArticle.to_media_other >
+ <img src="/img/${anArticle.to_media_other[0]["big_icon"]}">
+ </if>
+ \r
+ <if anArticle.to_media_images >
+ <img src="${anArticle.to_media_images[0]["icon_path"]}"
+ width="${anArticle.to_media_images[0]["icon_width"]}"
+ height="${anArticle.to_media_images[0]["icon_height"]}"
+ border=0 alt="${anArticle.to_media_images[0]["title"]}">
+ </if>
+</function>\r
+\r
+<function showArticleAsFeature(anArticle)>\r
+ <h3><call showSafeText(anArticle.title)></h3>
+ <h4><i><call showSafeText(anArticle.creator)>, ${anArticle.creationdate.formatted["dd.MM.yyyy HH:mm"]}</i></h4>
+ <p>
+ <call showArticleMediaIcons(anArticle)>
+ ${anArticle.description_parsed} \r
+ </p>
+\r
+ <p align="right">
+ [<call showArticleUrl(pathprefix, anArticle, lang("general.readarticle"), "featurelink")>]
+ </p>
+</function>\r
+\r
+\r
+<function showArticleAsNewswire(anArticle)>\r
+ <img alt=${anArticle.to_media_icon["icon_alt"]} border="0" height="10"
+ src="${anArticle.to_media_icon["tiny_icon"]}" width="12"> \r
+ \r
+ <call showArticleUrl(pathprefix, anArticle, anArticle.title, "")><br />
+ <font size="-2">${n.creationdate.formatted["dd-MM-yyyy HH:mm"]}</font><br>
+</function>\r
+\r