-1, 'name' => '不选择', ); private $search_default = array ( 'value' => -1, 'name' => '分类', ); /** * 获取分类数据 * * @return mixed */ public function get() { $column = Dever::input('column', 1); if ($column > 0) { $where['column_id'] = $column; } # 联动总数 $level_total = 100; # 当前联动级别 $level_num = Dever::input('level_num'); # 一般为id $level_id = Dever::input('level_id'); # 传入的参数 $level_param = Dever::input('level_param'); if ($level_param) { parse_str($level_param, $param); $where['id'] = $param['id']; } # 是否是搜索列表页 $level_search = Dever::input('level_search'); if ($level_search) { $default = $this->search_default; $default['name'] = $level_num . '级' . $default['name']; } else { $default = $this->default; } $data = array(); # 三级联动 if ($level_num == 1) { $where['info_id'] = -1; } elseif($level_id > 0) { $where['info_id'] = $level_id; } if (isset($where['info_id'])) { $data = Dever::db('category/info')->getAll($where); } if ($data || $level_num == 1) { array_unshift($data, $default); } if (!$data) { Dever::alert('error'); } $result['level_total'] = $level_total; $result['list'] = $data; return $result; } /** * 根据分类id转成名称 * * @return mixed */ public function string($cate, $im = ',') { if ($cate) { $cate = explode(',', $cate); $result = array(); foreach ($cate as $k => $v) { $result[$k] = $this->getName($v); } $result = implode($im, $result); return $result; $table[] = $result; return Dever::table($table); } return ''; } /** * 获取顶级分类 * * @return mixed */ public function getTop($column) { $where = array(); if ($column > 0) { $where['column_id'] = $column; } $result = Dever::db('category/info')->getTop($where); return $result; } /** * 获取所有信息 * * @return mixed */ public function getAll($column, $cate = false) { $where = array(); if ($column > 0) { $where['column_id'] = $column; } if ($cate) { $where['info_id'] = $cate; } $result = Dever::db('category/info')->getList($where); return $result; } /** * 获取详细信息 * * @return mixed */ public function getInfo($cate) { if ($cate) { $cate = explode(',', $cate); $result = array(); foreach ($cate as $k => $v) { $result[$k] = $this->getName($v, true); } return $result; } return array(); } private function getName($id, $state = false) { $name = ''; if ($id > 0) { $data = Dever::db('category/info')->one($id); if ($state) { return $data; } if ($data) { $name = $data['name']; } } return $name; } # 根据上级分类获取下级分类 按照info_id进行索引 public function getChild($info_id) { if (is_numeric($info_id)) { $where['info_id'] = $info_id; } else { $where['info_id_in'] = $info_id; } $data = Dever::db('category/info')->getChild($where); return $data; } # 根据上级分类获取下级分类 public function getList($info_id) { if (is_numeric($info_id)) { $where['info_id'] = $info_id; } else { $where['info_id_in'] = $info_id; } $data = Dever::db('category/info')->getList($where); return $data; } # 根据顶级分类获取最低级的分类 public function getChildByTop($top_id, $level = -1) { $where['top_id'] = $top_id; $where['level'] = $level; $data = Dever::db('category/info')->getList($where); return $data; } }