后台系统设置下面添加:
<TR height=30 class="hoverbg">
<TD class="menutd"><A class=menuChild
href='<{:U("Navs/nlist")}>'
target=main>- 导航设置</A></TD>
</TR>
后台添加控制器NavsAction.class.php:
<?php
class NavsAction extends CommonAction{
public function nlist(){
$m = M("Navs");
import("ORG.Util.Paged");
$count = $m->count();//总条数
$page = new Page($count,20);
$show = $page->show();
// ,lang desc,orderby asc
// $data = $m->field("id,pid,navname,navurl,path,addtime,isshow,lang,orderby,concat(path,'-',id) as bpath")->order('bpath asc,orderby asc')->limit($page->firstRow.','.$page->listRows)->select();
$data = $m->field("id,pid,navname,navurl,path,addtime,isshow,lang,orderby,concat(path,'-',id) as bpath")->order('orderby asc')->limit($page->firstRow.','.$page->listRows)->select();
foreach($data as $key=>$value){
$data[$key]['count']=count(explode('-',$value['bpath']));
}
if($data){
$this->assign("data",$data);
$this->assign("page",$show);
}
//查询条件绑定
// $dataclass = $m->where("isshow=1")->field("id,pid,navname,navurl,lang,path,orderby,concat(path,'-',id) as bpath")->order('bpath asc,orderby asc')->select();
$dataclass = $m->where("isshow=1")->field("id,pid,navname,navurl,lang,path,orderby,concat(path,'-',id) as bpath")->order('orderby asc')->select();
foreach($dataclass as $key=>$value){
$dataclass[$key]['count']=count(explode('-',$value['bpath']));
}
$this->assign('dat',$dataclass);
//语言版本取值
$lang_data = SettingAction::getLang();
$this->assign("lang_data",$lang_data);
$this->display();
}
public function add(){
if(IS_POST){
$m = D("Navs");
if($_POST['navname']==""){
$this->error("栏目名称不能为空");
}else if($_POST['byname']==""){
$this->error("其他名称不能为空");
}
if($m->create()){
$m->addtime=time();
$pid=$_POST['pid'];
if($pid==0){
$m->ischild=0;
}else{
$data['ischild']=1;
M("Navs")->where("id=$pid")->save($data);
}
$add_insert= $m->add();
if($add_insert){
if(isset($_POST['submit1'])){
$this->success("添加成功",U("Navs/nlist"));
}else{
$nav_insert_id = M("Navs")->where("id=$add_insert")->getField("pid");
$this->success("添加成功",U("Navs/add",array('mark'=>$nav_insert_id)));
}
}else{
$this->error("添加失败");
}
}else{
$this->error($m->getError());
}
}else{
//绑定数据
$m = M("Navs");
$list = $m->field("id,pid,navname,byname,path,concat(path,'-',id) as bpath")->order('bpath')->select();
//dump($list);
foreach($list as $key=>$value){
$list[$key]['count']=count(explode('-',$value['bpath']));
}
//排序
$orderby1 = $m->order("orderby DESC")->limit(1)->find();
if($orderby1){
$orderbydata=$orderby1[orderby]+1;
}else{
$orderbydata=1;
}
$this->assign("alist",$list);
$this->assign("orderbydata",$orderbydata);
//语言版本取值
$lang_data = SettingAction::getLang();
$this->assign("lang_data",$lang_data);
$this->display();
}
}
//信息修改
public function edit(){
if(IS_POST){
$id = trim(I("post.editid"));
$navname = trim(I("post.navname"));
$byname = trim(I("post.byname"));
$navurl = trim(I("post.navurl"));
$isshow = trim(I("post.isshow"));
$lang = trim(I("post.lang"));
$orderby = trim(I("post.orderby"));
$updatetime = time();
$pid = I("post.pid");
$select_mark = I("post.select_mark");
if(isset($id) && $id>0){
if(empty($navname)){
$this->error("栏目名称不能为空");
}else if(empty($byname)){
$this->error("其他名称不能为空");
}
$m = M("Navs");
$data['navname']=$navname;
$data['byname']=$byname;
$data['navurl']=$navurl;
$data['isshow'] = $isshow;
$data['navcontent'] = $_POST['navcontent'];
$data['lang'] = $lang;
$data['orderby'] = $orderby;
$data['pid']=$pid;
//父类栏目
if($pid==0){
$data[path]=0;
}else{
$pid_all_data = M("Navs")->where(array('id'=>$pid))->find();
$data[path]=$pid_all_data[path]."-".$pid_all_data[id];
}
if($select_mark==1){
//递归查询该分类下所有子类ID
$cate = M("Navs")->select();
$child_id = Getcate::getChildsId($cate,$id);
foreach($child_id as $vo){
$id_all_data = M("Navs")->where(array('id'=>$id))->find();
//原子类path
$old_child_path = M("Navs")->where(array('id'=>$vo))->getField("path");
//组合后的子类path
$new_child_path = $data[path].str_replace($id_all_data[path], '', $old_child_path);
M("Navs")->where(array('id'=>$vo))->save(array('path'=>$new_child_path));
}
}
$data['updatetime'] = $updatetime;
if($pid==0){
$data['ischild']=0;
}else{
$data1['ischild']=1;
M("Navs")->where("id=$pid")->save($data1);
}
$where['id']=$id;
if($m->where($where)->limit(1)->save($data)){
$this->success("修改成功",U("Navs/nlist",array('p'=>$_POST[p])));
}else{
$this->error("修改失败");
}
}
}else{
//数据绑定
$m = M("Navs");
$id = I("get.id");
$list = $m->field("id,pid,navname,byname,path,concat(path,'-',id) as bpath")->order('bpath')->select();
//dump($list);
foreach($list as $key=>$value){
$list[$key]['count']=count(explode('-',$value['bpath']));
}
$this->assign("alist",$list);
if(isset($id) && $id>0){
$where['id']