后台添加导航菜单(可显示或隐藏)

后台系统设置下面添加:
        <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']
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值