123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- <?php
- /**
- * lemocms
- * ============================================================================
- * 版权所有 2018-2027 lemocms,并保留所有权利。
- * 网站地址: https://www.lemocms.com
- * ----------------------------------------------------------------------------
- * 采用最新Thinkphp6实现
- * ============================================================================
- * Author: yuege
- * Date: 2019/8/2
- */
- namespace app\admin\controller;
- use app\admin\controller\Base;
- use app\admin\model\AuthRule;
- use app\common\controller\Backend;
- use think\facade\Db;
- use think\facade\Request;
- class Menu extends Backend
- {
- public function initialize()
- {
- parent::initialize(); // TODO: Change the autogenerated stub
- }
- //获取左侧主菜单
- public static function authMenu($arr,$pid=0,$rules=[]){
- $authrules = explode(',',session('admin.rules'));
- $list =array();
- foreach ($arr as $k=>$v){
- $v['href'] = strtolower(url($v['href']));
- if (session('admin.id') != 1) {
- if ($v['pid'] == $pid){
- if(in_array($v['id'],$authrules)){
- $v['child'] = self::authMenu($arr,$v['id']);
- $list[] = $v;
- }
- }
- }else{
- if ($v['pid'] == $pid) {
- $v['child'] = self::authMenu($arr, $v['id']);
- $list[] = $v;
- }
- }
- }
- return $list;
- }
- /*
- * 自定义菜单排列
- */
- public static function menu($cate, $lefthtml = '|— ', $pid = 0, $lvl = 0, $leftpin = 0)
- {
- $arr = array();
- foreach ($cate as $v) {
- if ($v['pid'] == $pid) {
- $v['lvl'] = $lvl + 1;
- $v['leftpin'] = $leftpin + 0;
- $v['lefthtml'] = str_repeat($lefthtml, $lvl);
- $v['ltitle'] = $v['lefthtml'] . $v['title'];
- $arr[] = $v;
- $arr = array_merge($arr, self::menu($cate, $lefthtml, $v['id'], $lvl + 1, $leftpin + 20));
- }
- }
- return $arr;
- }
- public static function cate($cate, $lefthtml = '|— ', $pid = 0, $lvl = 0, $leftpin = 0)
- {
- $arr = array();
- foreach ($cate as $v) {
- if ($v['pid'] == $pid) {
- $v['lvl'] = $lvl + 1;
- $v['leftpin'] = $leftpin + 0;
- $v['lefthtml'] = str_repeat($lefthtml, $lvl);
- $arr[] = $v;
- $arr = array_merge($arr, self::menu($cate, $lefthtml, $v['id'], $lvl + 1, $leftpin + 20));
- }
- }
- return $arr;
- }
- public static function auth($cate, $rules, $pid = 0)
- {
- $arr = array();
- $rulesArr = explode(',', $rules);
- foreach ($cate as $v) {
- if ($v['pid'] == $pid) {
- if (in_array($v['id'], $rulesArr)) {
- $v['checked'] = true;
- }
- $v['open'] = true;
- $arr[] = $v;
- $arr = array_merge($arr, self::auth($cate, $v['id'], $rules));
- }
- }
- return $arr;
- }
- }
|