load->model('sys/sys_menu_model'); $list = $this->sys_menu_model->select(array('status' => 1,'type'=>0), 'sort desc', 0, 0); $this->load->model('sys/sys_role_model'); $role = $this->sys_role_model->get(array('id' => $this->role)); $menu_ids = explode(',', $role['menu_ids']); //获取路由 $url = $this->input->get('url'); $url = str_replace('welcome', 'outer', $url); $spm = $this->input->get('spm'); $this->data['url'] = $url; foreach ($list as $item) { if($this->role != SUPER_ADMIN && !in_array($item['id'], $menu_ids)) { continue; } $map[$item['id']] = $item; } foreach ($list as $item) { if($this->role != SUPER_ADMIN && !in_array($item['id'], $menu_ids)) { continue; } if (isset($item['pid']) && isset($map[$item['pid']])) { $map[$item['pid']]['sub'][] = &$map[$item['id']]; } else { $this->data['menus'][] = &$map[$item['id']]; } } unset($map); //获取面包屑 $menus = $this->sys_menu_model->select(array("url like '" . $url . "%'" => null, 'status' => 1, 'outer_link' => 1,'type'=>0)); $menu = array(); foreach($menus as $item){ if(!$menu){ $menu = $item; continue; } //节点更匹配的菜单 if(0 !== strpos($menu['node'], $spm) || strlen($item['node']) > strlen($menu['node'])){ $menu = $item; continue; } } //获取面包屑 $menu && $spm = $menu['node']; $spm_arr1 = explode('-', $spm); $spm_arr1 && !is_numeric($spm_arr1[0]) && $spm_arr1 = array_slice($spm_arr1, 1); if($spm_arr1){ $rows = $this->sys_menu_model->select(array("id in (" . implode(",",$spm_arr1) . ")" => null, 'status' => 1,'type'=>0), 'sort desc'); $menu_arr = array(); $breads = array(); foreach($rows as $row){ $menu_arr[$row['id']] = $row; } foreach($spm_arr1 as $v){ $item = $menu_arr[$v]; $breads[] = array( 'spm' => $item['node'], 'url' => '#' == $item['url'] ? '' : $item['url'], 'name' => $item['name'], ); } $this->data['breads'] = $breads; } $this->data['_username'] = $this->username; $this->data['_role'] = $role['name']; $this->load->vars($this->data); $this->load->view('bread'); $this->load->view('snav'); $this->load->view('outerlink'); } }