105 lines
3.6 KiB
PHP
105 lines
3.6 KiB
PHP
<?php
|
||
namespace Admin\Controller;
|
||
use Think\Controller;
|
||
class MenuController extends AdminController{
|
||
public function index(){
|
||
$tab=D('node');
|
||
$pid=I("get.pid");
|
||
$p=$tab->find($pid);
|
||
$ptitle=$p[title]?$p[title]:"菜单管理";
|
||
$data=$tab->where(array("pid"=>$pid))->order('sort asc')->select();
|
||
$this->assign("pid",$pid);
|
||
$this->assign("ppid",$p[pid]);
|
||
$this->assign("ptitle",$ptitle);
|
||
$this->assign("data",$data);
|
||
$this->display();
|
||
}
|
||
public function add(){
|
||
$tab=D('node');
|
||
if(IS_POST){
|
||
//验证
|
||
$rules = array(
|
||
array('title','require','标题必须填写!',1),
|
||
array('name','require','链接必须填写!',1),
|
||
);
|
||
$data=$tab->validate($rules)->create();
|
||
if($data){
|
||
//设置level
|
||
if($data[pid]){
|
||
$level=$tab->where(array("id"=>$data[pid]))->getField("level");
|
||
$level=$level+1;
|
||
$data['level']=$level;
|
||
}else{
|
||
$data['level']=1;
|
||
}
|
||
//
|
||
$id=$tab->add($data);
|
||
D("UserLog")->add("add",D('node')->getTableName(),$id);
|
||
$this->success($data);
|
||
}else{
|
||
$this->error($tab->getError());
|
||
}
|
||
}else{
|
||
$pid=I("get.pid");
|
||
//获取最大的排序
|
||
$sort_where[pid]=$pid;
|
||
$sort_where["sort"]=array("LT",900);//最大900是系统设置的,一般要小于这个
|
||
$sort=$tab->where($sort_where)->max('sort');
|
||
$sort=$sort+10;
|
||
$this->pagetitle="添加菜单";
|
||
$this->assign("sort",$sort);
|
||
$this->assign("pid",$pid);
|
||
$this->display();
|
||
}
|
||
}
|
||
public function editor(){
|
||
$tab=D('node');
|
||
if(IS_POST){
|
||
//验证
|
||
$rules = array(
|
||
array('title','require','标题必须填写!',1),
|
||
array('name','require','链接必须填写!',1),
|
||
);
|
||
$data=$tab->validate($rules)->create();
|
||
if($data){
|
||
//设置level
|
||
if($data[pid]){
|
||
$level=$tab->where(array("id"=>$data[pid]))->getField("level");
|
||
$level=$level+1;
|
||
$data['level']=$level;
|
||
}else{
|
||
$data['level']=1;
|
||
}
|
||
//
|
||
$tab->save($data);
|
||
D("UserLog")->add("update",D('node')->getTableName(),$data[id]);
|
||
$this->success($data);
|
||
}else{
|
||
$this->error($tab->getError());
|
||
}
|
||
}else{
|
||
//获取最大的排序
|
||
$id=I("get.id");
|
||
$r=$tab->find($id);
|
||
$this->assign("r",$r);
|
||
$this->display();
|
||
}
|
||
}
|
||
//删除节点
|
||
public function del(){
|
||
$obj=M("node");
|
||
$id=I("id",0,'intval');
|
||
$count=$obj->where(array("pid"=>$id))->count();
|
||
if($count>0){
|
||
$this->error("该节点下有子节点,如要删除请先删除子节点");
|
||
}else{
|
||
$result=$obj->delete($id);
|
||
D("UserLog")->add("delete",D('node')->getTableName(),$id);
|
||
if($result){
|
||
$this->success("删除成功");
|
||
}else{
|
||
$this->error("删除失败");
|
||
}
|
||
}
|
||
}
|
||
} |