zuborawka / cakephp-thread-utility
Utility class to handle threaded data which genereted by CakePHP Model::find('threaded')
Installs: 12
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:cakephp-plugin
Requires
- php: >=5.2.8
- composer/installers: *
This package is not auto-updated.
Last update: 2024-12-31 08:43:26 UTC
README
Utility class to handle threaded data generated by CakePHP Model::find('threaded')
http://blog.xao.jp/blog/cakephp/reconstruct-threaded-data-to-table-rows/
Usage
in CategoriesController
// Category model acts as Tree
$threaded = $this->Category->find('threaded'); $tableRows = ThreadUtility::threadToRows($threaded);
in view
<table> <tbody> <?php foreach ($tableRows as $tableRow): ?> <tr> <?php foreach ($tableRow as $tableCell): $colspan = $tableCell['colspan'] > 1 ? ' colspan="' . $tableCell['colspan'] . '"' : ''; $rowspan = $tableCell['rowspan'] > 1 ? ' rowspan="' . $tableCell['rowspan'] . '"' : ''; $name = h($tableCell['Category']['name']); printf('<td%s%s>%s</td>', $colspan, $rowspan, $name); endforeach; ?> </tr> <?php endforeach; ?> </tbody> </table>
an example of output
<table> <tbody> <tr> <td rowspan="2">Music</td> <td>Pops</td> </tr> <tr> <td>Jazz</td> </tr> <tr> <td colspan="2">Architecture</td> </tr> <tr> <td>Food</td> <td>Pasta</td> </tr> </tbody> </table>