| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275 | 
							- <?php
 
- /**
 
-  * @copyright (C)2016-2099 Hnaoyun Inc.
 
-  * @author XingMeng
 
-  * @email hnxsh@foxmail.com
 
-  * @date 2017年4月3日
 
-  *  菜单控制器 
 
-  */
 
- namespace app\admin\controller\system;
 
- use core\basic\Controller;
 
- use app\admin\model\system\MenuModel;
 
- class MenuController extends Controller
 
- {
 
-     private $count;
 
-     private $blank;
 
-     private $outData = array();
 
-     private $model;
 
-     public function __construct()
 
-     {
 
-         $this->model = new MenuModel();
 
-     }
 
-     // 菜单列表
 
-     public function index()
 
-     {
 
-         $this->assign('list', true);
 
-         $menus = $this->model->getList();
 
-         $this->assign('menus', $this->makeMenuList($menus));
 
-         
 
-         // 菜单下拉列表
 
-         $menus = $this->model->getSelect();
 
-         $this->assign('menu_select', $this->makeMenuSelect($menus));
 
-         
 
-         // 获取菜单按钮
 
-         $this->assign('actions', get_type('T101'));
 
-         
 
-         $this->display('system/menu.html');
 
-     }
 
-     // 生成无限级菜单管理列表
 
-     private function makeMenuList($tree)
 
-     {
 
-         // 循环生成
 
-         foreach ($tree as $value) {
 
-             $this->count ++;
 
-             $this->outData[$this->count] = new \stdClass();
 
-             $this->outData[$this->count]->id = $value->id;
 
-             $this->outData[$this->count]->blank = $this->blank;
 
-             $this->outData[$this->count]->name = $value->name;
 
-             $this->outData[$this->count]->mcode = $value->mcode;
 
-             $this->outData[$this->count]->pcode = $value->pcode;
 
-             $this->outData[$this->count]->sorting = $value->sorting;
 
-             $this->outData[$this->count]->url = $value->url;
 
-             $this->outData[$this->count]->status = $value->status;
 
-             $this->outData[$this->count]->shortcut = $value->shortcut;
 
-             $this->outData[$this->count]->ico = $value->ico;
 
-             $this->outData[$this->count]->create_user = $value->create_user;
 
-             $this->outData[$this->count]->update_user = $value->update_user;
 
-             $this->outData[$this->count]->create_time = $value->create_time;
 
-             $this->outData[$this->count]->update_time = $value->update_time;
 
-             
 
-             if ($value->son) {
 
-                 $this->outData[$this->count]->son = true;
 
-             } else {
 
-                 $this->outData[$this->count]->son = false;
 
-             }
 
-             // 子菜单处理
 
-             if ($value->son) {
 
-                 $this->blank .= '  ';
 
-                 $this->makeMenuList($value->son);
 
-             }
 
-         }
 
-         // 循环完后回归缩进位置
 
-         $this->blank = substr($this->blank, 0, - 6);
 
-         return $this->outData;
 
-     }
 
-     // 菜单增加
 
-     public function add()
 
-     {
 
-         if ($_POST) {
 
-             // 获取数据
 
-             $mcode = get_auto_code($this->model->getLastCode()); // 自动编码
 
-             $pcode = post('pcode', 'var');
 
-             $name = post('name');
 
-             $url = post('url');
 
-             $sorting = post('sorting', 'int');
 
-             $status = post('status', 'int');
 
-             $shortcut = post('shortcut', 'int');
 
-             $ico = post('ico');
 
-             $actions = post('actions', 'array', false, '菜单按钮', array());
 
-             
 
-             if (! $mcode) {
 
-                 alert_back('编码不能为空!');
 
-             }
 
-             if (! $pcode) {
 
-                 $pcode = 0; // 父编码默认为0
 
-             }
 
-             if (! $name) {
 
-                 alert_back('菜单名称不能为空!');
 
-             }
 
-             
 
-             if ($this->model->checkMenu("mcode='$mcode'")) {
 
-                 alert_back('该菜单编号已经存在,不能再使用!');
 
-             }
 
-             
 
-             // 菜单地址自动填充
 
-             if (! $url) {
 
-                 $url = '/' . M . '/' . $mcode . '/index';
 
-             }
 
-             
 
-             // 构建数据
 
-             $data = array(
 
-                 'mcode' => $mcode,
 
-                 'pcode' => $pcode,
 
-                 'name' => $name,
 
-                 'url' => $url,
 
-                 'sorting' => $sorting,
 
-                 'status' => $status,
 
-                 'shortcut' => $shortcut,
 
-                 'ico' => $ico,
 
-                 'create_user' => session('username'),
 
-                 'update_user' => session('username')
 
-             );
 
-             
 
-             // 执行添加
 
-             if ($this->model->addMenu($data, $actions)) {
 
-                 $this->log('新增菜单' . $mcode . '成功!');
 
-                 if (! ! $backurl = get('backurl')) {
 
-                     success('新增成功!', base64_decode($backurl));
 
-                 } else {
 
-                     success('新增成功!', url('admin/Menu/index'));
 
-                 }
 
-             } else {
 
-                 $this->log('新增菜单' . $mcode . '失败!');
 
-                 error('新增失败!', - 1);
 
-             }
 
-         }
 
-     }
 
-     // 生成菜单下拉列表
 
-     private function makeMenuSelect($tree, $selectid = null)
 
-     {
 
-         // 初始化
 
-         $menu_html = '';
 
-         // 循环生成
 
-         foreach ($tree as $value) {
 
-             // 默认选择项
 
-             if ($selectid == $value->mcode) {
 
-                 $select = "selected='selected'";
 
-             } else {
 
-                 $select = '';
 
-             }
 
-             if (get('mcode') != $value->mcode) { // 不显示本身,避免出现自身为自己的父节点
 
-                 $menu_html .= "<option value='{$value->mcode}' $select />{$this->blank}{$value->mcode} {$value->name}";
 
-             }
 
-             // 子菜单处理
 
-             if ($value->son) {
 
-                 $this->blank .= '  ';
 
-                 $menu_html .= $this->makeMenuSelect($value->son, $selectid);
 
-             }
 
-         }
 
-         // 循环完后回归位置
 
-         $this->blank = substr($this->blank, 0, - 6);
 
-         return $menu_html;
 
-     }
 
-     // 菜单删除
 
-     public function del()
 
-     {
 
-         if (! $mcode = get('mcode', 'var')) {
 
-             error('传递的参数值错误!', - 1);
 
-         }
 
-         if ($this->model->delMenu($mcode)) {
 
-             $this->log('删除菜单' . $mcode . '成功!');
 
-             success('删除成功!', - 1);
 
-         } else {
 
-             $this->log('删除菜单' . $mcode . '失败!');
 
-             error('删除失败!', - 1);
 
-         }
 
-     }
 
-     // 菜单修改
 
-     public function mod()
 
-     {
 
-         if (! $mcode = get('mcode', 'var')) {
 
-             error('传递的参数值错误!', - 1);
 
-         }
 
-         
 
-         // 单独修改状态
 
-         if (($field = get('field', 'var')) && ! is_null($value = get('value', 'var'))) {
 
-             if ($this->model->modMenu($mcode, "$field='$value',update_user='" . session('username') . "'")) {
 
-                 $this->log('修改菜单' . $mcode . '状态' . $value . '成功!');
 
-                 location(- 1);
 
-             } else {
 
-                 $this->log('修改菜单' . $mcode . '状态' . $value . '失败!');
 
-                 alert_back('修改失败!');
 
-             }
 
-         }
 
-         
 
-         // 修改操作
 
-         if ($_POST) {
 
-             // 获取数据
 
-             $pcode = post('pcode', 'var');
 
-             $name = post('name');
 
-             $sorting = post('sorting', 'int');
 
-             $url = post('url');
 
-             $status = post('status', 'int');
 
-             $shortcut = post('shortcut', 'int');
 
-             $ico = post('ico');
 
-             $actions = post('actions', 'array', false, '菜单按钮', array());
 
-             
 
-             if (! $pcode) {
 
-                 $pcode = 0; // 父编码默认为0
 
-             }
 
-             if (! $name) {
 
-                 alert_back('菜单名称不能为空!');
 
-             }
 
-             // 菜单地址自动填充
 
-             if (! $url) {
 
-                 $url = '/' . M . '/' . $mcode . '/index';
 
-             }
 
-             
 
-             // 构建数据
 
-             $data = array(
 
-                 'pcode' => $pcode,
 
-                 'name' => $name,
 
-                 'sorting' => $sorting,
 
-                 'url' => $url,
 
-                 'status' => $status,
 
-                 'shortcut' => $shortcut,
 
-                 'ico' => $ico,
 
-                 'update_user' => session('username')
 
-             );
 
-             
 
-             // 执行修改
 
-             if ($this->model->modMenu($mcode, $data, $actions)) {
 
-                 $this->log('修改菜单' . $mcode . '成功!');
 
-                 if (! ! $backurl = get('backurl')) {
 
-                     success('修改成功!', base64_decode($backurl));
 
-                 } else {
 
-                     success('修改成功!', url('admin/Menu/index'));
 
-                 }
 
-             } else {
 
-                 location(- 1);
 
-             }
 
-         } else { // 调取修改内容
 
-             
 
-             $this->assign('mod', true);
 
-             
 
-             $result = $this->model->getMenu($mcode);
 
-             if (! $result) {
 
-                 error('编辑的内容已经不存在!', - 1);
 
-             }
 
-             $this->assign('menu', $result); // 菜单信息
 
-                                             
 
-             // 获取菜单按钮组
 
-             $this->assign('actions', get_type('T101'));
 
-             
 
-             // 菜单下拉列表
 
-             $menus = $this->model->getSelect();
 
-             $this->assign('menu_select', $this->makeMenuSelect($menus, $result->pcode));
 
-             
 
-             // 显示
 
-             $this->display('system/menu.html');
 
-         }
 
-     }
 
- }
 
 
  |