后台添加导航菜单(可显示或隐藏)
2018-03-21 16:35
435 查看
后台系统设置下面添加:
add.php:
1、 有二级栏目(二级栏目加在新闻栏目中)如下:
数据表tp_navs:
注:在sql编辑器中输入下面代码然后运行即可
CREATE TABLE `tp_navs` (
`id` int(4) NOT NULL AUTO_INCREMENT,
`pid` int(4) DEFAULT '0' COMMENT '父类id',
`navname` varchar(50) DEFAULT '' COMMENT '导航名',
`byname` varchar(50) DEFAULT NULL COMMENT '别名',
`path` varchar(100) DEFAULT '0',
`ischild` tinyint(1) DEFAULT '0',
`navcontent` text COMMENT '备注',
`navurl` varchar(100) DEFAULT '' COMMENT '导航链接',
`isshow` tinyint(1) DEFAULT '0' COMMENT '是否显示',
`lang` tinyint(3) DEFAULT '0' COMMENT '语言',
`orderby` int(8) DEFAULT '0' COMMENT '排序',
`catetype` tinyint(1) DEFAULT '0',
`addtime` varchar(30) DEFAULT '' COMMENT '添加时间',
`updatetime` varchar(30) DEFAULT '' COMMENT '修改时间',
PRIMARY KEY (`id`)
)
数据库连接点击下载
<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->succ 4000 ess("添加成功",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']=$id; $data = $m->where($where)->find(); $this->assign("data",$data); //语言版本取值 $lang_data = SettingAction::getLang(); $this->assign("lang_data",$lang_data); } } $this->display(); } //删除 public function delete(){ $id = I("get.id"); $m = M("Navs"); $cate = $m->select(); //载入Getcate类 import("@.Class.Getcate"); $childid = Getcate::getChildsId($cate,$id); $childid[]=$id; //加上当前id //删除所有下级和当前分类 if ($m->where(array('id'=>array('in',$childid)))->delete()) { $this->success("删除成功"); }else{ $this->error("删除失败"); } } //导航栏目排序 public function orderby(){ if(IS_POST){ $post=$_POST; if(empty($post) || $post==""){ $this->error("没有数据,不能排序"); } $orderarr = $post[orderby][order]; $idarr = $post[orderby][id]; for($i=0;$i<count($orderarr);$i++){ $id = $idarr[$i]; $data['orderby']=$orderarr[$i]; M("Navs")->where("id=$id")->save($data); } $this->success("排序成功"); } } //是否显示 public function isshow(){ $id = I("get.id"); $isshow = I("get.isshow"); $where['id']=$id; $data['isshow']=$isshow; $m = M("Navs"); if($m->where($where)->save($data)){ $this->success("操作成功",U("Navs/nlist")); } } //批量删除 public function pldelete(){ $str = I("get.str"); $str = $str."0";//补0 $m = M("Navs"); $where['id']=array("in",$str); if($m->where($where)->delete()){ echo "1"; }else{ echo "0"; } } //批量显示 public function plshow(){ $str = I("get.str"); $str = $str."0";//补0 $m = M("Navs"); $where['id']=array("in",$str); $data['isshow']=1; $data['updatetime']=time(); if($m->where($where)->save($data)){ echo "1"; }else{ echo "0"; } } //批量隐藏 public function plhidden(){ $str = I("get.str"); $str = $str."0";//补0 $m = M("Navs"); $where['id']=array("in",$str); $data['isshow']=0; $data['updatetime']=time(); if($m->where($where)->save($data)){ echo "1"; }else{ echo "0"; } } } ?>后台模板Navs:
add.php:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>导航栏目添加</title> <script language="javascript"> var GV = { JS_ROOT: "__PUBLIC__/Js/", }; </script> <load href="__PUBLIC__/Css/admin_style.css" /> <load href="__PUBLIC__/Js/artDialog/skins/default.css" /> <load href="__PUBLIC__/Js/wind.js" /> <load href="__PUBLIC__/Js/jquery.js" /> <script language="javascript"> $(function(){ $(".J_ajax_submit_btn").click(function(){ var navname = $("#navname"); var byname = $("#byname"); if(navname.val()==""){ Wind.use("artDialog", function () { art.dialog({ id: "error", icon: "error", fixed: true, lock: true, background: "#CCCCCC", opacity: 0, content: "栏目名称不能为空", cancelVal: '确定', cancel: function(){ navname.focus(); } }); }); return false; }else if(byname.val()==""){ Wind.use("artDialog", function () { art.dialog({ id: "error", icon: "error", fixed: true, lock: true, background: "#CCCCCC", opacity: 0, content: "其他名称不能为空", cancelVal: '确定', cancel: function(){ byname.focus(); } }); }); return false; }else{ return true; } }) }) </script> </head> <body class="J_scroll_fixed"> <div class="wrap J_check_wrap"> <div class="nav"> <ul class="cc"> <li><a href="javascript:void(0)">导航管理</a></li> <li><a href="javascript:void(0)">栏目添加</a></li> </ul> </div> <div class="h_a">添加导航栏目</div> <form name="myform" action="<{:U("Navs/add")}>" method="post" class="J_ajaxForm" enctype="multipart/form-data"> <div class="table_full"> <table width="100%" class="table_form contentWrap"> <tbody> <tr> <th width="100">栏目名称</th> <td><input type="text" name="navname" value="" class="input" id="navname" size="30" placeholder="栏目名称"> <font color="#FF0000">*</font></td> </tr> <tr> <th width="100">其他名称</th> <td><input type="text" name="byname" value="" class="input" id="byname" size="30" placeholder="导航公共名称"> <font color="#FF0000">*</font></td> </tr> <tr> <th width="100">所属父类</th> <td> <select name="pid"> <option value="0">/</option> <foreach name="alist" item="vo"> <if condition="$Think.get.mark eq $vo[id]"> <option selected value="<{$vo.id}>"> <?php for($i=0;$i<$vo['count'];$i++){ echo " "; } ?> <{$vo.navname}> </option> <else /> <option value="<{$vo.id}>"> <?php for($i=0;$i<$vo['count'];$i++){ echo " "; } ?> <{$vo.navname}> </option> </if> </foreach> </select> </td> </tr> <tr> <th width="100">栏目链接</th> <td><input type="text" name="navurl" value="" class="input" id="navurl" size="30" placeholder="栏目链接"> <font color="#FF0000">*</font></td> </tr> <tr> <th>是否显示</th> <td> <select name="isshow"> <option value="1">是</option> <option value="0">否</option> </select> </td> </tr> <tr> <th>语言</th> <td> <select name="lang"> <foreach name="lang_data" item="vo"> <option value="<{$vo.lang_val}>"><{$vo.lang_name}></option> </foreach> </select> </td> </tr> <tr> <th>排序</th> <td><input type="text" name="orderby" id="orderby" class="input" size="30" placeholder="输入排序:" value="<{$orderbydata}>" /></td> </tr> <tr> <th>备注</th> <td><textarea name="navcontent" class="inputtext" style="width:450px;height:100px;" placeholder="该栏目的其他信息:"></textarea></td> </tr> </tbody> </table> </div> <div class="btn_wrap" style="z-index:999;"> <div class="btn_wrap_pd"> <button class="btn btn_submit mr10 J_ajax_submit_btn" type="submit" name="submit1" value="ok">确定</button> <button class="btn btn_submit mr10 J_ajax_submit_btn" type="submit" name="submit2" value="ok">保存并继续添加</button> </div> </div> </form> </div> </body> </html>edit.php:
deb9 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>修改导航栏目</title> <script language="javascript"> var GV = { DIMAUB: "/NewsWeb2/", JS_ROOT: "__PUBLIC__/Js/", TOKEN: "{$__token__}" }; </script> <load href="__PUBLIC__/Css/admin_style.css" /> <load href="__PUBLIC__/Js/artDialog/skins/default.css" /> <load href="__PUBLIC__/Js/wind.js" /> <load href="__PUBLIC__/Js/jquery.js" /> <load href="__PUBLIC__/Css/cloud-zoom.css" /> <load href="__PUBLIC__/Js/cloud-zoom.1.0.2.min.js" /> <script type="text/javascript" charset="utf-8" src="__PUBLIC__/Js/ueditor/ueditor.config.js"></script> <script type="text/javascript" charset="utf-8" src="__PUBLIC__/Js/ueditor/ueditor.all.min.js"> </script> <!--建议手动加在语言,避免在ie下有时因为加载语言失败导致编辑器加载失败--> <!--这里加载的语言文件会覆盖你在配置项目里添加的语言类型,比如你在配置项目里配置的是英文,这里加载的中文,那最后就是中文--> <script type="text/javascript" charset="utf-8" src="__PUBLIC__/Js/ueditor/lang/zh-cn/zh-cn.js"></script> <style type="text/css"> /* zoom-section */ .zoom-section{clear:both;margin-top:20px;} *html .zoom-section{display:inline;clear:both;} .zoom-small-image{border:4px solid #CCC;float:left;margin-bottom:0px;} </style> <script language="javascript"> $(function(){ $(".J_ajax_submit_btn").click(function(){ var navname = $("#navname"); var byname = $("#byname"); if(navname.val()==""){ Wind.use("artDialog", function () { art.dialog({ id: "error", icon: "error", fixed: true, lock: true, background: "#CCCCCC", opacity: 0, content: "栏目名称不能为空", cancelVal: '确定', cancel: function(){ navname.focus(); } }); }); return false; } else if(byname.val()==""){ Wind.use("artDialog", function () { art.dialog({ id: "error", icon: "error", fixed: true, lock: true, background: "#CCCCCC", opacity: 0, content: "其他名称不能为空", cancelVal: '确定', cancel: function(){ byname.focus(); } }); }); return false; } else if($("#select_err").val()==1){ Wind.use("artDialog", function () { art.dialog({ id: "error", icon: "error", fixed: true, lock: true, background: "#CCCCCC", opacity: 0, content: "所属分类不正确", cancelVal: '确定', cancel: function(){ $("select[name=pid]").focus(); } }); }); return false; }else{ return true; } }) }) </script> <script type="text/javascript"> $(function(){ var pid = "<{$data.pid}>"; var type_id = "<{$data.id}>"; $("select[name='pid']").change(function(){ //判断是否选择为自己 if(this.value==type_id){ alert("操作错误,自己不能作为自己父类"); $("#select_err").val("1"); return false; }else{ $("#select_err").val("0"); } }) }) </script> </head> <body class="J_scroll_fixed"> <div class="wrap J_check_wrap"> <div class="nav"> <ul class="cc"> <li><a href="javascript:void(0)">导航管理</a></li> <li><a href="javascript:void(0)">栏目修改</a></li> </ul> </div> <div class="h_a">修改栏目</div> <form name="myform" action="<{:U("Navs/edit")}>" method="post" class="J_ajaxForm" enctype="multipart/form-data"> <div class="table_full"> <table width="100%" class="table_form contentWrap"> <tbody> <tr> <th width="100">栏目名称</th> <td><input type="text" name="navname" value="<{$data.navname}>" class="input" id="navname" size="30" placeholder="导航名称"> <font color="#FF0000">*</font></td> </tr> <tr> <th width="100">其他名称</th> <td><input type="text" name="byname" value="<{$data.byname}>" class="input" id="byname" size="30" placeholder="导航公共名称"> <font color="#FF0000">*</font></td> </tr> <tr> <th width="100">所属父类</th> <td> <select name="pid"> <option value="0">/</option> <foreach name="alist" item="vo"> <if condition="$data[pid] eq $vo[id]"> <option value="<{$vo.id}>" selected> <?php for($i=0;$i<$vo['count'];$i++){ echo " "; } ?> <{$vo.navname}> </option> <else /> <option value="<{$vo.id}>"> <?php for($i=0;$i<$vo['count'];$i++){ echo " "; } ?> <{$vo.navname}> </option> </if> </foreach> </select> <span><input type="checkbox" value="1" name="select_mark">移动 <font color="red"><<<{$data.navname}>>></font> 下所有子栏目</span> </td> </tr> <tr> <th width="100">栏目链接</th> <td><input type="text" name="navurl" value="<{$data.navurl}>" class="input" id="navurl" size="30" placeholder="栏目链接"> <font color="#FF0000">*</font></td> </tr> <tr> <th>是否显示</th> <td> <select name="isshow"> <if condition="$data.isshow eq 1"> <option value="1">是</option> <option value="0">否</option> <else /> <option value="0">否</option> <option value="1">是</option> </if> </select> </td> </tr> <tr> <th>语言</th> <td> <select name="lang"> <foreach name="lang_data" item="vo"> <if condition="$data.lang eq $vo[lang_val]"> <option selected value="<{$vo.lang_val}>"><{$vo.lang_name}></option> <else /> <option value="<{$vo.lang_val}>"><{$vo.lang_name}></option> </if> </foreach> </select> </td> </tr> <tr> <th>排序</th> <td><input type="text" name="orderby" id="orderby" placeholder="输入排序:" class="input" size="30" value="<{$data.orderby}>" /></td> </tr> <tr> <th>备注</th> <td><textarea name="navcontent" class="inputtext" style="width:450px;height:100px;" placeholder="该栏目的其他信息:"><{$data.navcontent}></textarea></td> </tr> </tbody></table> </div> <div class="btn_wrap" style="z-index:999;"> <div class="btn_wrap_pd"> <button class="btn btn_submit mr10 J_ajax_submit_btn" type="submit">确定</button> <input type="hidden" name="editid" value="<{$data.id}>" /> <input type="hidden" id="select_err" value="0" /> <input type="hidden" name="p" value="<{$Think.get.p}>" /> </div> </div> </form> </div> </body> </html>nlist.php:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>导航列表</title> <script language="javascript"> var GV = { JS_ROOT: "__PUBLIC__/Js/", }; </script> <load href="__PUBLIC__/Css/admin_style.css"/> <load href="__PUBLIC__/Css/admin_style.css" /> <load href="__PUBLIC__/Js/artDialog/skins/default.css" /> <load href="__PUBLIC__/Js/wind.js" /> <load href="__PUBLIC__/Js/jquery.js" /> <load href="__PUBLIC__/Js/ajaxpage.js" /> <script language="javascript"> function ab(){ if(confirm("确定要删除吗?该操作将删除栏目下的所有子栏目!")){ return true; }else{ return false; } } </script> </head> <body class="J_scroll_fixed"> <div class="wrap J_check_wrap"> <div class="nav"> <ul class="cc"> <li><a href="javascript:void(0)">系统设置</a></li> <li><a href="<{:U('Navs/nlist')}>">导航设置</a></li> </ul> </div> <div class="mb10"> <a href='<{:U("Navs/add")}>' class="btn" title="添加栏目"><span class="add"></span>添加栏目</a> </div> <div class="table_list"> <table width="100%" cellspacing="0" > <thead> <tr> <td width="121" align="center">ID</td> <td width="230" align="left">栏目名称</td> <td width="242" align="center">路径</td> <td width="156" align="center">导航链接</td> <td width="156" align="center">是否显示</td> <td width="90" align="center" >语言</td> <td width="303" align="center">添加时间</td> <td width="392" align="center">管理操作</td> </tr> </thead> <tbody> <volist name="data" id="vo"> <tr> <td align='center'><{$vo.id}></td> <td align='left'> <?php for($i=0;$i<$vo['count'];$i++){ echo " "; } ?> <{$vo.navname}> </td> <td align='center'><{$vo.path}></td> <td align='center'><{$vo.navurl}></td> <td align='center'> <if condition="$vo.isshow eq 1"> <font color="green">是</font> <else /> <font color="red">否</font> </if> </td> <td align="center"> <foreach name="lang_data" item="v"> <if condition="$vo.lang eq $v[lang_val]"><{$v.lang_name}></if> </foreach> </td> <td align='center'><{$vo.addtime|date="Y-m-d H:i:s",###}></td> <td align='center'><a href="<{:U('Navs/edit',array('id'=>$vo['id'],'p'=>$_GET[p]))}>">修改</a> | <if condition="$vo.isshow eq 1"> <font color="green"><a href='<{:U("Navs/isshow",array("id"=>$vo[id],"isshow"=>0))}>'>隐藏</a></font> | <else /> <a style="color:red;" href='<{:U("Navs/isshow",array("id"=>$vo[id],"isshow"=>1))}>'>显示</a> | </if> <a onclick="return ab()" class="" href="<{:U('Navs/delete',array('id'=>$vo['id']) ) }>">删除</a> </td> </tr> </volist> </tbody> </table> <div class="p10"> <div class="btn_wrap" style="z-index:999;"> <div class="btn_wrap_pd"> <div class="pages"> <span class="ajaxpage"><{$page}></span> </div> </div> </div> </div> </div> </div> <script src="__PUBLIC__/Js/common.js?v"></script> <script type="text/javascript"> </script> </body> </html>前台公共控制器 CommonAction.class.php:
1、 有二级栏目(二级栏目加在新闻栏目中)如下:
//导航 $url="Index/index"; $navsdata = M("Navs")->where(array('pid'=>0,'isshow'=>1,'lang'=>$this->lang))->select(); foreach($navsdata as $k=>$vo){ $navsdata[$k][navurl]=str_replace("Index/index",$vo[navurl],$url); $child=$this->getNewsList2($vo[navname],$this->lang,20,1,0,0); $navsdata[$k][child]=array_chunk($child,5,true); } $this->assign("navsdata",$navsdata);前台调用:
<!--导航--> <div class="nav-box"> <div class="w12"> <ul class="nav" onclick="getUrl(arguments[0])"> <volist name="navsdata" id="vo"> <li <if condition="($vo[navname] eq '学院概况') and ($modue_name eq 'About')">class="active" <elseif condition="($vo[navname] eq '新闻中心') and ($modue_name eq 'News')"/>class="active" <elseif condition="($vo[navname] eq '院系设置') and ($modue_name eq 'Depart') "/>class="active" <elseif condition="($vo[navname] eq '合作交流') and ($modue_name eq 'Cooper') "/>class="active" <elseif condition="($vo[navname] eq '招生在线') and ($modue_name eq 'Enroll') "/>class="active" <elseif condition="($vo[navname] eq '教育科研') and ($modue_name eq 'Research') "/>class="active" <elseif condition="($vo[navname] eq '党团园地') and ($modue_name eq 'Party') "/>class="active" <elseif condition="($vo[navname] eq '校园生活') and ($modue_name eq 'Campus') "/>class="active"</if>> <a href="<{:U($vo['navurl'])}>" title="<{$vo.navname}>"><{$vo.navname}></a> <dl class="sub-nav"> <volist name="vo[child]" id="v"> <dd> <volist name="v" id="vv" key="k"> <if condition="$vo.navname eq '学院概况' "> <a href="<{:U('About/about',array('tid'=>$vv[id]))}>" title="<{$vv.conclassname}>"><{$vv.conclassname|mb_strimwidth=0,18,'...','utf-8'}></a> <elseif condition="$vo.navname eq '新闻中心' "/> <if condition="$vv.conclassname eq '动态新闻' "> <a href="<{:U('News/dynamic')}>" title="<{$vv.conclassname}>"><{$vv.conclassname|mb_strimwidth=0,18,'...','utf-8'}></a> <else /> <a href="<{:U('News/newslist',array('tid'=>$vv[id]))}>" title="<{$vv.conclassname}>"><{$vv.conclassname|mb_strimwidth=0,18,'...','utf-8'}></a> </if> <elseif condition="$vo.navname eq '院系设置' "/> <a href="<{:U('Depart/clalist',array('tid'=>$vv[id]))}>" title="<{$vv.conclassname}>"><{$vv.conclassname|mb_strimwidth=0,18,'...','utf-8'}></a> <elseif condition="$vo.navname eq '合作交流' "/> <a href="<{:U('Cooper/index',array('tid'=>$vv[id]))}>" title="<{$vv.conclassname}>"><{$vv.conclassname|mb_strimwidth=0,18,'...','utf-8'}></a> <elseif condition="$vo.navname eq '招生在线' "/> <a href="<{:U('Enroll/index',array('tid'=>$vv[id]))}>" title="<{$vv.conclassname}>"><{$vv.conclassname|mb_strimwidth=0,18,'...','utf-8'}></a> <elseif condition="$vo.navname eq '教育科研' "/> <a href="<{:U('Research/reslist',array('tid'=>$vv[id]))}>" title="<{$vv.conclassname}>"><{$vv.conclassname|mb_strimwidth=0,18,'...','utf-8'}></a> <elseif condition="$vo.navname eq '党团园地' "/> <a href="<{:U('Party/partylist',array('tid'=>$vv[id]))}>" title="<{$vv.conclassname}>"><{$vv.conclassname|mb_strimwidth=0,18,'...','utf-8'}></a> <elseif condition="$vo.navname eq '校园生活' "/> <a href="<{:U('Campus/camlist',array('tid'=>$vv[id]))}>" title="<{$vv.conclassname}>"><{$vv.conclassname|mb_strimwidth=0,18,'...','utf-8'}></a> </if> </volist> </dd> </volist> </dl> </li> </volist> <div class="clear"></div> </ul> </div> </div>2、 没有二级栏目
//导航 $url="Index/index"; $navsdata = M("Navs")->where(array('pid'=>0,'isshow'=>1,'lang'=>$this->lang))->select(); foreach($navsdata as $k=>$vo){ $navsdata[$k][navurl]=str_replace("Index/index",$vo[navurl],$url); } $this->assign("navsdata",$navsdata);前台调用:
<volist name="navsdata" id="vo"> <li class="dropdown"> <a href="<{:U($vo['navurl'])}>" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"> <{$vo.navname}><b class="caret"></b> </a> <if condition="$vo.navname eq '招商加盟' "> <ul class="dropdown-menu"> <li><a href="<{:U('Join/index')}>">招商页面</a></li> <li><a href="<{:U('Join/terminal')}>">终端Si展示</a></li> </ul> </if> </li> </volist>
数据表tp_navs:
注:在sql编辑器中输入下面代码然后运行即可
CREATE TABLE `tp_navs` (
`id` int(4) NOT NULL AUTO_INCREMENT,
`pid` int(4) DEFAULT '0' COMMENT '父类id',
`navname` varchar(50) DEFAULT '' COMMENT '导航名',
`byname` varchar(50) DEFAULT NULL COMMENT '别名',
`path` varchar(100) DEFAULT '0',
`ischild` tinyint(1) DEFAULT '0',
`navcontent` text COMMENT '备注',
`navurl` varchar(100) DEFAULT '' COMMENT '导航链接',
`isshow` tinyint(1) DEFAULT '0' COMMENT '是否显示',
`lang` tinyint(3) DEFAULT '0' COMMENT '语言',
`orderby` int(8) DEFAULT '0' COMMENT '排序',
`catetype` tinyint(1) DEFAULT '0',
`addtime` varchar(30) DEFAULT '' COMMENT '添加时间',
`updatetime` varchar(30) DEFAULT '' COMMENT '修改时间',
PRIMARY KEY (`id`)
)
数据库连接点击下载
相关文章推荐
- 导航菜单 显示隐藏 案例
- Ecshop(二次开发) - 后台添加左侧菜单导航
- 左侧导航菜单 子菜单的显示隐藏效果
- C# 右下角的通知区域显示 和 隐藏主窗体 以及 为通知区域图标添加菜单 等
- onethink后台添加自定义菜单不显示的解决方法(转)
- opencart 后台导航菜单添加步骤
- ECShop后台管理菜单显示、隐藏、修改、增加
- win10专业版如何给右键菜单添加显示隐藏文件按钮?
- JS+CSS打造网站头部蓝色简约可自动显示/隐藏的导航菜单
- ECShop后台管理菜单显示、隐藏、修改、增加
- 怎样将显示隐藏文件的命令添加进右键菜单
- 学习批处理命令——添加“显示|不显示 隐藏文件”右键菜单
- js实现简单的隐藏导航菜单动态显示
- win7 64位系统中为右键菜单添加显示隐藏系统文件和文件扩展名的方法
- jquery实现的固定位置下拉隐藏上拉显示悬浮导航菜单特效
- (三)检索、添加、显示、隐藏图层及工具导航功能
- onethink后台添加自定义菜单不显示的解决方法
- DEDECMS系统后台添加菜单列表
- 点击显示隐藏菜单,动画效果,半透明,支持所有浏览器
- 微信公众平台jsapi开发教程(8)显示隐藏网页右上角菜单