-
-
< - /**
- * 機能: すべてのカテゴリをクエリしてツリー メニューを生成します
- * @param int $pid 親 ID、クエリはデフォルトで最上位から開始されます
- */
- function toTree($pid=0){
- //上位カテゴリをすべてクエリします
- //ここではデータベース接続についてはあまり説明しません
- $model=M('Category'); モデルをインスタンス化します
- //マップ条件をクエリします
- $map=array(
- 'pid'=>$pid,
- );
- //クエリ
- $data=$model- >where($map)->select();
- //生成された HTML ツリー メニューを格納する新しい配列を定義します
- $html_array=array();
- // ループ分類
- $html='';
- $ padding=0; //インデント
- foreach($data as $k=>$v){
- //パスフィールドの値に基づいてインデントが実装されます
- $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'].'
- ' ;< ;/p>
//下位レベルのカテゴリの検索を再帰的に開始します
- $data_array[]=toTree($v['id']);//現在のカテゴリの ID を使用して再帰します親 ID
- }
- / /foreach ループが終了し、分類された HTML 配列をマージします
- $html.=implode('',$data_array());
- $html.='';
- //HTML ツリー メニューの構築が完了しました。それはとても簡単です!
- return $html;
- }
-
コードをコピー
|