95 lines
3.1 KiB
PHP
Executable File
95 lines
3.1 KiB
PHP
Executable File
<?php
|
|
//enter
|
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
|
|
|
class Outer extends CI_Controller {
|
|
|
|
public function index()
|
|
{
|
|
$this->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');
|
|
}
|
|
}
|