public function menu() { $this->checkUser(); if (isset($_SESSION[C('USER_AUTH_KEY')])) { //显示菜单项 $menu = array(); if (isset($_SESSION['menu' . $_SESSION[C('USER_AUTH_KEY')]])) { //如果已经缓存,直接读取缓存 $menu = $_SESSION['menu' . $_SESSION[C('USER_AUTH_KEY')]]; } else { //读取数据库模块列表生成菜单项 $node = M("Node"); $map['level'] = 2; $map['status'] = 1; $list = $node->where($map)->field('id,name,pid,title')->order('sort asc')->select(); $accessList = $_SESSION['_ACCESS_LIST']; foreach ($list as $key => $module) { if (isset($accessList[strtoupper(APP_NAME)][strtoupper($module['name'])]) || $_SESSION['administrator']) { //设置模块访问权限 $module['access'] = 1; $menu[$key] = $module; } } //缓存菜单访问 $_SESSION['menu' . $_SESSION[C('USER_AUTH_KEY')]] = $menu; } if (isset($_GET['tag'])) { $tag = $_GET['tag']; if (0 == $tag) { $this->assign('menuTitle', '扩展功能'); } else { $mapid['id'] = array('eq', $tag); $node = M("Node"); $title = $list = $node->where($mapid)->getField('title'); $this->assign('menuTitle', $title); } $this->assign('menuTag', $tag); } else { $this->assign('menuTitle', '内容管理'); } $this->assign('menu', $menu); } //显示站点栏目 $cate = new CategoryModel(); $this->cate = $list = $cate->getMyCategory(); //加载栏目 $menu = $cate->getMyCategory1(); //加载栏目 $menu = arrToTree($menu, 0); $tree = outMenuNode($menu); $this->assign('tree', $tree); $this->display(); }
function outMenuNode($tree) { $html = ''; foreach ($tree as $t) { if (empty($t['pid'])) { $url = U($t['modelname'] . '/index', array('catid' => $t['id'])); $html .= "<li><a href=\"" . $url . "\">{$t['catname']}</a></li>"; } else { $html .= "<li class=\"m-expanded\"><span>{$t['catname']}</span><ul>"; $html .= outMenuNode($t['pid']); $html = $html . '</ul></li>'; } } return $html; }