$param['merchant_id'], 'status' => 0, [ [ 'industry_id' => $param['industry_id'], ], [ 'industry_id'=>0 ], '_logic'=>'or' ] ]; $ClassModel = new RetailGoodsClassModel(); $id_arr = $ClassModel->getFindField($where, 'id', true); return callBack(statusCode()['success'], '查询成功', $id_arr); } /** * 指定id集合查询最低层分类id的集合 * @param $class_id_str string * @return mixed */ public function basisIdGetLowerId($class_id_str) { $arr = []; $where = [ 'id' => ['in', $class_id_str] ]; $GoodsClassModel = new RetailGoodsClassModel(); $list = $GoodsClassModel->getSelect($where, $field = 'id,type', 'id desc'); if (!empty($list)) { foreach ($list as $val) { $info = $this->lowerId([ 'id' => $val['id'], 'type' => $val['type'] ]); if (!empty($info)) { $arr = array_merge($arr, $info); } } $arr = array_unique($arr); } return $arr; } /** * 根据分类id获取下级列表 * @param $param * class_id_str string * @return mixed */ public function basisIdGetList($param) { $where = [ 'id' => ['in', $param['class_id_str']] ]; $ClassModel = new RetailGoodsClassModel(); $list = $ClassModel->getSelect($where, 'id,type,class_name', 'id desc'); $class_list = []; foreach ($list as $value) { switch ($value['type']) { case 1: $info = $ClassModel->basisOneGetClassListAll($value['id'], "c1.id as c1_id,c1.class_name as c1_class_name,c2.id as c2_id,c2.class_name as c2_class_name,c3.id as c3_id,c3.class_name as c3_class_name"); foreach ($info as $v1) { $arr = []; if (!empty($v1['c3_id'])) { $arr['class_id'] = $v1['c3_id']; $arr['class_name'] = $v1['c3_class_name']; } else if (!empty($v1['c2_id'])) { $arr['class_id'] = $v1['c2_id']; $arr['class_name'] = $v1['c2_class_name']; } else { $arr['class_id'] = $v1['c1_id']; $arr['class_name'] = $v1['c1_class_name']; } $class_list[] = $arr; } break; case 2: $info = $ClassModel->basisTwoGetClassListAll($value['id'], "c2.id as c2_id,c2.class_name as c2_class_name,c3.id as c3_id,c3.class_name as c3_class_name"); foreach ($info as $v2) { $arr = []; if (!empty($val['c3_id'])) { $arr['class_id'] = $v2['c3_id']; $arr['class_name'] = $v2['c3_class_name']; } else { $arr['class_id'] = $v2['c2_id']; $arr['class_name'] = $v2['c2_class_name']; } $class_list[] = $arr; } break; case 3: $class_list[] = [ 'class_id' => $value['id'], 'class_name' => $value['class_name'] ]; break; } } $class_list = array_unique($class_list, SORT_REGULAR); return callBack(statusCode()['success'], "查询成功", $class_list); } /** * 指定分类id的名称集合 * @param $id_arr 分类id集合 * @return mixed */ public function basisIdGetNameList($id_arr) { if (empty($id_arr)) { return []; } $where = [ 'id' => ['in', $id_arr] ]; try { $ClassModel = new RetailGoodsClassModel(); $list = $ClassModel->getFindField($where, 'class_name', true); return $list; } catch (\Exception $e) { return []; } } /** * 指定分类id下面的所有下级分类id集合 * @param $param * [ * id 分类id * type 1 一级 2二级 3三级 * ] * @return mixed */ public function lowerId($param) { $arr = []; $ClassModel = new RetailGoodsClassModel(); switch ($param['type']) { case 3: $arr[] = $param['id']; break; case 2: $info = $ClassModel->basisTwoGetClassListAll($param['id'], "c2.id as c2_id,c3.id as c3_id"); foreach ($info as $val) { if (!empty($val['c3_id'])) { $arr[] = $val['c3_id']; } else { $arr[] = $val['c2_id']; } } break; case 1: $info = $ClassModel->basisOneGetClassListAll($param['id'], "c1.id as c1_id,c2.id as c2_id,c3.id as c3_id"); foreach ($info as $val) { if (!empty($val['c3_id'])) { $arr[] = $val['c3_id']; } else if (!empty($val['c2_id'])) { $arr[] = $val['c2_id']; } else { $arr[] = $val['c1_id']; } } break; } return $arr; } /** * 判断是否存在某分类不存在则添加 * @param $param * [ * class_arr_1 一级分类集合 (含id) * class_arr_2 二级分类集合 (含id) * class_arr_3 三级分类集合 (含id) * class_name_1 一级分类名称 * class_name_2 二级分类名称 * class_name_3 三级分类名称 * merchant_id * ] * @return array */ public function existClassAdd($param) { $class_arr_1 = $param['class_arr_1']; $class_arr_2 = $param['class_arr_2']; $class_arr_3 = $param['class_arr_3']; $class_name_1 = $param['class_name_1']; $class_name_2 = $param['class_name_2']; $class_name_3 = $param['class_name_3']; $goodsClassModel = new RetailGoodsClassModel(); if (!empty($class_arr_1[$class_name_1])) { $class_id_1 = $class_arr_1[$class_name_1]['id']; //一级分类id } else { $classResult = $this->addAppointClass([ 'type' => 1, 'merchant_id' => $param['merchant_id'], 'class_name' => $class_name_1, ]); //创建分类 if ($classResult['status'] != 1) { return $classResult; } $class_id_1 = $classResult['data']; if (empty($class_name_2)) { $child = $goodsClassModel->getFind(array('pid' => $class_id_1, 'status' => 0)); if (!empty($child)) { return callBack(statusCode()['error'], $class_name_2 . "该分类下存在子集分类,不能直接添加商品"); } } } $goods_class_id = $class_id_1; if (!empty($class_name_2)) { if (!empty($class_arr_2[$class_id_1 . '_' . $class_name_2])) { $class_id_2 = $class_arr_2[$class_id_1 . '_' . $class_name_2]['id']; //二级分类id } else { $classResult = $this->addAppointClass([ 'type' => 2, 'merchant_id' => $param['merchant_id'], 'class_name' => $class_name_2, 'pid' => $class_id_1 ]); //创建分类 if ($classResult['status'] != 1) { return $classResult; } $class_id_2 = $classResult['data']; if (empty($class_name_3)) { $child = $goodsClassModel->getFind(array('pid' => $class_id_2, 'status' => 0)); if (!empty($child)) { return callBack(statusCode()['error'], $class_name_2 . "该分类下存在子集分类,不能直接添加商品"); } } } $goods_class_id = $class_id_2; } if (!empty($class_name_3)) { if (!empty($class_arr_3[$class_id_2 . '_' . $class_name_3])) { $class_id_3 = $class_arr_3[$class_id_2 . '_' . $class_name_3]['id']; //三级分类id } else { $classResult = $this->addAppointClass([ 'type' => 3, 'merchant_id' => $param['merchant_id'], 'class_name' => $class_name_3, 'pid' => $class_id_2 ]); //创建分类 if ($classResult['status'] != 1) { return $classResult; } $class_id_3 = $classResult['data']; } $goods_class_id = $class_id_3; } return callBack(statusCode()['success'], "操作成功", $goods_class_id); } /** * 新增指定级别的分类 * @param $param * [ * type 1 一级 2 二级 3三级 * class_name * merchant_id * pid 上级分类 * ] * @return array */ public function addAppointClass($param) { if (!empty($param['pid'])) { $storeGoodsModel = new RetailGoodsModel(); $merchantGoodsModel = new RetailMgoodsModel(); $goods = $storeGoodsModel->getFind(array('goods_class_id' => $param['pid'], 'status' => array('in', '0,1'))); if (!empty($goods)) { return callBack(statusCode()['error'], '该一级分类存在商品,不能添加二级分类'); } $goods = $merchantGoodsModel->getFind(array('goods_class_id' => $param['pid'], 'status' => array('in', '0,1'))); if (!empty($goods)) { return callBack(statusCode()['error'], '该一级分类存在商品,不能添加二级分类'); } } $ClassModel = new RetailGoodsClassModel(); $id = $ClassModel->getOrderFindField(['merchantid' => $param['merchant_id'], 'type' => $param['type'], 'status' => 0, 'class_name' => trim($param['class_name'], ' '), 'pid' => $param['pid'] ? $param['pid'] : 0], 'id'); if (empty($id)) { $data = [ 'merchantid' => $param['merchant_id'], 'status' => 0, 'addtime' => $_SERVER['REQUEST_TIME'], 'class_name' => $param['class_name'], 'pid' => $param['pid'] ? $param['pid'] : 0, 'type' => $param['type'] ? $param['type'] : 1 ]; $code = $ClassModel->getOrderFindField(array('merchantid' => $param['merchant_id'], 'type' => $data['type'], 'pid' => $param['pid'] ? $param['pid'] : 0), 'code', 'code desc'); if ($code) { if (is_numeric($code)) { $data['code'] = $code + 1; } else { $data['code'] = $code . '1'; } } else { $data['code'] = 1; } $id = $ClassModel->addOrder($data); } return callBack(statusCode()['success'], '获取成功', $id); } /** * 获取各级分类集合 * @param $param * [ * merchant_id * ] * @return array */ public function getClassArr($param) { try { $ClassModel = new RetailGoodsClassModel(); $class_arr_1 = $ClassModel->getSelect(['merchantid' => $param['merchant_id'], 'status' => 0, 'type' => 1], "id,class_name", "code asc"); $class_arr_2 = $ClassModel->getSelect(['merchantid' => $param['merchant_id'], 'status' => 0, 'type' => 2], "id,class_name,pid", "code asc"); $class_arr_3 = $ClassModel->getSelect(['merchantid' => $param['merchant_id'], 'status' => 0, 'type' => 3], "id,class_name,pid", "code asc"); return ['class_arr_1' => $class_arr_1, 'class_arr_2' => $class_arr_2, 'class_arr_3' => $class_arr_3]; } catch (\Exception $e) { $class_arr_1 = []; $class_arr_2 = []; $class_arr_3 = []; return ['class_arr_1' => $class_arr_1, 'class_arr_2' => $class_arr_2, 'class_arr_3' => $class_arr_3]; } } /** * 获取各分类名称 * @param $id 分类id * @param $arr 分类集合 * @return string */ public function getName($id, $arr = []) { $ClassModel = new RetailGoodsClassModel(); $info = $ClassModel->field('class_name,pid,type')->where(['id' => $id])->cache(true, 300)->find(); $arr["class_name_" . $info['type']] = $info['class_name']; if (!empty($info['pid'])) { return $this->getName($info['pid'], $arr); } return $arr; } /** * 获取分类id作条件 * @param $parameter [person1=>一级分类,person2=>二级分类,person3=>三级分类] * @param $where 条件数组 [] * @param $key 条件字段名 * @return $where */ public static function getGoodsClassId($parameter, $where, $key) { if (empty($parameter['person1']) && empty($parameter['person2']) && empty($parameter['person3']) || empty($key)) { return $where; } $person1 = $parameter['person1']; //一级分类id $person2 = $parameter['person2']; //二级分类id $person3 = $parameter['person3']; //三级分类id $goodsClassModel = new RetailGoodsClassModel(); $flag = 0; if (!empty($person3)) { $where[$key] = $person3; } else if (!empty($person2)) { $class = $goodsClassModel->basisTwoGetClassId($person2); //根据二级分类id获取三级分类ID集合 $flag = 1; } else if (!empty($person1)) { $class = $goodsClassModel->basisOneGetClassId($person1); //根据一级分类id获取三级分类ID集合 $flag = 1; } if (!empty($class)) { $arr = array(); foreach ($class as &$val) { if (!in_array($val['id'], $arr)) { $arr[] = $val['id']; } if (!empty($val['c3_id'])) { if (!in_array($val['c3_id'], $arr)) { $arr[] = $val['c3_id']; } } } $str = implode(',', $arr); $where[$key] = array('in', $str . ',' . ($person2 ? $person2 : $person1)); } else if ($flag == 1) { $where[$key] = $person2 ? $person2 : $person1; } return $where; } /** * 获取顶级分类列表 * @param $merchant_id * @return array */ public function getGoodsClassTopLevel($merchant_id) { try { $classModel = new RetailGoodsClassModel(); $list = $classModel->getSelect(['merchantid' => $merchant_id, 'status' => 0, 'type' => 1], "*", "code asc"); return ['status' => 1, 'message' => '查询成功', 'data' => ['list' => $list]]; } catch (\Exception $e) { return ['status' => 1, 'message' => '查询成功', 'data' => ['list' => []]]; } } /** * 指定分类级别的列表 * @param $param * [ * merchant_id * industry_id 行业id * id 上级分类的id * type 1:一级分类; 2:二级分类 ; 3:三级分类 * ] * @return mixed */ public function appointTypeClassList($param) { $industry_id = $param['industry_id']; $ClassModel = new RetailGoodsClassModel(); switch ($param['type']) { case 1: //一级分类 $where = [ 'merchantid' => $param['merchant_id'], 'status' => 0, 'type' => 1 ]; if(!empty($industry_id)){ $where[] = [ [ 'industry_id'=>0 ], [ 'industry_id'=>$industry_id ], '_logic'=>'OR' ]; } $list = $ClassModel->getSelect($where, "id,class_name", "code asc"); break; case 2: //二级分类 $where = [ 'c1.id' => $param['id'], ]; if(!empty($industry_id)){ $where[] = [ [ 'c2.industry_id'=>0 ], [ 'c2.industry_id'=>$industry_id ], '_logic'=>'OR' ]; } $list = $ClassModel->basisOneGetClassList($where, "c2.id,c2.class_name"); break; case 3: //三级分类 $where['c2.id'] = $param['id']; if(!empty($industry_id)){ $where[] = [ [ 'c3.industry_id'=>0 ], [ 'c3.industry_id'=>$industry_id ], '_logic'=>'OR' ]; } $list = $ClassModel->basisTwoGetClassList($where, "c3.id,c3.class_name"); break; default: return callBack(statusCode()['error'], "分类级别错误"); break; } return callBack(statusCode()['success'], "查询成功", $list); } /** * 指定分类获取分类信息(用于优惠券指定分类详情) * @param $param * [ * merchant_id * store_id * class_id_str string * ] * @return mixed */ public function appointClass($param) { $fields = [ 'c1.id', 'c2.id as c2_id', 'c3.id as c3_id', 'c1.type', 'c1.class_name as c1_class_name', 'c2.class_name as c2_class_name', 'c3.class_name as c3_class_name' ]; $class_id_arr = explode(',', $param['class_id_str']); if (empty($class_id_arr)) { return []; } $where['c1.id'] = ['in', $class_id_arr]; try { $goodsClassModel = new RetailGoodsClassModel(); $list = $goodsClassModel->ClassListAll($where, $fields, 'c1.id desc'); if (!empty($list)) { $list = $this->classListTurn([ 'list' => $list, 'merchant_id' => $param['merchant_id'], 'store_id' => $param['store_id'] ]); } return $list; } catch (\Exception $e) { return []; } } /** * 获取所有分类(用于优惠券指定分类) * @param $param * [ * operator_type 1后台 2收银端 3助手端 * user_type 3商户 4门店 * merchant_id * store_id * class_name 分类名称 * exists_class_id_arr 已经选中的分类id集合 * page * limit * ] * @return mixed */ public function classList($param) { $verifyClass = new VerifyParam(); $verifyResult = $verifyClass->identityVerify($param); if ($verifyResult['status'] != 1) { return $verifyResult; } $fields = [ 'c1.id', 'c2.id as c2_id', 'c3.id as c3_id', 'c1.type', 'c1.class_name as c1_class_name', 'c2.class_name as c2_class_name', 'c3.class_name as c3_class_name' ]; $where = [ 'c1.merchantid' => $param['merchant_id'], 'c1.status' => 0 ]; if (!empty($param['exists_class_id_arr'])) { $where['c1.id'] = ['not in', $param['exists_class_id_arr']]; } if (!empty($param['class_name'])) { $where['c1.class_name'] = ['like', '%' . $param['class_name'] . '%']; } $goodsClassModel = new RetailGoodsClassModel(); $list = $goodsClassModel->ClassListAll($where, $fields, 'c1.id desc', $param['page'] . ',' . $param['limit']); if (!empty($list)) { $count = $goodsClassModel->ClassListCount($where); $list = $this->classListTurn([ 'list' => $list, 'merchant_id' => $param['merchant_id'], 'store_id' => $param['store_id'] ]); } return callBack(statusCode()['success'], "查询成功", [ 'list' => $list, 'count' => $count ? $count : 0 ]); } /** * 获取所有分类(用于优惠券指定分类)的字段转换 * @param $param * [ * list 列表 * merchant_id * store_id * ] * @return mixed */ public function classListTurn($param) { $list = $param['list']; $GoodsModel = new SSaleMGoodsModel(); $map = [ 'merchant_id' => $param['merchant_id'], 'store_id' => $param['store_id'], 'status' => ['neq', 2] ]; foreach ($list as $key => &$val) { $val['index'] = $key + 1; switch ($val['type']) { case 1: $val['type_name'] = '一级分类'; $class_name_1 = $val['c1_class_name']; $val['id_list'] = [$val['id']]; break; case 2: $val['type_name'] = '二级分类'; $class_name_1 = $val['c2_class_name']; $class_name_2 = $val['c1_class_name']; $val['id_list'] = [$val['c2_id'], $val['id']]; break; case 3: $val['type_name'] = '三级分类'; $class_name_3 = $val['c1_class_name']; $class_name_2 = $val['c2_class_name']; $class_name_1 = $val['c3_class_name']; $val['id_list'] = [$val['c3_id'], $val['c2_id'], $val['id']]; break; } $class_name = ''; $class_name .= $class_name_1; if (!empty($class_name_2)) { $class_name .= '/' . $class_name_2; } if (!empty($class_name_3)) { $class_name .= '/' . $class_name_3; } $val['class_name'] = $class_name; unset($class_name_3); unset($class_name_2); unset($class_name_1); $class_id_arr = $this->lowerId([ 'id' => $val['id'], 'type' => $val['type'] ]); if (!empty($class_id_arr)) { $map['goods_class_id'] = ['in', $class_id_arr]; $num = $GoodsModel->getCount($map); } $val['goods_num'] = $num ? $num : 0; unset($class_id_arr); } return $list; } /** *获取所有分类 (用于商品导入)键名转化格式 一级分类/二级分类/三级分类 * @param $parameter * [ * merchant_id * ] * @return array */ public function goodsClassTurnList($parameter) { $merchant_id = $parameter['merchant_id']; if (empty($merchant_id)) { return []; } try { $goodsClassModel = new RetailGoodsClassModel(); $class_arr = $goodsClassModel->getClassList($merchant_id); } catch (\Exception $e) { return []; } $tempClass = array(); //转化后的数组 if ($class_arr) { foreach ($class_arr as $v_class) { $name = $v_class['c1_class_name']; $class_id = $v_class['c1_id']; if ($v_class['c2_id']) { $name .= '/' . $v_class['c2_class_name']; $class_id = $v_class['c2_id']; if ($v_class['c3_id']) { $name .= '/' . $v_class['c3_class_name']; $class_id = $v_class['c3_id']; } } $v_class['class_id'] = $class_id; $tempClass[$name] = $v_class; } } return $tempClass; } /** * 新增分类与子分类 * @param $parameter * [ * name 分类名称 * merchant_id * ] * @return mixed */ public function createGoodsClass($parameter) { try { $name = $parameter['name']; $merchant_id = $parameter['merchant_id']; $goodsClassModel = new RetailGoodsClassModel(); $storeGoodsModel = new RetailGoodsModel(); $merchantGoodsModel = new RetailMgoodsModel(); $arr = explode('/', $name); $map['class_name'] = $arr[0]; $map['merchantid'] = $merchant_id; $map['type'] = 1; $map['status'] = 0; $class = $goodsClassModel->getFind($map); $flag = false; if (!empty($class)) { $class1_id = $class['id']; } else { $code = $goodsClassModel->getOrderFindField(array('merchantid' => $merchant_id, 'type' => 1), 'code', 'code desc'); if ($code) { if (is_numeric($code)) { $map['code'] = $code + 1; } else { $map['code'] = $code . '1'; } } else { $map['code'] = 1; } $map['addtime'] = time(); $add = $goodsClassModel->addOrder($map); if ($add) { $class1_id = $add; $flag = true; } else { $res['status'] = 0; $res['msg'] = '服务器出错,添加分类失败,请重试'; return $res; } } unset($map['addtime']); unset($map['code']); $flag1 = false; if ($arr[1]) { $map['type'] = 2; $map['class_name'] = $arr[1]; $map['pid'] = $class1_id; $class2 = $goodsClassModel->getFind($map); if (!empty($class2)) { $class2_id = $class2['id']; } else { if (!$flag) { $goods = $storeGoodsModel->getFind(array('goods_class_id' => $class1_id, 'status' => array('in', '0,1'))); if (!empty($goods)) { $res['status'] = 0; $res['msg'] = '该一级分类下存在商品,不能添加二级分类'; return $res; } $goods = $merchantGoodsModel->getFind(array('goods_class_id' => $class1_id, 'status' => array('in', '0,1'))); if (!empty($goods)) { $res['status'] = 0; $res['msg'] = '该一级分类下存在商品,不能添加二级分类'; return $res; } } $code = $goodsClassModel->getOrderFindField(array('merchantid' => $merchant_id, 'pid' => $class1_id, 'type' => 2), 'code', 'code desc'); if ($code) { if (is_numeric($code)) { $map['code'] = $code + 1; } else { $map['code'] = $code . '1'; } } else { $map['code'] = 1; } $map['addtime'] = time(); $add = $goodsClassModel->addOrder($map); if ($add) { $class2_id = $add; $flag1 = true; } else { $res['status'] = 0; $res['msg'] = '服务器出错,添加分类失败,请重试'; return $res; } } unset($map['addtime']); unset($map['code']); if ($arr[2]) { $map['type'] = 3; $map['class_name'] = $arr[2]; $map['pid'] = $class2_id; $class3 = $goodsClassModel->getFind($map); if (!empty($class3)) { $res['status'] = 1; $res['class_id'] = $class3['id']; return $res; } else { if (!$flag1) { $goods = $storeGoodsModel->getFind(array('goods_class_id' => $class2_id, 'status' => array('in', '0,1'))); if (!empty($goods)) { $res['status'] = 0; $res['msg'] = '该二级分类下存在商品,不能添加三级分类'; return $res; } $goods = $merchantGoodsModel->getFind(array('goods_class_id' => $class2_id, 'status' => array('in', '0,1'))); if (!empty($goods)) { $res['status'] = 0; $res['msg'] = '该二级分类下存在商品,不能添加三级分类'; return $res; } } $code = $goodsClassModel->getOrderFindField(array('merchantid' => $merchant_id, 'pid' => $class2_id, 'type' => 3), 'code', 'code desc'); if ($code) { if (is_numeric($code)) { $map['code'] = $code + 1; } else { $map['code'] = $code . '1'; } } else { $map['code'] = 1; } $map['addtime'] = time(); $add = $goodsClassModel->addOrder($map); if ($add) { $res['status'] = 1; $res['class_id'] = $add; return $res; } else { $res['status'] = 0; $res['msg'] = '服务器出错,添加分类失败,请重试'; return $res; } } } else { $res['status'] = 1; $res['class_id'] = $class2_id; return $res; } } else { $res['status'] = 1; $res['class_id'] = $class1_id; } return $res; } catch (\Exception $e) { $res['status'] = 0; $res['msg'] = '服务器出错,添加分类失败,请重试'; return $res; } } /** * 获取商品分类-按数组存放顺序返回一、二、三级分类ID列表 * @param $id 分类ID * @param array $class_list 已记录的分类ID列表 */ public function getAppointGoodsClassList($id, &$class_list = []) { $ClassModel = new RetailGoodsClassModel(); $class = $ClassModel->getFind(['id' => $id], 'id,pid'); //存在分类则继续获取 if ($class) { array_unshift($class_list, $class['id']); if (!empty($class['pid'])) { //非一级分类 $this->getAppointGoodsClassList($class['pid'], $class_list); } } } /** * 根据上级ID获取商品分类列表 并返回该分类是否含有下级 * @param $param * @return mixed */ public function getAbsolutelyGoodsClass($param) { $ClassModel = new RetailGoodsClassModel(); $map = array( 'merchantid' => $param['merchant_id'], 'status' => 0, ); if (!empty($param['pid'])) { $map['pid'] = $param['pid']; } else { $map['type'] = 1; } $classList = $ClassModel->getSelect($map, 'id,pid,class_name,type');//获取当前的分类 foreach ($classList as &$val) { $val['leaf'] = true; if ($val['type'] != 3) { $cMap = array( 'pid' => $val['id'], 'merchantid' => $param['merchant_id'], 'status' => 0, ); $children = $ClassModel->getFind($cMap); if (!empty($children)) { $val['leaf'] = false; } } } return $classList ? $classList : array(); } }