Path

ezpublish / documentation / ez publish / technical manual / 3.10 / reference / template override conditions


Caution: This documentation is for eZ Publish legacy, from version 3.x to 6.x.
For 5.x documentation covering Platform see eZ Documentation Center, for difference between legacy and Platform see 5.x Architecture overview.

Template override conditions

This section contains an overview of the override conditions that can be used to override the system templates.

Override example

[magic_pockets]                (1)
Source=node/view/full.tpl      (2)
MatchFile=magic_pocket.tpl     (3)
Subdir=templates               (4)
Match[class_identifier]=pocket (5)
Match[section]=34              (6)
...                            ...
  1. The name of the override.
  2. The template that should be overridden.
  3. The alternate template that should be used.
  4. The location of the override templates.
  5. Match condition #1
  6. Match condition #2

class/edit.tpl

Module/view: class / edit

Condition

Description

class

Matches the ID number of the class.

class/groupedit.tpl

Module/view: class / groupedit

Condition

Description

object

Matches the ID number of class group.

class/view.tpl

Module/view: class / view

Condition

Description

class

Matches the ID number of the class.

class_identifier

Matches the identifier of the class (for example "folder").

content/advancedsearch.tpl

Module/view: content / advancedsearch

Condition

Description

section

Matches the number of the section in which the search was conducted.

content/browse.tpl

Module/view: content / browse

Condition

Description

object

Matches the ID number of the object.

node

Matches the ID number of the node.

parent_node

Matches the ID number of the parent node.

class

Matches the ID number of the class which the object is an instance of.

class_identifier

Matches the identifier of the class which the object is an instance of.

view_offset

Matches the offset view parameter.

depth

Matches the depth of the node. The depth of a top level node is 1.

navigation_part_identifier

Matches the identifier of the navigation part.

url_alias

Matches the virtual URL of the node.

content/collectedinfo/*.tpl

Module/view: content / collectinformation

Condition

Description

object

Matches the ID number of the object.

node

Matches the ID number of the node.

parent_node

Matches the ID number of the parent node.

class

Matches the ID number of the class which the object is an instance of.

class_identifier

Matches the identifier of the class which the object is an instance of.

depth

Matches the depth of the node. The depth of a top level node is 1.

navigation_part_identifier

Matches the identifier of the navigation part.

url_alias

Matches the virtual URL of the node.

content/collectedinfo/*.tpl

Module/view: content / collectedinfo

Condition

Description

object

Matches the ID number of the object.

node

Matches the ID number of the node.

parent_node

Matches the ID number of the parent node.

class

Matches the ID number of the class which the object is an instance of.

depth

Matches the depth of the node. The depth of a top level node is 1.

navigation_part_identifier

Matches the identifier of the navigation part.

url_alias

Matches the virtual URL of the node.

content/collectedinfomail/*.tpl

Module/view: content / collectinformation

Condition

Description

object

Matches the ID number of the object.

node

Matches the ID number of the node.

parent_node

Matches the ID number of the parent node.

class

Matches the ID number of the class which the object is an instance of.

class_identifier

Matches the identifier of the class which the object is an instance of.

depth

Matches the depth of the node. The depth of a top level node is 1.

navigation_part_identifier

Matches the identifier of the navigation part.

url_alias

Matches the virtual URL of the node.

content/datatype/edit/*.tpl

Module/view: none.

Condition

Description

class_identifier

Matches the identifier of the class.

attribute_identifier

Matches the identifier of the attribute.

content/datatype/view/*.tpl

Module/view: none.

Condition

Description

class_identifier

Matches the identifier of the class.

attribute_identifier

Matches the identifier of the attribute.

content/edit.tpl

Module/view: content / edit

Condition

Description

object

Matches the ID number of the object.

class

Matches the ID number of the class which the object is an instance of.

class_identifier

Matches the identifier of the class which the object is an instance of.

section

Matches the number of the section which the object belongs to.

class_group

Matches the ID number of the group that the class which the object is an instance of belongs to.

content/history.tpl

Module/view: content / history

Condition

Description

object

Matches the ID number of the object.

class

Matches the ID number of the class which the object is an instance of.

class_identifier

Matches the identifier of the class which the object is an instance of.

section

Matches the number of the section which the object belongs to.

content/search.tpl

Module/view: content / search

Condition

Description

section

Matches the number of the section in which the search was conducted.

content/tipafriend.tpl

Module/view: content / tipafriend

Condition

Description

object

Matches the ID number of the object.

class

Matches the ID number of the class which the object is an instance of.

class_identifier

Matches the identifier of the class which the object is an instance of.

class_group

Matches the ID number of the group that the class which the object is an instance of belongs to.

section

Matches the number of the section which the object belongs to.

node

Matches the ID number of the node.

parent_node

Matches the ID number of the parent node.

depth

Matches the depth of the node. The depth of a top level node is 1.

url_alias

Matches the virtual URL of the node.

content/tipafriendmail.tpl

Module/view: none.

Condition

Description

object

Matches the ID number of the object.

class

Matches the ID number of the class which the object is an instance of.

class_identifier

Matches the identifier of the class which the object is an instance of.

class_group

Matches the ID number of the group that the class which the object is an instance of belongs to.

section

Matches the number of the section which the object belongs to.

node

Matches the ID number of the node.

parent_node

Matches the ID number of the parent node.

depth

Matches the depth of the node. The depth of a top level node is 1.

url_alias

Matches the virtual URL of the node.

content/versions.tpl

Module/view: content / versions

Condition

Description

object

Matches the ID number of the object.

class

Matches the ID number of the class which the object is an instance of.

class_identifier

Matches the identifier of the class which the object is an instance of.

section_id

Matches the number of the section which the object belongs to.

content/versionview.tpl

Module/view: content / versionview

Condition

Description

navigation_part_identifier

Matches the identifier of the navigation part.

content/view/*.tpl

Module/view: content / view

Condition

Description

object

Matches the ID number of the object.

class

Matches the ID number of the class which the object is an instance of.

class_identifier

Matches the identifier of the class which the object is an instance of.

section

Matches the number of the section which the object belongs to.

class_group

Matches the ID number of the group that the class which the object is an instance of belongs to.

layout/set.tpl

Module/view: layout / set

Condition

Description

layout

Matches the name of the layout (for example "print", "fullpage", etc.).

node/view/*.tpl

Module/view: content / view

Condition

Description

object

Matches the ID number of the object.

node

Matches the ID number of the node.

parent_node

Matches the ID number of the parent node.

class

Matches the ID number of the class which the object is an instance of.

class_identifier

Matches the identifier of the class which the object is an instance of.

view_offset

Matches the offset view parameter.

depth

Matches the depth of the node. The depth of a top level node is 1.

section

Matches the number of the section which the object belongs to.

navigation_part_identifier

Matches the identifier of the navigation part.

viewmode

Matches the name of the view mode (full, line, etc.)

url_alias

Matches the virtual URL of the node.

class_group

Matches the ID number of the group that the class which the object is an instance of belongs to.

parent_class

Matches the ID number of the parent class.

parent_class_identifier

Matches the identifier of the parent class.

node/view/pdf.tpl

Module/view: content / pdf

Condition

Description

object

Matches the ID number of the object.

node

Matches the ID number of the node.

parent_node

Matches the ID number of the parent node.

class

Matches the ID number of the class which the object is an instance of.

class_identifier

Matches the identifier of the class which the object is an instance of.

depth

Matches the depth of the node. The depth of a top level node is 1.

url_alias

Matches the virtual URL of the node.

class_group

Matches the ID number of the group that the class which the object is an instance of belongs to.

pagelayout.tpl

Module/view: none.

Condition

Description

persistent_variable

Matches the value of the persistent variable if the "view" view of the "content" module was executed. (The persistent variable should be set in the "node/view/<view_mode>.tpl" template that was used by this view.)

[any]

The pagelayout may be overridden using the same keys that are available for the view which was used within the request. For example, if the "view" view of the "content" module was accessed, then the override conditions of that view will be matched. This makes it possible to create a pagelayout override that will be triggered when, for example, nodes referencing objects that belong to a certain section are requested.

workflow/edit.tpl

Module/view: workflow / edit

Condition

Description

workflow

Matches the ID number of the workflow.

workflow/groupedit.tpl

Module/view: workflow / groupedit

Condition

Description

workflowgroup

Matches the ID number of the workflow group.

workflow/view.tpl

Module/view: workflow / view

Condition

Description

workflow

Matches the ID number of the workflow.

Balazs Halasy (09/03/2005 8:41 am)

Balazs Halasy (21/10/2005 12:20 pm)


Comments

  • OR conditions

    Is there a way to specify OR conditions ? ie : node 43 OR node 56 ?
    • Re: OR conditions

      No, but you can place 2 groups in override.ini(.append.php) like in the following example:

      [magic_pockets_43]
      Source=node/view/full.tpl
      MatchFile=magic_pocket.tpl
      Subdir=templates
      Match[node]=43

      [magic_pockets_56]
      Source=node/view/full.tpl
      MatchFile=magic_pocket.tpl
      Subdir=templates
      Match[node]=56

      (Note that the group name must be diffent.)

      If you have set of many such nodes, you may consider creating a special class for those nodes or place them in special section (do not forget on permission settings in this case).
  • Override a pagelayout_bodycontent

    Suppose pagelayout.tpl as follows:

    "--------
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "" title="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="{$site.http_equiv.Content-language|wash}" lang="{$site.http_equiv.Content-language|wash}">

    <head>

    {include uri="design:pagelayout_style.tpl"}
    {include uri="design:pagelayout_javascript.tpl"}

    {literal}
    <!--[if lt IE 6.0]>
    <style>
    div#maincontent-design { width: 100%; } /* This is needed to avoid width bug in IE 5.5 */
    </style>
    <![endif]-->
    {/literal}

    {include uri="design:page_head.tpl"}

    </head>
    <body>

    <div id="allcontent">

    <div id="topcontent">
    {include uri="design:pagelayout_topcontent.tpl"}
    </div>{* id="topcontent" *}

    <hr class="hide" />

    {include uri="design:pagelayout_topmenu.tpl"}

    <hr class="hide" />

    {include uri="design:pagelayout_path.tpl"}

    {include uri="design:pagelayout_bodycontent.tpl"}

    <hr class="hide" />

    {include uri="design:pagelayout_toolbarbottom.tpl"}

    {include uri="design:pagelayout_footer.tpl"}

    <div class="break"></div>
    </div>{* id="allcontent" *}

    <!--DEBUG_REPORT-->

    </body>
    </html>

    -------"

    I "override" pagelayout_bodycontent.tpl as follows:

    1. Put a new template in "frontpage/pagelayout_bodycontent.tpl".
    2. Write into override.ini.append.php
    [pagelayout_bodycontent_frontpage]
    Source=pagelayout_bodycontent.tpl
    MatchFile=frontpage/pagelayout_bodycontent.tpl
    Subdir=templates
    Match[node]=2

    But the result is not OK. The override pagelayout_bodycontent.tpl not run.
    • Re: Override a pagelayout_bodycontent

      try:
      [pagelayout_bodycontent_frontpage]
      Source=pagelayout.tpl
      MatchFile=frontpage/pagelayout_bodycontent.tpl
      Subdir=templates
      Match[node]=2
      
  • match condition on url_alias

    Hi,

    Just to mention that match on url_alias is recursive.

    Match[url_alias]=my_folder
    will override not only my_folder content, but also all its children
    (tried with pagelayout override).
    It's a good idea, to avoid use of section, but it's not really told in the doc.
    • Re: match condition on url_alias

      Also note that it is case sensitive, so when you upgrade to 3.10 or 4.0 you need to change all rules that use url_alias if you change url_alias format (it changes to a new format by default).
  • note on persistent_variable as override

    Note that it dosn't make sense to use persistent_variable as a override for node/view/* templates (since it is generated during the prossing of the node/view/* template), what it is ment for is to be able to override the pagelayout based on the persistent_variable..

    Basicly you can have something like this in a node template:
    {if $some_value|eq( 'something' )}
    {set scope=global persistent_variable='caramba'}
    {/if}
    


    And then have a override rule for your page layout like this:
    [test_side_layout]
    Source=pagelayout.tpl
    MatchFile=pagelayout_caramba.tpl
    Subdir=templates
    Match[persistent_variable]=caramba