| @@ 649-688 (lines=40) @@ | ||
| 646 | return $levelData; |
|
| 647 | } |
|
| 648 | ||
| 649 | private function getTrainerData($trainer_name, $team, $page, $ranking) |
|
| 650 | { |
|
| 651 | $where = ''; |
|
| 652 | if (!empty(self::$config->system->trainer_blacklist)) { |
|
| 653 | $where .= ('' == $where ? ' HAVING' : ' AND')." name NOT IN ('".implode("','", self::$config->system->trainer_blacklist)."')"; |
|
| 654 | } |
|
| 655 | if ('' != $trainer_name) { |
|
| 656 | $where = " HAVING name LIKE '%".$trainer_name."%'"; |
|
| 657 | } |
|
| 658 | if (0 != $team) { |
|
| 659 | $where .= ('' == $where ? ' HAVING' : ' AND').' team = '.$team; |
|
| 660 | } |
|
| 661 | switch ($ranking) { |
|
| 662 | case 1: |
|
| 663 | $order = ' ORDER BY active DESC, level DESC'; |
|
| 664 | break; |
|
| 665 | case 2: |
|
| 666 | $order = ' ORDER BY maxCp DESC, level DESC'; |
|
| 667 | break; |
|
| 668 | default: |
|
| 669 | $order = ' ORDER BY level DESC, active DESC'; |
|
| 670 | } |
|
| 671 | $order .= ', last_seen DESC, name '; |
|
| 672 | $limit = ' LIMIT '.($page * 10).',10 '; |
|
| 673 | $req = "SELECT trainer.*, COUNT(actives_pokemons.trainer_name) AS active, max(actives_pokemons.cp) AS maxCp |
|
| 674 | FROM trainer |
|
| 675 | LEFT JOIN (SELECT DISTINCT gympokemon.pokemon_id, gympokemon.pokemon_uid, gympokemon.trainer_name, gympokemon.cp, DATEDIFF(UTC_TIMESTAMP(), gympokemon.last_seen) AS last_scanned |
|
| 676 | FROM gympokemon |
|
| 677 | INNER JOIN (SELECT gymmember.pokemon_uid, gymmember.gym_id FROM gymmember GROUP BY gymmember.pokemon_uid, gymmember.gym_id HAVING gymmember.gym_id <> '') AS filtered_gymmember |
|
| 678 | ON gympokemon.pokemon_uid = filtered_gymmember.pokemon_uid) AS actives_pokemons ON actives_pokemons.trainer_name = trainer.name |
|
| 679 | GROUP BY trainer.name ".$where.$order.$limit; |
|
| 680 | $result = $this->mysqli->query($req); |
|
| 681 | $trainers = array(); |
|
| 682 | while ($data = $result->fetch_object()) { |
|
| 683 | $data->last_seen = date('Y-m-d', strtotime($data->last_seen)); |
|
| 684 | $trainers[$data->name] = $data; |
|
| 685 | } |
|
| 686 | ||
| 687 | return $trainers; |
|
| 688 | } |
|
| 689 | ||
| 690 | private function getTrainerLevelRating($level) |
|
| 691 | { |
|
| @@ 667-706 (lines=40) @@ | ||
| 664 | return $levelData; |
|
| 665 | } |
|
| 666 | ||
| 667 | private function getTrainerData($trainer_name, $team, $page, $ranking) |
|
| 668 | { |
|
| 669 | $where = ''; |
|
| 670 | if (!empty(self::$config->system->trainer_blacklist)) { |
|
| 671 | $where .= ('' == $where ? ' HAVING' : ' AND')." name NOT IN ('".implode("','", self::$config->system->trainer_blacklist)."')"; |
|
| 672 | } |
|
| 673 | if ('' != $trainer_name) { |
|
| 674 | $where = " HAVING name LIKE '%".$trainer_name."%'"; |
|
| 675 | } |
|
| 676 | if (0 != $team) { |
|
| 677 | $where .= ('' == $where ? ' HAVING' : ' AND').' team = '.$team; |
|
| 678 | } |
|
| 679 | switch ($ranking) { |
|
| 680 | case 1: |
|
| 681 | $order = ' ORDER BY active DESC, level DESC'; |
|
| 682 | break; |
|
| 683 | case 2: |
|
| 684 | $order = ' ORDER BY maxCp DESC, level DESC'; |
|
| 685 | break; |
|
| 686 | default: |
|
| 687 | $order = ' ORDER BY level DESC, active DESC'; |
|
| 688 | } |
|
| 689 | $order .= ', last_seen DESC, name '; |
|
| 690 | $limit = ' LIMIT '.($page * 10).',10 '; |
|
| 691 | $req = "SELECT trainer.*, COUNT(actives_pokemons.trainer_name) AS active, max(actives_pokemons.cp) AS maxCp |
|
| 692 | FROM trainer |
|
| 693 | LEFT JOIN (SELECT DISTINCT gympokemon.pokemon_id, gympokemon.pokemon_uid, gympokemon.trainer_name, gympokemon.cp, DATEDIFF(UTC_TIMESTAMP(), gympokemon.last_seen) AS last_scanned |
|
| 694 | FROM gympokemon |
|
| 695 | INNER JOIN (SELECT gymmember.pokemon_uid, gymmember.gym_id FROM gymmember GROUP BY gymmember.pokemon_uid, gymmember.gym_id HAVING gymmember.gym_id <> '') AS filtered_gymmember |
|
| 696 | ON gympokemon.pokemon_uid = filtered_gymmember.pokemon_uid) AS actives_pokemons ON actives_pokemons.trainer_name = trainer.name |
|
| 697 | GROUP BY trainer.name ".$where.$order.$limit; |
|
| 698 | $result = $this->mysqli->query($req); |
|
| 699 | $trainers = array(); |
|
| 700 | while ($data = $result->fetch_object()) { |
|
| 701 | $data->last_seen = date('Y-m-d', strtotime($data->last_seen)); |
|
| 702 | $trainers[$data->name] = $data; |
|
| 703 | } |
|
| 704 | ||
| 705 | return $trainers; |
|
| 706 | } |
|
| 707 | ||
| 708 | private function getTrainerLevelRating($level) |
|
| 709 | { |
|