You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

Pages are based on page templates. A page definition knows which script should be used to render a page. It may also define areas. You can configure a template in a YAML file or a JCR node.

Page template properties

You can use common template properties and the following properties in a page definition:

example/templates/pages/home.yaml
renderType: freemarker
templateScript: /my-module/templates/pages/home.ftl
dialog: my-module:pages/homePageProperties
# areas:
visible: true
class: com.example.templates.CustomTemplateDefinition
modelClass: com.example.templates.HomePageModel
Node nameValue

 
templates

 

 
pages

 

 
home

 

 
areas

 

 
<area definitions>

 

 
class

com.example.templates.CustomTemplateDefinition

 
dialog

my-module:pages/homePageProperties

 
modelClass

com.example.templates.HomePageModel

 
renderType

freemarker

 
templateScript

/my-module/templates/pages/home.ftl

 
visible

true

Properties specific to page template definition:

visible

optional, default is true

true makes the template available to editors.

When visible is set to false, the template is not available. However, the opposite is not always true. There are more ways to control page template availability.

type

optional, default is content

Assigns a type to the template. Types control template availability in the page hierarchy. For example type home is available at the site root level, section at level 2, and content at level 3. See Page template availability on how to use the type property.

This property is different from the type property in Area definition.

subType

optional

Assigns a subtype to the template. You can use subtypes to aggregate content. For example, aggregate all content pages of subtype news into a teaser component. There are no default values and you can use arbitrary values to categorize your templates in any way you like.

autoPopulateFromRequest

optional, default is true

The population of request parameters is typically enabled globally in /server/rendering/engine. Add this property and set to false to override the global setting. See Populating the rendering model with request parameters for more.

areas

optional

Area definitions.

Location of page definitions

Put your page definitions here:

  • YAML file: $magnolia.resources.dir/<module-name>/templates/pages
  • JCR node: /modules/<module-name>/templates/pages

Page subtypes

The optional subType property is useful for aggregating related page templates. For example, you could use this property to aggregate the latest news articles and then create a component that displays a list of excerpts that point to the news pages.

There are no default values and you can use arbitrary values to categorize your templates in any way you like.

Adding page areas

Page area definitions are added in the areas node of a page template.

How to configure area definitions is covered in Area definition.

This example configuration adds two areas to a page template. 

<module name>/templates/pages/<page template name>.yaml
areas: 
  area-1:
    # area-1 configuration
  area-2:
    #area-2 configuration 
Node nameValue

 
<page template name>

 

 
areas

 

 
area-1

<area-1 configuration>

 
area-2

<area-2 configuration>
#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))
  • No labels