首页 > 代码库 > thinkcmf 导航高亮制作方法(适用于多级导航)(通用)
thinkcmf 导航高亮制作方法(适用于多级导航)(通用)
平时用thinkcmf网站开发经常需要导航点击之后高亮,就写了一些实现方法分享一下。
思路很简单,先获取当前页面的顶级栏目的地址,然后与导航中的地址比较,相同的就加上一个class,把下面函数理解了不管一级、二级、三级都能做。
1、添加函数
/*获取当前栏目的顶级栏目地址适用2级栏目*/ function get_top_url($c,$id){ $arr[‘href‘][‘action‘]="Portal/".$c."/index"; $arr[‘href‘][‘param‘][‘id‘]=$id; $nav=M(‘nav‘); $rs=$nav->select(); foreach($rs as $k=>$v){ $rs[$k][‘href‘]=unserialize(stripslashes($v[‘href‘])); } foreach($rs as $k=>$v){ if($v[‘href‘]==$arr[‘href‘]){ $a=$v; } } if($a[‘parentid‘]==0){ $href=$a[‘href‘]; }else{ $id=$a[‘parentid‘]; $result=$nav->find($id); $href=unserialize(stripslashes($result[‘href‘])); } if($href){ $href=leuu($href[‘action‘],array(‘id‘=>$href[‘param‘][‘id‘])); $default_app=strtolower(C("DEFAULT_MODULE")); $g=C("VAR_MODULE"); $href=preg_replace("/\/$default_app\//", "/",$href); $href=preg_replace("/$g=$default_app&/", "",$href); }else{ $href="/"; } return $href; }
2、模板调用
<php> /*获取主导航*/ $menu=sp_get_menu_tree(1); /*获取当前页面的顶级栏目的地址*/ if(CONTROLLER_NAME=="Article"){ $url=get_top_url("List",$term_id); }else{ $url=get_top_url(CONTROLLER_NAME,$_GET[‘id‘]); }
//上传到服务器时,可删除下面行,为了本地测试所用 http://localhost/gupiao/
//$url = ‘/gupiao‘ . $url; </php>
<volist name="menu" id="vo" key="k"> /*判断当前页面的顶级栏目的地址$url与导航中的链接$vo["href"]是否一样*/ <li class="n1 <eq name=‘url‘ value=http://www.mamicode.com/‘$vo["href"]‘>selected_u</eq>"> <a href="http://www.mamicode.com/{$vo[‘href‘]}" target="{$vo[‘target‘]}">{$vo[‘label‘]}</a> <notempty name="vo[‘child‘]"> <ul class="navMoreUL"> <volist name="vo[‘child‘]" id="v"> <li><a href="http://www.mamicode.com/{$v[‘href‘]}" target="{$v[‘target‘]}">{$v[‘label‘]}</a></li> </volist> </ul> </notempty> </li> </volist>
摘自:http://www.zhlblog.com/article/29.html
thinkcmf 导航高亮制作方法(适用于多级导航)(通用)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。