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.

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.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: