View Helper - Cycle

Introduction

The Cycle helper is used to alternate a set of values.

Basic Usage

To add elements to cycle just specify them in constructor:

1
2
3
4
5
6
7
8
<table>
    <?php foreach ($this->books as $book): ?>
        <tr style="background-color: <?php echo $this->cycle(array('#F0F0F0', '#FFF'))
                                                     ->next() ?>">
            <td><?php echo $this->escapeHtml($book['author']) ?></td>
        </tr>
    <?php endforeach ?>
</table>

The output:

1
2
3
4
5
6
7
8
<table>
    <tr style="background-color: #F0F0F0">
       <td>First</td>
    </tr>
    <tr style="background-color: #FFF">
       <td>Second</td>
    </tr>
</table>

Or use assign(array $data) method and moving in backwards order:

1
2
3
4
5
6
7
8
9
<?php $this->cycle()->assign(array('#F0F0F0', '#FFF')) ?>

<table>
    <?php foreach ($this->books as $book): ?>
    <tr style="background-color: <?php echo $this->cycle()->prev() ?>">
       <td><?php echo $this->escapeHtml($book['author']) ?></td>
    </tr>
    <?php endforeach ?>
</table>

The output:

1
2
3
4
5
6
7
8
<table>
    <tr style="background-color: #FFF">
        <td>First</td>
    </tr>
    <tr style="background-color: #F0F0F0">
        <td>Second</td>
    </tr>
</table>

Working with two or more cycles

To use two cycles you have to specify the names of cycles. Just set second parameter in cycle method: $this->cycle(array('#F0F0F0', '#FFF'), 'cycle2')

1
2
3
4
5
6
7
8
9
<table>
    <?php foreach ($this->books as $book): ?>
        <tr style="background-color: <?php echo $this->cycle(array('#F0F0F0', '#FFF'))
                                                     ->next() ?>">
            <td><?php echo $this->cycle(array(1, 2, 3), 'number')->next() ?></td>
            <td><?php echo $this->escapeHtml($book['author']) ?></td>
        </tr>
    <?php endforeach ?>
</table>

You can also use assign($data, $name) and setName($name) methods:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
<?php
$this->cycle()->assign(array('#F0F0F0', '#FFF'), 'colors');
$this->cycle()->assign(array(1, 2, 3), 'numbers');
?>
<table>
    <?php foreach ($this->books as $book): ?>
        <tr style="background-color: <?php echo $this->cycle()->setName('colors')->next() ?>">
            <td><?php echo $this->cycle()->setName('numbers')->next() ?></td>
            <td><?php echo $this->escapeHtml($book['author']) ?></td>
        </tr>
    <?php endforeach ?>
</table>

Table Of Contents

Previous topic

View Helper - BasePath

Next topic

View Helper - Doctype

This Page

Note: You need to stay logged into your GitHub account to contribute to the documentation.

Edit this document

Edit this document

The source code of this file is hosted on GitHub. Everyone can update and fix errors in this document with few clicks - no downloads needed.

  1. Login with your GitHub account.
  2. Go to View Helper - Cycle on GitHub.
  3. Edit file contents using GitHub's text editor in your web browser
  4. Fill in the Commit message text box at the end of the page telling why you did the changes. Press Propose file change button next to it when done.
  5. On Send a pull request page you don't need to fill in text anymore. Just press Send pull request button.
  6. Your changes are now queued for review under project's Pull requests tab on GitHub.