尝试通过自定义函数实现前台导航菜单高亮

浏览:925 发布日期:2015/07/25 分类:技术分享
做了一些尝试,在http://www.thinkphp.cn/topic/4859.html页面的讨论中,复制过来了。

开始的时候是这样处理的:<think:nav name="nav">
<eq name="nav.pid" value="0">
<li<php>$url=get_nav_url($nav['url']); if($url=='__SELF__') echo(' class="active"'); </php>><a href="{$url}"<eq name='nav.target' value='1'> target="_blank"</eq>>{$nav.title}</a></li>
</eq>
</think:nav>
发现只在每个导航菜单的首页有用,所以继续尝试。。。
在home\common\function.php添加一个函数 function get_nav_url_1($url,$cate){
    if (strcasecmp(get_nav_url($url),__SELF__)==0) {
        return array($url,' class="active"');
    }
    parse_str(parse_url($url)['query']);
    if (strcasecmp($category,$cate['name'])==0) {
        return array(get_nav_url($url),' class="active"');
    }
    if ($cate['pid']==0) {
        return array(get_nav_url($url),'');
    }
    $cate = D('Category')->info($cate['pid']);
    return get_nav_url_1($url,$cate);
 }
模板文件中做了一些修改<think:nav name="nav">
<eq name="nav.pid" value="0">
<li<php>$ret=get_nav_url_1($nav['url'],$category);echo($ret[1]);</php>><a href="{$ret[0]}"<eq name='nav.target' value='1'> target="_blank"</eq>>{$nav.title}</a></li>
</eq>
</think:nav>
好像暂时就够我用了。
最佳答案
评论( 相关
后面还有条评论,点击查看>>