{cycle}
is used to alternate a set of values.
This makes it easy to for example, alternate between two or more colors
in a table, or cycle through an array of values.
Attribute Name | Type | Required | Default | Description |
---|---|---|---|---|
name | string | No | default | The name of the cycle |
values | mixed | Yes | N/A | The values to cycle through, either a comma delimited list (see delimiter attribute), or an array of values |
boolean | No | TRUE |
Whether to print the value or not | |
advance | boolean | No | TRUE |
Whether or not to advance to the next value |
delimiter | string | No | , | The delimiter to use in the values attribute |
assign | string | No | n/a | The template variable the output will be assigned to |
reset | boolean | No | FALSE |
The cycle will be set to the first value and not advanced |
You can {cycle}
through more than one set of values in
a template by supplying a name
attribute.
Give each {cycle}
an unique name
.
You can force the current value not to print with the
print
attribute set to FALSE
. This would be useful
for silently skipping a value.
The advance
attribute is used to repeat a value.
When set to FALSE
, the next call to {cycle}
will print
the same value.
If you supply the assign
attribute, the output of the
{cycle}
function will be assigned to a template variable
instead of being output to the template.
Example 8.2. {cycle}
{section name=rows loop=$data} <tr class="{cycle values="odd,even"}"> <td>{$data[rows]}</td> </tr> {/section}
The above template would output:
<tr class="odd"> <td>1</td> </tr> <tr class="even"> <td>2</td> </tr> <tr class="odd"> <td>3</td> </tr>