예제 #1
0
 public function tree($vid, $parent = 0, $max_depth = NULL)
 {
     static $trees = [];
     if (empty($trees[$vid])) {
         $tree = array();
         $cleanParent = array();
         $elems = \Yii::$app->db->createCommand('SELECT * FROM {{%taxonomy_items}} taxonomy_items WHERE  vid = :vid ORDER BY weight')->bindValue(':vid', $vid)->queryAll();
         foreach ($elems as $itm) {
             $tree[$itm['id']] = $itm;
         }
         $tree = DataHelper::treeMap($tree);
         $trees[$vid] = $tree;
     } else {
         $tree = $trees[$vid];
     }
     if ($parent) {
         $tree = DataHelper::treeParent($tree, $parent);
     }
     if ($max_depth !== NULL) {
         $tree = DataHelper::treeDepth($tree, $max_depth);
     }
     return $tree;
 }