/** * 获取菜单 */ protected function getMenus() { //获取系统菜单导航 $map['status'] = array('gt', 0); $SystemMenuModel = D('SystemMenu'); $tree = new \Common\Util\Tree(); $all_admin_menu_list = $tree->list_to_tree($SystemMenuModel->where($map)->select()); //所有系统菜单 //设置数组key为菜单ID foreach ($all_admin_menu_list as $key => $val) { $all_menu_list[$val['id']] = $val; } //获取功能模块的后台菜单列表 $moule_list = D('StoreModule')->where($map)->select(); //获取所有安装并启用的功能模块 $all_module_menu_list = array(); foreach ($moule_list as $key => $val) { $menu_list_item = $tree->list_to_tree(json_decode($val['admin_menu'], true)); $all_module_menu_list[] = $menu_list_item[0]; } //设置数组key为菜单ID foreach ($all_module_menu_list as &$menu) { $new_all_module_menu_list[$menu['id']] = $menu; } //合并系统核心菜单与功能模块菜单 if ($new_all_module_menu_list) { $all_menu_list += $new_all_module_menu_list; } $current_menu = $SystemMenuModel->getCurrentMenu(); //当前菜单 $parent_menu = $SystemMenuModel->getParentMenu($current_menu['id']); //获取面包屑导航 foreach ($parent_menu as $key => $val) { $parent_menu_id[] = $val['id']; } $current_root_menu = $SystemMenuModel->getRootMenuById($current_menu['id']); //当前菜单的顶级菜单 $side_menu_list = $all_menu_list[$current_root_menu['id']]['_child']; //左侧菜单 $this->assign('__ALL_MENU_LIST__', $all_menu_list); //所有菜单 $this->assign('__SIDE_MENU_LIST__', $side_menu_list); //左侧菜单 $this->assign('__PARENT_MENU__', $parent_menu); //当前菜单的所有父级菜单 $this->assign('__PARENT_MENU_ID__', $parent_menu_id); //当前菜单的所有父级菜单的ID $this->assign('__CURRENT_ROOTMENU__', $current_root_menu['id']); //当前主菜单 $this->assign('__USER__', session('user_auth')); //用户登录信息 }
/** * 获取分类树,指定分类则返回指定分类的子分类树,不指定则返回所有分类树,指定分类若无子分类则返回同级分类 * @param integer $id 分类ID * @param boolean $field 查询字段 * @return array 分类树 * @author jry <*****@*****.**> */ public function getCategoryTree($id = 0, $limit = null, $group = 1, $field = 'id,pid,title,icon,create_time,sort') { //获取当前分类信息 if ((int) $id > 0) { $info = $this->find($id); $id = $info['id']; } //获取所有分类 $map['status'] = array('eq', 1); $map['group'] = array('eq', $id ? $info['group'] : $group); $tree = new \Common\Util\Tree(); $list = $this->field($field)->where($map)->order('sort asc, id asc')->select(); $list = $tree->list_to_tree($list, $pk = 'id', $pid = 'pid', $child = '_child', $root = (int) $id); //返回当前分类的子分类树 if ($limit) { $list = array_slice($list, 0, $limit); } if (!$list) { return $this->getSameLevelCategoryTree($id); } return $list; }
/** * 获取分类树,指定分类则返回指定分类的子分类树,不指定则返回所有分类树,指定分类若无子分类则返回同级分类 * @param integer $id 分类ID * @param boolean $field 查询字段 * @return array 分类树 * @author jry <*****@*****.**> */ public function getCategoryTree($id = 0, $limit = null, $page = 1, $group = 1, $field = true) { //获取当前分类信息 if ((int) $id > 0) { $info = $this->find($id); $id = $info['id']; } //获取所有分类 $map['status'] = array('eq', 1); $map['group'] = array('eq', $id ? $info['group'] : $group); $tree = new \Common\Util\Tree(); $list = $this->field($field)->where($map)->order('sort asc, id asc')->select(); // 拼接分类地址 foreach ($list as $key => &$val) { $val['href'] = U($this->moduleName . '/Index/lists', array('cid' => $val['id'])); } // 转换成树结构 $list = $tree->list_to_tree($list, $pk = 'id', $pid = 'pid', $child = '_child', $root = (int) $id); //返回当前分类的子分类树 if ($limit) { $list = array_slice($list, 0, $limit); } if (!$list) { return $this->getSameLevelCategoryTree($id); } return $list; }
/** * 初始化方法 * @author jry <*****@*****.**> */ protected function _initialize() { //登录检测 if (!is_login()) { //还没登录跳转到登录页面 $this->redirect('Admin/Public/login'); } //权限检测 if (!D('UserGroup')->checkAuth()) { $this->error('权限不足!'); } //获取系统菜单导航 $map['status'] = array('eq', 1); if (!C('DEVELOP_MODE')) { //是否开启开发者模式 $map['dev'] = array('neq', 1); } $tree = new \Common\Util\Tree(); $all_admin_menu_list = $tree->list_to_tree(D('SystemMenu')->where($map)->select()); //所有系统菜单 //设置数组key为菜单ID foreach ($all_admin_menu_list as $key => $val) { $all_menu_list[$val['id']] = $val; } //获取功能模块的后台菜单列表 $moule_list = D('SystemModule')->where(array('status' => 1))->select(); //获取所有安装并启用的功能模块 $all_module_menu_list = array(); foreach ($moule_list as $key => $val) { $menu_list_item = $tree->list_to_tree(json_decode($val['admin_menu'], true)); $all_module_menu_list[] = $menu_list_item[0]; } //设置数组key为菜单ID foreach ($all_module_menu_list as &$menu) { $new_all_module_menu_list[$menu['id']] = $menu; } //合并系统核心菜单与功能模块菜单 if ($new_all_module_menu_list) { $all_menu_list += $new_all_module_menu_list; } $current_menu = D('SystemMenu')->getCurrentMenu(); //当前菜单 $parent_menu = D('SystemMenu')->getParentMenu($current_menu['id']); //获取面包屑导航 foreach ($parent_menu as $key => $val) { $parent_menu_id[] = $val['id']; } $current_root_menu = D('SystemMenu')->getRootMenuById($current_menu['id']); //当前菜单的顶级菜单 $side_menu_list = $all_menu_list[$current_root_menu['id']]['_child']; //左侧菜单 $this->assign('__ALL_MENU_LIST__', $all_menu_list); //所有菜单 $this->assign('__SIDE_MENU_LIST__', $side_menu_list); //左侧菜单 $this->assign('__PARENT_MENU__', $parent_menu); //当前菜单的所有父级菜单 $this->assign('__PARENT_MENU_ID__', $parent_menu_id); //当前菜单的所有父级菜单的ID $this->assign('__CURRENT_ROOTMENU__', $current_root_menu['id']); //当前主菜单 $this->assign('__USER__', session('user_auth')); //用户登录信息 }
/** * 获取分类树,指定分类则返回指定分类的子分类树,不指定则返回所有分类树,指定分类若无子分类则返回同级分类 * @param integer $id 分类ID * @param boolean $field 查询字段 * @return array 分类树 * @author jry <*****@*****.**> */ public function getCategoryTree($id = 0, $group = 1, $field = true) { //获取当前分类信息 if ((int) $id > 0) { $info = $this->find($id); $id = $info['id']; } //获取所有分类 $map['status'] = array('eq', 1); $map['group'] = array('eq', $id ? $info['group'] : $group); $tree = new \Common\Util\Tree(); $list = $this->field($field)->where($map)->order('sort asc')->select(); $list = $this->getCategoryCount($list); //获取分类的文档数目 $list = $tree->list_to_tree($list, $pk = 'id', $pid = 'pid', $child = '_child', $root = (int) $id); //返回当前分类的子分类树 if (!$list) { return $this->getSameLevelCategoryTree($id); } return $list; }