What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
{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>