View Helper - HtmlList

Introduction

htmlList($items, $ordered, $attribs, $escape): generates unordered and ordered lists based on the $items passed to it. If $items is a multidimensional array, a nested list will be built. If the $escape flag is TRUE (default), individual items will be escaped using the view objects registered escaping mechanisms; pass a FALSE value if you want to allow markup in your lists.

Basic Usage

Unordered list

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
$items = array(
    'Level one, number one',
    array(
        'Level two, number one',
        'Level two, number two',
        array(
            'Level three, number one'
        ),
        'Level two, number three',
    ),
    'Level one, number two',
 );

echo $this->htmlList($items);

Output:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<ul>
    <li>Level one, number one
        <ul>
            <li>Level two, number one</li>
            <li>Level two, number two
                <ul>
                    <li>Level three, number one</li>
                </ul>
            </li>
            <li>Level two, number three</li>
        </ul>
    </li>
    <li>Level one, number two</li>
</ul>

Ordered list

1
echo $this->htmlList($items, true);

Output:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<ol>
    <li>Level one, number one
        <ol>
            <li>Level two, number one</li>
            <li>Level two, number two
                <ol>
                    <li>Level three, number one</li>
                </ol>
            </li>
            <li>Level two, number three</li>
        </ol>
    </li>
    <li>Level one, number two</li>
</ol>

HTML attributes

1
2
3
4
5
$attribs = array(
    'class' => 'foo',
);

echo $this->htmlList($items, false, $attribs);

Output:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<ul class="foo">
    <li>Level one, number one
        <ul class="foo">
            <li>Level two, number one</li>
            <li>Level two, number two
                <ul class="foo">
                    <li>Level three, number one</li>
                </ul>
            </li>
            <li>Level two, number three</li>
        </ul>
    </li>
    <li>Level one, number two</li>
</ul>

Escape Output

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
$items = array(
    'Level one, number <strong>one</strong>',
    'Level one, number <em>two</em>',
 );

// Escape output (default)
echo $this->htmlList($items);

// Don't escape output
echo $this->htmlList($items, false, false, false);

Output:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<!-- Escape output (default) -->
<ul class="foo">
    <li>Level one, number &lt;strong&gt;one&lt;/strong&gt;</li>
    <li>Level one, number &lt;em&gt;two&lt;/em&gt;</li>
</ul>

<!-- Don't escape output -->
<ul class="foo">
    <li>Level one, number <strong>one</strong></li>
    <li>Level one, number <em>two</em></li>
</ul>