zoukankan      html  css  js  c++  java
  • 问答项目---面包削导航的处理!

    首先要根据当前的 id 获取到它所有顶级栏目:

    要从顶级栏目到二级栏目,所以要倒序排列下:array_reverse();

    /**
     * 传递一个分类ID 返回该分类的所有父级分类
     */
    function get_all_parent($array,$id){
        $arr = array();
        foreach($array as $v){
            if($v['id'] == $id){
                $arr[] = $v;
                $arr = array_merge($arr,get_all_parent($array,$v['pid']));
            }
        }
        return $arr;
    }

    定义标签:(考虑到每次访问这个都要去读这个,会很耗性能,所以做了缓存处理)

    <?php
    namespace CommonTag;
    use ThinkTemplateTagLib;
    class My extends TagLib{
        // 定义标签
        // 参考文章 : http://www.thinkphp.cn/topic/34758.html
        protected $tags = array(        
            'location'=> array('attr'=>'cid')
        );
        // location 标签
        public function _location($attr,$content){
            $cid = $attr['cid'];
            $str = <<<str
    <?php 
        $cid = {$cid};
        if(S('location_'.$cid)){
            $_location_result = S('location_' . $cid);
        }else{
            $_location_category = M('category')->select();
            $_location_result = array_reverse(get_all_parent($_location_category,$cid));
            S('location_'.$cid);
        }
        foreach($_location_result as $v):
            extract($v);
    ?>
    str;
        $str .= $content;
        $str .= '<?php endforeach; ?>';
        return $str;
        }
    };

    具体使用:

    <div id='location'>
        <a href="{:U('List/index')}">全部分类</a>
        <if condition="isset($_GET['id'])">&nbsp;&gt;&nbsp;
            <location cid='$_GET["id"]'>
                <if condition="$id == $_GET['id']">
                    {$name}
                <else/>
                    <a href="{:U('List/index',array('id'=>$id))}">{$name}</a>&nbsp;&gt;&nbsp;
                </if>
            </location>
        </if>
    </div>
  • 相关阅读:
    搜索复习-中级水题
    搜索复习-基础水题(一共12道)
    TCPThree_C杯 Day1
    bzoj1579 道路升级
    bzoj3732 Network(NOIP2013 货车运输)
    bzoj1624 寻宝之路
    bzoj1430 小猴打架
    bzoj2763 飞行路线
    2017-10-28-afternoon-清北模拟赛
    2017-10-28-morning-清北模拟赛
  • 原文地址:https://www.cnblogs.com/e0yu/p/7455476.html
Copyright © 2011-2022 走看看