| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 | <?php// +----------------------------------------------------------------------// | Tplay [ WE ONLY DO WHAT IS NECESSARY ]// +----------------------------------------------------------------------// | Copyright (c) 2017 http://tplay.pengyichen.com All rights reserved.// +----------------------------------------------------------------------// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )// +----------------------------------------------------------------------// | Author: 听雨 < 389625819@qq.com >// +----------------------------------------------------------------------namespace app\admin\controller;use app\admin\controller\base\Permissions;use think\Db;use think\Session;class Index extends Permissions{    public function index()    {        $menu = Db::name('admin_menu')->where(['is_display' => 1])->order('orders asc')->select();        //删除不在当前角色权限里的菜单,实现隐藏        $admin_cate = Session::get(self::ADMIN_CATE_ID);        $permissions = Db::name('admin_cate')->where(['id' => $admin_cate])->value('permissions');        $permissions = explode(',', $permissions);        foreach ($menu as $k => $val) {            if ($val['type'] == 1 and $val['is_display'] == 1 and !in_array($val['id'], $permissions)) {                unset($menu[$k]);            }        }        //添加url        foreach ($menu as $key => $value) {            if (empty($value['parameter'])) {                $url = url($value['module'] . '/' . $value['controller'] . '/' . $value['function']);            } else {                $url = url($value['module'] . '/' . $value['controller'] . '/' . $value['function'], $value['parameter']);            }            $menu[$key]['url'] = $url;        }        $menus = $this->menulist($menu);        $this->assign('menus', $menus);        $admin = Db::name('admin')->where('id', Session::get(self::ADMIN_ID))->find();        $this->assign('admin', $admin);        return $this->fetch();    }    protected function menulist($menu)    {        $menus = array();        //先找出顶级菜单        foreach ($menu as $k => $val) {            if ($val['pid'] == 0) {                $menus[$k] = $val;            }        }        //通过顶级菜单找到下属的子菜单        foreach ($menus as $k => $val) {            foreach ($menu as $key => $value) {                if ($value['pid'] == $val['id']) {                    $menus[$k]['list'][] = $value;                }            }        }        //三级菜单        foreach ($menus as $k => $val) {            if (isset($val['list'])) {                foreach ($val['list'] as $ks => $vals) {                    foreach ($menu as $key => $value) {                        if ($value['pid'] == $vals['id']) {                            $menus[$k]['list'][$ks]['list'][] = $value;                        }                    }                }            }        }        return $menus;    }    /**     * 管理员退出,清除session     */    public function logout()    {        Session::delete(self::ADMIN_ID);        Session::delete(self::ADMIN_NAME);        Session::delete(self::ADMIN_CATE_ID);        if (Session::has(self::ADMIN_ID) or Session::has(self::ADMIN_CATE_ID)) {            $this->error('退出失败');        } else {            $this->success('正在退出...', 'admin/common/login');        }    }}
 |