Blueprint Developer Manual / Version 2406.0
Table Of ContentsRequirements
A CoreMedia deployment can host multiple sites which frequently differ in layout and functionality. It is a common requirement to use different view templates for those sites but still be able to define reused templates across sites flexibly.
Solution
The CoreMedia CAE offers a very flexible view selection mechanism by
providing the ViewRepositoryNameProvider
and ViewRepositoryProvider
abstraction (see
Section 4.3.3, “Views” in Content Application Developer Manual).
CoreMedia Blueprint offers the
BlueprintViewRepositoryNameProvider
implementation which for each lookup of model
and view generates a list of view repository names to query. The list is created based on
the specific view repository names defined in the String list setting
viewRepositoryNames
of the navigation context of the provided model,the view repository names defined via Spring in the property
commonViewRepositoryNames
on theBlueprintViewRepositoryNameProvider
Java bean.
This allows for more fine-grained control of the used view repositories as view repositories can be configured not only specific for a site but also for each site section.
CoreMedia Blueprint uses the standard CAE
TemplateViewRepositoryProvider
to create from the list of view repository names the
list of actual view repositories to query. CoreMedia Blueprint
configures the following templateLocationPatterns
for the
TemplateViewRepositoryProvider
:
jar:id:contentproperty:/Themes/%1$s/templates/%1$s-templates.jar/archive!/META-INF/resources/WEB-INF/templates/%1$s
jar:id:contentproperty:/Themes/%1$s/templates/%1$s-templates.jar/archive!/META-INF/resources/WEB-INF/templates/sites/%1$s
/WEB-INF/templates/sites/%s
/WEB-INF/templates/%s
Example: For a content of the corporate site the
BlueprintViewRepositoryNameProvider
yields the view repository names "corporate".
The TemplateViewRepositoryProvider
would then return the following view
repositories which are queried for the responsible view:
A FreeMarker template view repository in the CMS located in the
/Themes/corporate/templates/corporate-templates.jar
(aCMTemplateSet
) content item's blob propertyarchive
A FreeMarker Template file system view repository below
/WEB-INF/templates/sites/corporate
A FreeMarker Template file system view repository below
/WEB-INF/templates/corporate