首頁 >php教程 >php手册 >当前栏目相关(当前位置、栏目列表、当前栏目数组等)

当前栏目相关(当前位置、栏目列表、当前栏目数组等)

WBOY
WBOY原創
2016-06-07 11:44:011194瀏覽

获取当前栏目相关数组(
当前位置、
栏目列表、
当前栏目数组,
一级栏目数组



第一次提交代码,如果有什么问题欢迎指正。
//unset($data[$key]);
上面代码注视是因为在测试的时候,如果同级有多个分类,如果进行unset操作就会只显示一个分类 ,各位大神们可以试试。
效果:
当前栏目相关(当前位置、栏目列表、当前栏目数组等)

1、调用函数 class VMSExtends{<br> /* category_tree()  <br>      * @param Array $cateArray[positionArr]        // 获取当前位置<br>      * @param Array $cateArray[position]    // 获取当前位置html代码<br>      * @param Array $cateArray[list]            // 该cate_id所在的树<br>      * @param Array $cateArray[start]           // 首位cate_id  <br>      * @param Array $cateArray[end]               // 末位cate_id<br>      * return $cateArray  <br>      */<br>     static public $pos_list = array();<br>     static public $cate_list = array();<br>     static public $cateArray = array();<br>     /* 获取当前位置数组 */ <br>     function got_pos(&$data,$nowcid,$count=0){<br>         foreach ($data as $key => $value){<br>             if($value['id']==$nowcid){<br>                 $value['count'] = $count;<br>                 self::$pos_list[]=$value;<br>                 //unset($data[$key]);<br>                 self::got_pos($data,$value['pid'],$count+1);<br>             } <br>         }<br>         return self::$pos_list;<br>     }<br>     /* 获取当前cate_id的一级栏目下的树 <br>      * <br>      */<br>     function got_list(&$data,$nowid,$count=0){<br>         foreach ($data as $key => $value){<br>             if($value['pid']==$nowid){<br>                 $value['counts'] = $count;<br>                 self::$cate_list[]=$value;<br>                 //unset($data[$key]);<br>                 self::got_list($data,$value['id'],$count+1);<br>             } <br>         }<br>         return self::$cate_list;<br>     }<br>     /* 获取当前cate_id相关数组 */<br>     function category_tree($data,$nowcid){<br>         /* 获取当前位置数组 */    <br>         $cateArray['positionArr'] = array_reverse(self::got_pos($data,$nowcid,0));<br>         foreach($cateArray['positionArr'] as $k=>$val){<br>             $cateArray['position'] .=' >> <a>'.$val[name].'</a> ';<br>         }<br>         // 获取首位 cate_id 数组<br>         $cateArray['start'] = $cateArray['positionArr'][0];<br>         // 获取末位 cate_id 数组<br>         $cateArray['end'] = end($cateArray['positionArr']);<br>         /* 获取当前cate_id的一级栏目下的树 */<br>         $cateArray['list'] = self::got_list($data,$cateArray['start']['id'],0);<br>         return $cateArray;<br>     }<br> }2、使用方法
我把(1)的代码的文件VMSExtends.php放在Extend/Vendor/VmsLib/下。
使用代码如下:/* 获取当前位置 */<br>         $result =  M($cate_name)->field('id,templ,pid,name')->where("templ != 'url'")<br>                                 ->order('sort_order ASC,id asc')->select();   // 应该是读取缓存数据的,为了测是方便就这样直接读数据库了<br> vendor('VmsLib.VMSExtends');<br> $cateArray = VMSExtends::category_tree($result,$cate_id);<br> $this->assign('cateArray',$cateArray);3、当前位置
{$cateArray['position']}

4、栏目列表

AD:真正免费,域名+虚机+企业邮箱=0元

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn