api_url . '/category/tree'; $ret = $this->CallAPI($url); if($ret === false){ return false; } $resp = json_decode($ret, true); if(!isset($resp['success']) || !$resp['success']){ $this->last_error = $resp['error']; return false; } if(isset($resp['data'])){ if($treeFormat) { return $resp['data']; }else{ return $this->treeToList($resp['data']); } } return false; } public function getBrands() { $url = $this->api_url . '/category/brands'; $ret = $this->CallAPI($url); if($ret === false){ return false; } $resp = json_decode($ret, true); if(!isset($resp['success']) || !$resp['success']){ $this->last_error = $resp['error']; return false; } if(isset($resp['data'])){ return $resp['data']; } return false; } public function getAttributes($id) { $url = $this->api_url . '/category/' . $id . '/attributes'; $ret = $this->CallAPI($url); if($ret === false){ return false; } $resp = json_decode($ret, true); if(!isset($resp['success']) || !$resp['success']){ $this->last_error = isset($resp['error']) ? $resp['error'] : $ret; return false; } if(isset($resp['data'])){ return $resp['data']; } return false; } private function treeToList($tree = [], $prefix = '') { $ret = []; $separator = $prefix=='' ? '' : ' / '; foreach ($tree as $item) { $name = $item['name']; if(isset($item['children'])) { $children = $this->treeToList($item['children'], $prefix . $separator . $name); foreach($children as $key => $child){ $ret[] = [ 'id' => $child['id'], 'name' => $child['name'] ]; } }else{ $ret[] = [ 'id' => $item['category_id'], 'name' => $prefix . $separator . $name ]; } } return $ret; } }