Vylepsena verze stromu kategorii
[mirrors/SokoMan.git] / assistants / category-tree.inc.php
CommitLineData
661e2988
TM
1<pre><?php
2$result = $this->db->safe_query_fetch('SELECT * FROM category');
3
4function addleaf(&$tree, $levels, $category='') {
5 if(!count($levels)) return;
6 $current = array_shift($levels);
7 $category .= '/'.$current;
8 if(!isset($tree[$current])) $tree[$current] = array();
9 $tree[$current]['__PATH__'] = $category;
10 addleaf($tree[$current], $levels, $category);
11}
12
13$tree = array();
14foreach($result as $row) {
15 $row_parts = preg_split('/\//', $row['category_name']);
16 addleaf($tree, $row_parts);
17}
18
2871360b
TM
19function render_tree($tree, $pathindex='__PATH__') {
20 if(!is_array($tree)) return '';
21 $html='<menu>';
22 foreach($tree as $name => $subtree) if($name != $pathindex) {
23 $html.='<li><b>'.$name.'</b> <small>('.$subtree[$pathindex].')</small>'.render_tree($subtree).'</li>';
24 }
25 $html.='</menu>';
26 return $html;
27}
28echo render_tree($tree);
29//print_r($tree);
This page took 0.108954 seconds and 4 git commands to generate.