Exemplo n.º 1
0
            $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('&nbsp;', $indent * 4);
        print $node['name'];
        print '<br/>';
        if (isset($node['child'])) {
            display_menu($node['child'], $indent + 1);
        }
Exemplo n.º 2
0
    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 
    }