zoukankan      html  css  js  c++  java
  • 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="/";
        }
        /*去除g=Portal*/
             //判断URL模式
        if( preg_match ( '/php?g=/' , $href )  ){
            $href = preg_replace ( '/g=Portal&/' , '' , $href );
        }else{
            $href = preg_replace ( '/Portal//' , '' , $href );
        }
        /*转化为小写*/
        $href = strtolower($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='$vo["href"]'>selected_u</eq>">
               <a href="{$vo['href']}" target="{$vo['target']}">{$vo['label']}</a>
             <notempty name="vo['child']">
               <ul class="navMoreUL">
                  <volist name="vo['child']" id="v">
                       <li><a href="{$v['href']}" target="{$v['target']}">{$v['label']}</a></li>
                   </volist>
               </ul>
           </notempty>
           </li>
    </volist>
     
  • 相关阅读:
    理解二进制操作
    web前端代码重构
    Tomcat是一个Servlet容器?
    对于python命令行参数使用,你应该这么做才专业
    利用深度学习识别滑动验证码缺口位置
    机器学习笔记(十)---- KNN(K Nearst Neighbor)
    基于NB-IoT的智慧路灯监控系统(项目简介)
    【读一本书】《昇腾AI处理器架构与编程》--神经网络基础知识(2)
    高性能Web动画和渲染原理系列(4)“Compositor-Pipeline演讲PPT”学习摘要【华为云技术分享】
    华为云数据库亮相下一代数据技术发展论坛,助力“数字一带一路”
  • 原文地址:https://www.cnblogs.com/MY0101/p/7218879.html
Copyright © 2011-2022 走看看