Fixed different structures, doc for Freemarker functions provided by ccm-cms-types-article and ccm-cms-types-bookmark

git-svn-id: https://svn.libreccm.org/ccm/trunk@6111 8810af33-2d31-482b-a856-94f89814c4df
master
jensp 2019-06-06 17:30:09 +00:00
parent a61bbc73f2
commit d0fad42274
6 changed files with 77 additions and 147 deletions

View File

@ -0,0 +1,10 @@
# Freemarker functions for Article content items
## `getLead(item: Node): String`
Retrieves the lead text of the provided article.
## `getMainText(item: Node): String`
Retrieves the main text of the provided item. The return value is a
HTML string.

View File

@ -0,0 +1,10 @@
# Freemarker functions for Bookmark items
## `getDescription(item: Node): String`
Gets the description of the bookmark.
## `getLink(item: Node): String`
Gets the link for the bookmark's target.

View File

@ -1,69 +0,0 @@
# Freemarker functions provided by ccm-themedirector
## Language utilities
Provides functions for gettign the available languages for the current page.
Import Path
:`/ccm-themedirector/language.ftl`
### `Sequence<String> getAvailableLanguages()`
Returns the functions in which the primary content of the current page is available.
## Utility functions
Import Path
:`/ccm-themedirectory/utils.ftl`
### `String getPageApplication()`
Returns the application by which the current page was generated.
### `String getPageTitle()`
Return the title of the current page as provided by the
_Category Menu_ Component of the _ccm-navigation_ module.
### `String getSiteHostName()`
Returns the host name of the CCM installation as provided by the
_SiteBanner_ component of the _ccm-core_ module.
### `String getSiteName()`
Returns the host name of the CCM installation as provided by the
_SiteBanner_ component of the _ccm-core_ module.
### `String formatDateTime(style: String, date: DateValueNode)`
Formats a date or date-time value according to a pattern defined in the
theme manifest. The pattern must be a valid pattern for the Java `DateTimeFormatter` class (see https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html). The definition in the theme manifest is done in the `date-time-formats` section. A definition for a date style looks like this:
"date-time-formats": [
...
{
"style": "standard",
"lang": "de",
"format": "dd. MMM YYYY"
},
{
"style": "standard",
"lang": "en",
"format": "MM/dd/YY"
}
...
]
Each style must have a name. It is possible to have different patterns
for a style for different languages. The pattern itself is provided by the `format` property. For a documentation of the pattern format
please refer to the documentation of the Java `DateTimeFormatter`.
The second parameter of these function is a date value, at the moment
this is an XML node if several attributes providing the year, month etc. of the date. This value is usually provided by special function
for the specific content type. A typical usage of the `formatDateTime`
function looks like this:
<span>${Utils.formatDateTime("standard", News.getNewsDate(item))}</span>
In this example the `getNewsDate` function was used to retrieve the date of a news.

View File

@ -1,77 +1,59 @@
### Common functions
# Freemarker functions provided by ccm-themedirector
#### Language related
## Language utilities
Import path: `<#import /language.ftl as Lang>`
Provides functions for gettign the available languages for the current page.
##### `getAvailableLanguages`
Import Path
:`/ccm-themedirector/language.ftl`
Sequence getAvailableLanguages()
Returns the available languages for the current document as sequence. These sequence can be used for creating links for selecting the language:
### `getAvailableLanguages(): Sequence<String> `
Returns the available languages for the current document as sequence. This
sequence can be used for creating links for selecting the language:
```
<ul class="language-selector">
<#list Lang.getAvailableLanguages()?sort as lang>
<li class="${(lang==negotiatedLanguage)?then('selected', '')}">${lang}</li>
</#list>
</ul>
```
This example uses the `list` directive from Freemarker to iterate over the available languages returned by `getAvailableLanguages` The Freemarker build-in `?then` is used together with the `negotiatedLanguage` variable to
check if the curent language is the selected language. If this is the case
a CSS class is added to the HTML.
#### Basic functions
## Utility functions
Import path: `<#import /utils.ftl as Utils>`
Import Path
:`/ccm-themedirectory/utils.ftl`
##### getPageApplication
getPageApplication()
### `String getPageApplication()`
Return the application of the current page.
##### getPageTitle
### `String getPageTitle()`
getPageTitle()
Return the title of the current page as provided by the
_Category Menu_ Component of the _ccm-navigation_ module.
Returns the title of the current page
### `String getSiteHostName()`
##### getSiteHostName
Returns the host name of the CCM installation as provided by the
_SiteBanner_ component of the _ccm-core_ module.
getSiteHostName()
### `String getSiteName()`
Returns the name of the host serving the site.
Returns the host name of the CCM installation as provided by the
_SiteBanner_ component of the _ccm-core_ module.
##### getSiteName
getSiteName()
Returns the name of the site.
##### getBooleanAttrValue
getBooleanAttrValue(fromNode: Node attrName: String)
## `getBooleanAttrValue(fromNode: Node, attrName: String): boolean`
A helper function which tries to convert the value of the attribute `attrName` of the node `fromNode` to a boolean. The following values
are interpreted as true: `true`, `yes`. All other values are interpreted
as `false`.
###### Parameters
`fromNode` A XML node
`attrName` The name of attribute to interpret as boolean
###### Returns
A boolean for the value of the attribute. If the attribute is not present
in the provided node the function returns `false`.
##### formatDateTime
formatDateTime(style: String date: Node)
## `formatDateTime(style: String, date: DateValueNode): String`
Formats the value of date/time value node according to the provided
`style`. The is defined in the theme manifest in the `date-time-formats`
@ -80,21 +62,11 @@ The style definition in the theme manifest must be in the format expected by the
[DateTimeFormatter](https://docs.oracle.com/javase/8/docs/api/index.html?java/time/format/DateTimeFormatter.html) class.
###### Parameters
`style` A date-time format defined in the theme manifest. The format must be formatted as expected by the [DateTimeFormatter](https://docs.oracle.com/javase/8/docs/api/index.html?java/time/format/DateTimeFormatter.html) class.
`date` The node providing the data of the date to format.
###### Returns
A date formatted as defined in `style`.
###### Examples
#### Example
In the theme manifest in the following format is defined:
```
"date-time-formats": [
...
{
@ -109,15 +81,22 @@ In the theme manifest in the following format is defined:
},
...
]
```
The use this format:
Each style must have a name. It is possible to have different patterns
for a style for different languages. The pattern itself is provided by the `format` property. For a documentation of the pattern format
please refer to the documentation of the Java `DateTimeFormatter`.
```
Utils.formatDateTime('news', News.getDateTime(item))
```
The second parameter of these function is a date value, at the moment
this is an XML node if several attributes providing the year, month etc. of the date. This value is usually provided by special function
for the specific content type. A typical usage of the `formatDateTime`
function looks like this:
`News.getDateTime` gets the date of a news item. If the date of the news is 2019-04-01 the return value of the function for german is
<span>${Utils.formatDateTime("standard", News.getNewsDate(item))}</span>
In this example the `getNewsDate` function was used to retrieve the date of a news.
`News.getNewsDate` gets the date of a news item. If the date of the news is
2019-04-01 the return value of the function for german is
01.04.2019