Requirements
In order to quickly implement microsites, campaigns, or specialized channels with unique template requirements, templates can be updated without interrupting the service or requiring a redeployment of the application.
Solution
Views can be implemented as FreeMarker templates and uploaded to the Content Repository in a container file, preferably a JAR. For details, consult the "Loading Templates from the Content Repository" chapter in the [CAE Developer Manual].
Create the archive containing the templates
A template set archive, preferably a JAR file, can contain FreeMarker templates which must be
located under the path: /META-INF/resources/WEB-INF/templates/siteName/packageName/
The easiest way to create the JAR is to create a new Maven module with a POM like this one:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example.groupId</groupId> <artifactId>templates</artifactId> <version>--insert version here--</version> <packaging>jar</packaging> <description> CAE templates to be uploaded to a CMTemplateSet document in /Themes/*my.package*/templates/ with name *my.package*-templates.jar. Use the *my.package* as a reference in a Page's "viewRepositoryNames" settings (list of strings). </description> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.4</version> <configuration> <archive> <addMavenDescriptor>true</addMavenDescriptor> </archive> </configuration> </plugin> </plugins> </build> </project>
Put your templates below the path
src/main/resources/META-INF/resources/WEB-INF/templates/--themeName--/--packageName--/
, for
example
src/main/resources/META-INF/resources/WEB-INF/templates/corporate/com.coremedia.blueprint.common.contentbeans/Page.ftl
Upload the template set
CoreMedia Blueprint provides the content type Template Set
(CMTemplateSet
) which is used for this purpose. Create a document of type Template
Set
in folder /Themes/--themeName--/templates
and upload the JAR to its archive
property. Its name is
significant and is used to reference template sets from channel settings, as explained see
below.
Name | Description |
---|---|
description
| A description of the purpose / contents of the code. |
archive
| blob property that contains the archive (preferably a JAR) that contains the templates. |
Table 6.14. Properties of CMTemplateSet
Add the template set to a page
A Page context can be configured to add additional template sets to all pages rendered in its
context. The names of additional template sets are configured in a string list setting
viewRepositoryNames
of a Page. Like all settings, a Page will inherit this list of names form
its parent context, if it is not set. See Section 6.3.11, “View Repositories” for more details.
Note | |
---|---|
The CAE will resolve view repository names automatically according to the predefined name pattern.
For instance, if a Page sets its |