Path / documentation / ez publish / technical manual / 4.x / reference / template control structures

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

Template control structures

Conditional control

if Allows conditional control by the way of an IF-THEN-ELSE mechanism.
switch Allows conditional control of code execution.


do Creates a do...while loop.
for Creates a generic for loop.
foreach Iterates over arrays in different ways.
while Creates a while loop.


section Deprecated looping, branching, etc.

Balazs Halasy (22/02/2005 12:59 pm)

Balazs Halasy (07/07/2005 11:44 am)


  • substitute for {section loop=..

    you are saying here that the {section -construct should be avoided in the future. since i'm relativly new to ez-publish i'd like to get used to the the 'right' ways of template programming right from the beginning. but i cannot find a way to loop over results from a fetch differently than the old {section loop=... way.

    i tried it with {while and {for statments with no success..

    what is best practice for looping over results using the new control structures?
    • Re: substitute for {section loop=..

      Hi Patrick,

      You should try the {foreach} statement.
      It works nearly the same way as the section loop.

      If you want to add conditions, then add a {if} statement.
  • An example of using a foreach loop instead of the deprecated section?

    Hi. Could someone provide an example of how to use a foreach loop instead of the deprecated section loop. Let's say I have the following code and want to use a foreach loop instead of a section:
    <div class="listItem">
    {default node_name=$ node_url=$node.url_alias}
    {foreach (
    {section show=$node_url}<a href={$node_url|ezurl}>{/section}{$node_name|wash}{section show=$node_url}</a>{/section}{/default}

  • Refer to "logical operators"

    Documentation for each of the control statements should refer to this list of "logical operators" that can be used in <condition> clauses: