后台框架ace,目录数据由后台配置,视图界面再读取数据渲染,记之…
目录数据配置
sidebar.php
<?php /** * 后台侧栏导航配置 */ return [ 'sidebarItems' => [ 'index' => [ "link" => '?r=index/index', "title" => "控制台", "icon" => "fa fa-tachometer" ], 'goods' => [ "open" => "", "link" => null, "title" => "商品管理", "icon" => "fa fa-desktop", "submenu" => [ 'goods-list' => [ "link" => '?r=goods/goods/goods-list', "title" => "商品列表", "icon" => "fa fa-caret-right", ], 'goods-add' => [ "link" => '?r=goods/goods/goods-add', "title" => "添加新商品", "icon" => "fa fa-caret-right", ], 'category-list' => [ "link" => '?r=goods/category/category-list', "title" => "商品分类", "icon" => "fa fa-caret-right", ], 'brand-list' => [ "link" => '?r=goods/brand/brand-list', "title" => "商品品牌", "icon" => "fa fa-caret-right", ], 'type-list' => [ "link" => '?r=goods/type/type-list', "title" => "商品类型", "icon" => "fa fa-caret-right", ], ] ], 'store' => [ "open" => "", "link" => null, "title" => "商城管理", "icon" => "glyphicon glyphicon-list", "submenu" => [ 'scroll-list' => [ "link" => '?r=store/scroll/scroll-list', "title" => "首页轮播图", "icon" => "fa fa-caret-right", ] ] ] ] ];
视图渲染部分
<ul class="nav nav-list"> <?php function genOneLi($item) { if(empty($item)) return ''; $htmlFormat = '<li class="%s %s"> <a href="%s" class="%s"> <i class="menu-icon %s"></i> <span class="menu-text"> %s </span> %s </a> <b class="arrow"></b> %s </li>'; $itemHtml = sprintf($htmlFormat, empty($item['open'])?'':'open active',empty($item['active'])?'':'active', $item['link'], empty($item['submenu'])?'':'dropdown-toggle', empty($item['icon'])?'':$item['icon'], $item['title'],empty($item['submenu'])?'':'<b class="arrow fa fa-angle-down"></b>', empty($item['submenu'])?'':genSubmenu($item)); return $itemHtml; } function genSubmenu($item) { $submenu = '<ul class="submenu">'; foreach ($item['submenu'] as $ii) { $submenu .= genOneLi($ii); } return $submenu . '</ul>'; } ?> <?php foreach ($this->params['sidebarItems'] as $key=>$item): ?> <li class="<?= empty($item['open'])?'':'open active' ?> <?= empty($item['active'])?'':'active' ?>"> <a href="<?= $item['link'] ?>" class="<?= empty($item['submenu'])?'':'dropdown-toggle' ?>"> <i class="menu-icon <?= $item['icon'] ?>"></i> <span class="menu-text"> <?= $item['title'] ?> </span> <?= empty($item['submenu'])?'':'<b class="arrow fa fa-angle-down"></b>' ?> </a> <b class="arrow"></b> <?php if(!empty($item['submenu'])): ?> <?= genSubmenu($item) ?> <?php endif;?> </li> <?php endforeach;?> </ul><!-- /.nav-list -->