-
-
/**
- * 作用:查询所有分类生成Tree菜单
- * @param int $pid 父ID 默认从顶级开始查询
- */
- function toTree($pid=0){
- //查询所有顶级分类
- //数据库连接在此就不多说了
- $model=M('Category');实例化模型
- //查询map条件
- $map=array(
- 'pid'=>$pid,
- );
- //查询
- $data=$model->where($map)->select();
- //定义新数组 用来存生成的html树形菜单
- $html_array=array();
- //循环分类
- $html='';
- $padding=0; //缩进
- foreach($data as $k=>$v){
- //根据path字段的值实现缩进
- $path=$v['path'];
- if($path&&strpos($v['path'],'-')){
- $path_array=@explode('-',$v['path']);
- $count=count($path_array)-1;
- $padding=$count*20; //下一级分类缩进20像素
- }
- //当前分类数据html
- $data_array[]='
- '.$v['name'].'
- ';
//递归开始查找下级分类
- $data_array[]=toTree($v['id']);//把当前分类的id当做父级Id进行递归
- }
- //foreach循环结束合并分类html数组
- $html.=implode('',$data_array());
- $html.='';
- //html树形菜单构造完成,就这么简单,so easy吧!
- return $html;
- }
-
复制代码
|