<#ftl ns_prefixes={ "bebop":"http://www.arsdigita.com/bebop/1.0", "cms":"http://www.arsdigita.com/cms/1.0", "nav":"http://ccm.redhat.com/navigation", "ui": "http://www.arsdigita.com/ui/1.0"} > <#--doc Gets the application of the page served from the model. @return The current application. --> <#function getPageApplication> <#return model["/bebop:page/@application"]> <#--doc Get the title of the current page. This will only work of the current page is a navigation page with a category menu. @return The title of the current page --> <#function getPageTitle> <#return model["//nav:categoryMenu/nav:category/@title"]> <#--doc Get the hostname from the sitebanner data. @return The host name of the site. --> <#function getSiteHostName> <#return model["/bebop:page/ui:siteBanner/@hostname"]> <#--doc Get the name of the site from the sitebanner data. @return The name of the site. --> <#function getSiteName> <#return model["/bebop:page/ui:siteBanner/@sitename"]> <#-- Internal function. Not for public use. Internal function for coverting several string values like `yes`, `true`, `no` etc. to a boolean value. @param fromNode An XML node @param The attribute to convert to boolean. @return A boolean representation of the value of the attribute. --> <#function getBooleanAttrValue fromNode attrName> <#assign path='@' + attrName> <#if (fromNode[path]?size > 0)> <#assign value=fromNode[path][0]> <#return value?lower_case?switch('true', true, 'false', false, 'yes', true, 'no', false, false)> <#else> <#return false> <#--doc A wrapper for the `_formatDateTime` function which adds missing numbers. `_formatDateTime` uses Java APIs for formatting which don't work well with incomplete dates. This function takes a date from the data model and checks if a component (year, month, day, hour, minute, second) is missing. If the the component is missing the function adds uses a default value of that component. @param style The date format style from the theme manifest to use. @param date the date to format. @return The formatted date. --> <#function formatDateTime style date> <#assign year = (date["./@year"]?size > 0)?then(date["./@year"]?number, 0)> <#assign month = (date["./@month"]?size > 0)?then(date["./@month"]?number, 0)> <#assign day = (date["./@day"]?size > 0)?then(date["./@day"]?number, 0)> <#assign hour = (date["./@hour"]?size > 0)?then(date["./@hour"]?number, 0)> <#assign minute = (date["./@minute"]?size > 0)?then(date["./@minute"]?number, 0)> <#assign second = (date["./@second"]?size > 0)?then(date["./@second"]?number, 0)> <#return _formatDateTime(style, year, month, day, hour, minute, second)>