chrisoconnell / cao-html-table
A Zend Framework 2 view helper to render an HTML Table
Installs: 1 011
Dependents: 0
Suggesters: 0
Security: 0
Stars: 5
Watchers: 2
Forks: 4
Open Issues: 2
Requires
- php: >=5.3.3
- zendframework/zendframework: 2.*
This package is not auto-updated.
Last update: 2025-04-26 17:09:16 UTC
README
Zend Framework 2 View Helper to render an HTML Table
The input can be either an array or an instance of CaoHtmlTable\Model\Table. The code will try to make to most of what its given.
Installation
Main Setup
By cloning project
- Install the CaoHtmlTable ZF2 module
by cloning it into
./vendor/
. - Clone this project into your
./vendor/
directory.
With composer
-
Add this project in your composer.json:
"require": { "chrisoconnell/cao-html-table": "dev-master" }
-
Now tell composer to download CaoHtmlTable by running the command:
$ php composer.phar update
Post installation
-
Enabling it in your
application.config.php
file.<?php return array( 'modules' => array( // ... 'CaoHtmlTable', ), // ... );
Example — Table with header row
-
Define table rows as an array of associative arrays.
$rows = array( array('header col1' => 'col1 row1', 'header col2' => 'col2 row1'), array('header col1' => 'col1 row2', 'header col2' => 'col2 row2'), );
Header row will be set from the keys of the first array.
-
Call view helper inside your view script (.phtml file).
echo $this->htmlTable($rows);
-
Which will output the following:
<table> <thead> <tr> <th>header col1</th><th>header col2</th> </tr> </thead> <tbody> <tr> <td>col1 row1</td><td>col2 row1</td> </tr> <tr> <td>col1 row2</td><td>col2 row2</td> </tr> </tbody> </table>
Notice that the keys of the array are mapped to the header row.
Example — Table without header row
-
Define table rows as an array of arrays.
$rows = array( array('col1 row1', 'col2 row1'), array('col1 row2', 'col2 row2'), );
-
Call view helper inside your view script (.phtml file).
echo $this->htmlTable($rows);
-
Which will output the following:
<table> <tbody> <tr> <td>col1 row1</td><td>col2 row1</td> </tr> <tr> <td>col1 row2</td><td>col2 row2</td> </tr> </tbody> </table>
Notice that no header row was output.
Example — Using instance of CaoHtmlTable\Model\Table
When you need more flexibility for the table — ie set caption, css class — then you need to create an instance of
CaoHtmlTable\Model\Table
to use as the view helper input.
-
Define the instance and set the data.
$rows = array( array('col1 row1', 'col2 row1'), array('col1 row2', 'col2 row2', 'col 3 row2'), ); $table = new CaoHtmlTable\Model\Table($rows); $table->setAttributes(array('class' => 'selected', 'id' => 'list')) ->setCaption('My Table Caption') ->setHeaderRow(array('Header 1', 'Header 2', 'Header 3'));
When setting the header row, the index of the header will be matched to the index of the
row. If a matching row index is not found, then the table cell will be set to
.
-
Call view helper inside your view script (.phtml file).
echo $this->htmlTable($table);
-
Which will output the following:
<table class="selected" id="list"> <caption>My Table Caption</caption> <thead> <tr> <th>Header 1</th><th>Header 2</th><th>Header 3</th> </tr> </thead> <tbody> <tr> <td>col1 row1</td><td>col2 row1</td><td> </td> </tr> <tr> <td>col1 row2</td><td>col2 row2</td><td>col 3 row2</td> </tr> </tbody> </table>