KHIT

top.inc.php_v2

Feb 6th, 2013
40
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.17 KB | None | 0 0
  1.                 <div class="top-menu">
  2.                     <div class="top-menu-window">
  3.                         <?php
  4.                             if($stmt=$mysqli->prepare('SELECT `page_id`, `title`, `parent` FROM `content`')) {
  5.                                 $stmt->execute();
  6.                                 $stmt->bind_result($menu_id, $menu_title, $menu_parent);
  7.                                 $menuitems = array ();
  8.                                 while($stmt->fetch()) {
  9.                                     $menuitems[] = array('page_id' => $menu_id, 'parent_id' => $menu_parent, 'title' => $menu_title);
  10.                                 }
  11.                                 $stmt->close();
  12.                                 // PHP sorting
  13.                                 $tmp = array(0 => array('title' => 'root', 'children'=>array()));
  14.                                 foreach($menuitems as $item) {
  15.                                     $tmp[$item['page_id']] = isset($tmp[$item['page_id']]) ? array_merge($tmp[$item['page_id']],$item) : $item;
  16.                                     $tmp[$item['parent_id']]['children'][] =& $tmp[$item['page_id']];
  17.                                     }
  18.                                
  19.                                 // Make me a root
  20.                                 $root = array($tmp[0]);
  21.                                
  22.                                 // Recursive traversal
  23.                                 function traverse($array){
  24.                                     $str = '<ul>';
  25.                                     foreach($array as $item) {
  26.                                         $str .= '<li><a href="#">'.$item['title'].'</a>'.(isset($item['children'])&&$item['children']?traverse($item['children']):'').'</li>';
  27.                                     }
  28.                                     $str .= '</ul>';
  29.                                     return $str;
  30.                                 }
  31.                                 //Output something
  32.                                 echo traverse($root);
  33.                                 }
  34.                             ?>
  35.                        
  36.                     </div>
  37.                 </div>
Advertisement
Add Comment
Please, Sign In to add comment