无线分类目录树 格式化 + 面包屑导航

<?php
namespace Home\Model;
use Think\Model;
class CategoryModel extends Model{
    /**
     * 获取目录树
     * 参数:
     *  $cats 所有的栏目信息
     *    $pid 父级栏目id
     *    $lev 父子栏目分层标示符 
     * */
    public function getTree($cats , $pid = 0 , $lev = 0){
        $res = array();
        foreach($cats as $v){
            if($v['parent_id']==$pid){
                $v['lev'] = $lev; 
                $res[] = $v;
                $res = array_merge( $res ,$this->getTree($cats , $v['cat_id'] , $lev+1) );
            }
        }
        return $res;
    }
    
    /**
     * 面包屑导航
     * 参数 :
     * $cat 当前栏目信息 
     * $cats 所有栏目信息
     * */
    public function getMnav($cat,$cats){
        $res = array($cat);
        while($cat['parent_id']!=0){
            foreach($cats as $v){
                if ($v['cat_id'] == $cat['parent_id']){
                    //$res[]=$v;
                    array_unshift($res, $v);
                    $cat = $v;
                    break;
                }
            }
        }
        return $res;
    }
}


#调用
   <tr>
        <td class="label">上级分类:</td>
        <td>
          <select name="parent_id">
            <option value="0">设为顶级栏目</option>
               <foreach name='cates' item='c'>
                 <option value="{$c.cat_id}">
                   {$c.lev|str_repeat='&nbsp;', ###*2 }{$c.cat_name}
                 </option>
               </foreach>
          </select>
        </td>
      </tr>

 

 

 

posted @ 2014-08-23 23:29  撑着破伞去看雨  阅读(222)  评论(0)    收藏  举报