Loop Metadata
Sugar exposes loop metadata via the $loop variable inside s:foreach and s:forelse directives. Use it to style first/last items, show counters, or branch on odd/even rows.
TIP
$loop is only available inside loop directives. It is not a global template variable.
Common Fields
$loop->index- Zero-based index.$loop->iteration- One-based index.$loop->count- Total item count.$loop->first- True on the first item.$loop->last- True on the last item.$loop->odd/$loop->even- Odd/even row flags.
Examples
html
<ul s:foreach="$items as $item">
<li s:class="['first' => $loop->first, 'last' => $loop->last]">
<?= $loop->iteration ?>. <?= $item ?>
</li>
</ul>html
<table>
<tr s:foreach="$rows as $row" s:class="['odd' => $loop->odd, 'even' => $loop->even]">
<td><?= $row['label'] ?></td>
<td><?= $row['value'] ?></td>
</tr>
</table>Details
Need the loop from s:forelse?
$loop is available in the loop body just like s:foreach. The s:empty fallback does not have loop metadata.