$dataset[$node['parent']]['child'][$id] =& $node; } } return $tree; } $dataset[0] = array('name' => 'Menu 1 ', 'parent' => null); $dataset[1] = array('name' => 'Menu 2', 'parent' => null); $dataset[2] = array('name' => 'Menu 3', 'parent' => null); $dataset[3] = array('name' => 'Menu 4 (2.1)', 'parent' => 1); $dataset[4] = array('name' => 'Menu 5 (1.1)', 'parent' => 0); $dataset[5] = array('name' => 'Menu 6 (2.1.1)', 'parent' => 3); $dataset[6] = array('name' => 'Menu 7 (1.1.1)', 'parent' => 4); $dataset[7] = array('name' => 'Menu 8 (3.1)', 'parent' => 2); $dataset[8] = array('name' => 'Menu 9 (2.2)', 'parent' => 1); $dataset[9] = array('name' => 'Menu 10', 'parent' => null); $tree = menuTree($dataset); print '<h2>Tree</h2>'; display_menu($tree); print '<h2>Dataset</h2>'; print '<pre>'; print_r($dataset); print '<pre>'; function display_menu($nodes, $indent = 0) { foreach ($nodes as $node) { print str_repeat(' ', $indent * 4); print $node['name']; print '<br/>'; if (isset($node['child'])) { display_menu($node['child'], $indent + 1); }
public function MenuLeft() { global $systemDirs, $siteName, $vkUser, $accessRights; // Иконка в меню по-умолчанию, если она не указана в файле конфигурации $defaultIcon = 'fa-question-circle'; /* Название файла с конфигурацией для каждого пункта меню. Он должен лежать в каждой папке, которая является пунктом меню. Он должен содержать несколько строк информации: 1 строка - Название пункта меню. 2 строка - Приоритет пункта меню (от 1 до 10). Он определяет место пункта в меню чем выше приоритет, тем выше в меню этот пункт. 3 строка - Иконка. */ $menuConfig = 'index.nam'; $structure = menuTree($menuConfig, $systemDirs); foreach ($structure as $name => $value) { ${$name} = $value; } ?> <!-- .aside --> <aside class="bg-dark aside-sm" id="nav"> <section class="vbox"> <!-- header --> <header class="dker nav-bar"> <a class="btn btn-link visible-xs" data-toggle="class:nav-off-screen" data-target="#nav"> <i class="fa fa-bars"></i> </a> <a href="<?php echo $_SERVER["PHP_SELF"]; ?> " class="nav-brand"><?php echo $siteName; ?> </a> <a class="btn btn-link visible-xs" data-toggle="class:show" data-target=".nav-user"> <i class="fa fa-comment-o"></i> </a> </header> <!-- /header --> <section> <!-- user --> <div class="lter nav-user hidden-xs pos-rlt"> <div class="nav-avatar pos-rlt"> <a href="#" class="thumb-sm avatar animated rollIn" data-toggle="dropdown"> <img src="<?php echo $_SESSION['photo_rec']; ?> " alt="" class=""> <span class="caret caret-white"></span> </a> <ul class="dropdown-menu m-t-sm animated fadeInLeft"> <span class="arrow top"></span> <li> <a href="#">Настройки</a> </li> <li> <a href="<?php echo path_root(); ?> users/profile.php">Профиль</a> </li> <li> <a href="#"> <span class="badge bg-danger pull-right">3</span> Уведомления </a> </li> <li class="divider"></li> <li> <a href="<?php echo path_root(); ?> todo/docs.html">Помощь</a> </li> <li> <a href="<?php echo path_root(); ?> ?logout">Выйти</a> </li> </ul> <div class="visible-xs m-t m-b"> <a href="#" class="h3"><?php echo $vkUser['first_name'] . ' ' . $vkUser['last_name']; ?> </a> <p><i class="fa fa-dot-circle-o"></i></p> </div> </div> <?php if ($accessRights >= 2) { ?> <div class="nav-msg"> <a href="<?php echo $_SERVER['PHP_SELF']; ?> ?debugModeToggle" class="pull-right"><i class="fa fa-cog" data-toggle="tooltip" data-placement="top" title="Режим отладки"></i></a> <?php // переключатель режима отладки ?> </div> <?php } ?> </div> <!-- /user --> <!-- menu --> <nav class="nav-primary hidden-xs"> <ul class="nav"><?php // ЦИКЛ МЕНЮ foreach ($menu as $men) { if ($i == 0) { $menuString = ''; } else { $menuString = $men['path'] . '/'; } // Маркер active $scriptDir = explode('/', substr(dirname($_SERVER['PHP_SELF']), 1)); if ($scriptDir[0] == $men['path']) { $markerActive = 'active'; } // Маркер submenu foreach ($submenu as $sub) { if ($men['path'] == $sub['path1']) { $submarker = 1; } } if ($submarker) { $markerSubmenu = 'dropdown-submenu'; $openLink = '<a href="#" class="dropdown-toggle" data-toggle="dropdown">'; } else { $openLink = '<a href="' . path_root() . $men['path'] . '">'; } // Маркер Class if ($markerActive || $markerSubmenu) { $markerClass = ' class="'; if ($markerSubmenu) { $markerClass .= $markerSubmenu; if ($markerActive) { $markerClass .= ' ' . $markerActive; } } elseif ($markerActive) { $markerClass .= $markerActive; } $markerClass .= '"'; } // HTML ОТКРЫТИЕ ПУНКТА МЕНЮ ?> <li<?php echo $markerClass; ?> > <?php echo $openLink; ?> <i class="fa <?php echo $men['icon']; ?> "></i> <span><?php echo $men['name']; ?> </span></a><?php // HTML ВЫВОД ПОДМЕНЮ if ($submarker) { ?> <ul class="dropdown-menu"><?php foreach ($submenu as $sub) { if ($sub['path1'] == $men['path']) { $submenuPath = path_root() . $sub['path1'] . '/' . $sub['path2']; ?> <li> <a href="<?php echo $submenuPath; ?> "><?php echo $sub['name']; ?> </a> </li><?php } } ?> </ul><?php } // HTML ЗАКРЫТИЕ ПУНКТА МЕНЮ ?> </li><?php unset($submarker); unset($markerClass); unset($markerSubmenu); unset($markerActive); } ?> <li> <a href="<?php echo path_root(); ?> todo/index.html"> <i class="fa fa-eye"></i> <span>todo</span> </a> </li> </ul> </nav> <?php echo Html::Checkpoint('note'); ?> </section> <!-- /menu --> <!-- footer --> <footer class="footer bg-gradient hidden-xs"> <a href="<?php echo $_SERVER['PHP_SELF']; ?> ?logout" class="btn btn-sm btn-link m-r-n-xs pull-right"> <i class="fa fa-power-off"></i> </a> <a href="#nav" data-toggle="class:nav-vertical" class="btn btn-sm btn-link m-l-n-sm"> <i class="fa fa-bars"></i> </a> </footer> <!-- /footer --> </section> </aside> <!-- /.aside --> <?php }