| @@ 503-553 (lines=51) @@ | ||
| 500 | // Trainers |
|
| 501 | ////////////// |
|
| 502 | ||
| 503 | public function getTrainers($trainer_name, $team, $page, $rankingNumber) { |
|
| 504 | $ranking = $this->getTrainerLevelRanking(); |
|
| 505 | $where = ""; |
|
| 506 | if (!empty(self::$config->system->trainer_blacklist)) { |
|
| 507 | $where .= " AND gd.owner_name NOT IN ('".implode("','", self::$config->system->trainer_blacklist)."')"; |
|
| 508 | } |
|
| 509 | if ($trainer_name != "") { |
|
| 510 | $where = " AND gd.owner_name LIKE '%".$trainer_name."%'"; |
|
| 511 | } |
|
| 512 | if ($team != 0) { |
|
| 513 | $where .= ($where == "" ? " HAVING" : " AND")." team = ".$team; |
|
| 514 | } |
|
| 515 | switch ($rankingNumber) { |
|
| 516 | case 1: |
|
| 517 | $order = " ORDER BY active DESC, level DESC"; |
|
| 518 | break; |
|
| 519 | case 2: |
|
| 520 | $order = " ORDER BY maxCp DESC, level DESC"; |
|
| 521 | break; |
|
| 522 | default: |
|
| 523 | $order = " ORDER BY level DESC, active DESC"; |
|
| 524 | } |
|
| 525 | $order .= ", last_seen DESC, name "; |
|
| 526 | $limit = " LIMIT ".($page * 10).",10 "; |
|
| 527 | $req = "SELECT gd.owner_name AS name, MAX(owner_level) AS level, MAX(cp) AS maxCp, MAX(active) AS active, MAX(team) AS team, FROM_UNIXTIME(MAX(last_modified)) as last_seen |
|
| 528 | FROM gym_defenders gd |
|
| 529 | LEFT JOIN ( |
|
| 530 | SELECT owner_name, COUNT(*) as active |
|
| 531 | FROM gym_defenders gd2 |
|
| 532 | WHERE fort_id IS NOT NULL |
|
| 533 | GROUP BY owner_name |
|
| 534 | ) active ON active.owner_name = gd.owner_name |
|
| 535 | WHERE gd.owner_level IS NOT NULL " . $where . " |
|
| 536 | GROUP BY gd.owner_name" . $order . $limit; |
|
| 537 | $result = $this->mysqli->query($req); |
|
| 538 | $trainers = array(); |
|
| 539 | while ($data = $result->fetch_object()) { |
|
| 540 | $data->last_seen = date("Y-m-d", strtotime($data->last_seen)); |
|
| 541 | if (is_null($data->active)) { |
|
| 542 | $data->active = 0; |
|
| 543 | } |
|
| 544 | $trainers[$data->name] = $data; |
|
| 545 | ||
| 546 | $pokemon = array_merge($this->getActivePokemon($data->name), $this->getInactivePokemon($data->name)); |
|
| 547 | ||
| 548 | $trainers[$data->name]->gyms = $data->active; |
|
| 549 | $trainers[$data->name]->pokemons = $pokemon; |
|
| 550 | $trainers[$data->name]->rank = $ranking[$data->level]; |
|
| 551 | } |
|
| 552 | return $trainers; |
|
| 553 | } |
|
| 554 | ||
| 555 | public function getTrainerLevelRanking() { |
|
| 556 | $exclue = ""; |
|
| @@ 508-558 (lines=51) @@ | ||
| 505 | // Trainers |
|
| 506 | ////////////// |
|
| 507 | ||
| 508 | public function getTrainers($trainer_name, $team, $page, $rankingNumber) { |
|
| 509 | $ranking = $this->getTrainerLevelRanking(); |
|
| 510 | $where = ""; |
|
| 511 | if (!empty(self::$config->system->trainer_blacklist)) { |
|
| 512 | $where .= " AND gd.owner_name NOT IN ('".implode("','", self::$config->system->trainer_blacklist)."')"; |
|
| 513 | } |
|
| 514 | if ($trainer_name != "") { |
|
| 515 | $where = " AND gd.owner_name LIKE '%".$trainer_name."%'"; |
|
| 516 | } |
|
| 517 | if ($team != 0) { |
|
| 518 | $where .= ($where == "" ? " HAVING" : " AND")." team = ".$team; |
|
| 519 | } |
|
| 520 | switch ($rankingNumber) { |
|
| 521 | case 1: |
|
| 522 | $order = " ORDER BY active DESC, level DESC"; |
|
| 523 | break; |
|
| 524 | case 2: |
|
| 525 | $order = " ORDER BY maxCp DESC, level DESC"; |
|
| 526 | break; |
|
| 527 | default: |
|
| 528 | $order = " ORDER BY level DESC, active DESC"; |
|
| 529 | } |
|
| 530 | $order .= ", last_seen DESC, name "; |
|
| 531 | $limit = " LIMIT 10 OFFSET ".($page * 10); |
|
| 532 | $req = "SELECT gd.owner_name AS name, MAX(owner_level) AS level, MAX(cp) AS maxCp, MAX(active) AS active, MAX(team) AS team, TO_TIMESTAMP(MAX(last_modified)) as last_seen |
|
| 533 | FROM gym_defenders gd |
|
| 534 | LEFT JOIN ( |
|
| 535 | SELECT owner_name, COUNT(*) as active |
|
| 536 | FROM gym_defenders gd2 |
|
| 537 | WHERE fort_id IS NOT NULL |
|
| 538 | GROUP BY owner_name |
|
| 539 | ) active ON active.owner_name = gd.owner_name |
|
| 540 | WHERE level IS NOT NULL " . $where . " |
|
| 541 | GROUP BY gd.owner_name" . $order . $limit; |
|
| 542 | $result = $this->mysqli->query($req); |
|
| 543 | $trainers = array(); |
|
| 544 | while ($data = $result->fetch_object()) { |
|
| 545 | $data->last_seen = date("Y-m-d", strtotime($data->last_seen)); |
|
| 546 | if (is_null($data->active)) { |
|
| 547 | $data->active = 0; |
|
| 548 | } |
|
| 549 | $trainers[$data->name] = $data; |
|
| 550 | ||
| 551 | $pokemon = array_merge($this->getActivePokemon($data->name), $this->getInactivePokemon($data->name)); |
|
| 552 | ||
| 553 | $trainers[$data->name]->gyms = $data->active; |
|
| 554 | $trainers[$data->name]->pokemons = $pokemon; |
|
| 555 | $trainers[$data->name]->rank = $ranking[$data->level]; |
|
| 556 | } |
|
| 557 | return $trainers; |
|
| 558 | } |
|
| 559 | ||
| 560 | public function getTrainerLevelRanking() { |
|
| 561 | $exclue = ""; |
|