2017-06-20 08:43:36 +02:00
< ? php
namespace App\Http\Controllers ;
use Illuminate\Http\Request ;
use App\User ;
2017-06-21 17:12:07 +02:00
use App\Season ;
use App\Payment ;
2017-06-26 17:21:30 +02:00
use App\Round ;
use App\Game ;
use App\Tipp ;
2017-06-20 08:43:36 +02:00
use DB ;
2017-06-26 17:21:30 +02:00
use Auth ;
use Log ;
2017-08-10 17:14:49 +02:00
use Carbon ;
2017-06-20 08:43:36 +02:00
class UsersController extends Controller
{
2017-06-21 17:12:07 +02:00
public function main () {
2017-08-01 13:35:34 +02:00
$roundname = " " ;
$report = " " ;
2017-06-26 17:21:30 +02:00
2017-08-01 13:35:34 +02:00
$currentSeason = Season :: getCurrent ();
if ( $currentSeason ) {
$round_id = Round :: getLastLockedRoundId ();
if ( $round_id > - 1 ) {
$round = Round :: where ( " id " , " = " , $round_id ) -> first ();
$report = $round -> report ;
Log :: info ( " Loaded report: " . $report . " round-id= " . $round_id );
$roundname = $round -> name ;
} else { Log :: info ( " No round identified. Last Locked= " . $round_id ); }
} else { Log :: info ( " No current season " );}
return view ( 'main' , compact ( 'roundname' , 'report' ));
2017-06-20 08:43:36 +02:00
}
2017-06-21 17:12:07 +02:00
public function index () {
2017-06-26 17:21:30 +02:00
if ( Auth :: guest ()) { return redirect ( " / " ); }
if ( ! Auth :: user () -> admin ) { return redirect ( " / " ); }
2017-08-03 20:47:51 +02:00
$users = DB :: table ( 'users' ) -> where ( 'deleted' , null ) -> orderBy ( 'lastname' ) -> get ();
2017-06-21 17:12:07 +02:00
return view ( 'users.index' , compact ( 'users' ));
2017-06-20 08:43:36 +02:00
}
2017-08-03 20:47:51 +02:00
/*
2017-06-20 08:43:36 +02:00
public function showUsers () {
2017-08-03 20:47:51 +02:00
$users = DB :: table ( 'users' ) -> orderBy ( 'lastname' ) -> get ();
2017-06-20 08:43:36 +02:00
return view ( 'users.list' , compact ( 'users' ));
}
2017-08-03 20:47:51 +02:00
*/
2017-06-20 08:43:36 +02:00
// Route-Model binding, because parameter in web.php route has same name as functionparameter
public function showUser ( User $userObject ) {
//return $userObject; // If you want it as a JSON object
//$user = DB::table('users')->find($id);
return view ( 'users.show' , compact ( 'userObject' ));
}
2017-06-21 17:12:07 +02:00
public function edit ( $user_id ) {
2017-06-26 17:21:30 +02:00
if ( Auth :: guest ()) { return redirect ( " / " ); }
if ( ! Auth :: user () -> admin ) { return redirect ( " / " ); }
2017-06-21 17:12:07 +02:00
$user = User :: where ( 'id' , $user_id ) -> first ();
$season_id = Season :: getCurrent () -> id ;
$paid_date_str = " " ;
$val = User :: payment_date ( $user_id , $season_id );
2017-06-26 17:21:30 +02:00
Log :: info ( " UserController:edit => payment_date= " . $val );
if ( $val ) { $paid_date_str = User :: toGermanDate ( $val );}
Log :: info ( " German Date= " . $paid_date_str );
2017-06-21 17:12:07 +02:00
return view ( 'users.edit' , compact ( 'user' , 'paid_date_str' ));
}
public function store () {
2017-06-26 17:21:30 +02:00
if ( Auth :: guest ()) { return redirect ( " / " ); }
2017-06-21 17:12:07 +02:00
$season_id = Season :: getCurrent () -> id ;
// Validate form
$this -> validate ( request (), [
'id' => 'required' ,
2017-08-01 14:33:22 +02:00
'firstname' => 'required' ,
'lastname' => 'required' ,
2017-06-21 17:12:07 +02:00
'email' => 'required'
]);
2017-08-01 14:33:22 +02:00
2017-06-21 17:12:07 +02:00
$user = User :: where ( 'id' , request ( 'id' )) -> first ();
2017-08-01 14:33:22 +02:00
$user -> name = request ( 'firstname' ) . " " . request ( 'lastname' );
$user -> firstname = request ( 'firstname' );
$user -> lastname = request ( 'lastname' );
2017-06-21 17:12:07 +02:00
$user -> email = request ( 'email' );
2017-06-22 17:00:09 +02:00
if ( request () -> has ( 'admin' )) {
$user -> admin = true ;
} else {
$user -> admin = false ;
}
2017-06-21 17:12:07 +02:00
$user -> save ();
2017-06-22 17:00:09 +02:00
Payment :: set_payment_date ( request ( 'id' ), $season_id , request ( 'paid' ));
2017-06-21 17:12:07 +02:00
return redirect ( '/users' );
}
2017-08-01 13:35:34 +02:00
2017-06-26 17:21:30 +02:00
public function ranking ( $round_id ) {
2017-07-03 19:04:27 +02:00
Log :: info ( " Start ranking " );
2017-06-26 17:21:30 +02:00
$currentSeason = Season :: getCurrent ();
if ( ! $currentSeason ) { return redirect ( " / " ); }
if ( $round_id ==- 1 ) {
2017-06-27 08:22:25 +02:00
$round_id = Round :: getLastLockedRoundId ();
2017-08-04 16:51:28 +02:00
if ( $round_id ==- 1 ) {
$sql = " select DATE_FORMAT(date_sub(min(games.kickoff), interval 1 hour),'%d.%m.%Y %H:%i') as start_date from rounds,games where rounds.season_id= " . $currentSeason -> id . " and games.round_id=rounds.id; " ;
$date = DB :: select ( $sql );
if ( count ( $date ) > 0 ) {
$start_date = $date [ 0 ] -> start_date ;
return view ( 'users.no_ranking' , compact ( 'start_date' ));
} else {
return redirect ( " / " );
}
}
2017-06-26 17:21:30 +02:00
}
if ( Auth :: guest ()) { return redirect ( " / " ); }
2017-06-22 21:22:07 +02:00
TippsController :: createAllTips ();
$users = DB :: table ( 'users' ) -> where ( 'deleted' , null ) -> get ();
2017-06-26 17:21:30 +02:00
2017-07-03 19:04:27 +02:00
$highestDayScore = 0 ;
2017-07-18 14:58:32 +02:00
// Tagessieg
2017-06-26 17:21:30 +02:00
foreach ( $users as $user ) {
2017-07-18 14:58:32 +02:00
//Log::info("User: ".$user->id.", ".$user->fullname);
2017-06-28 18:05:52 +02:00
$user -> totalScore = 0 ; // Summe Ranglisten-Punkte bis heute
$user -> dayScore = 0 ; // Heute gemachte Ranglisten-Punkte
$user -> dayWinScore = 0 ; // Tagessieg-Punkte, nur exakte Ergebnisse zählen
$user -> dayWinHighestJoker = 0 ; // Tagessieg-Punkte, nur exakte Ergebnisse zählen
$round = Round :: where ( 'id' , '=' , $round_id ) -> first ();
2017-07-03 19:04:27 +02:00
$games = Game :: where ( 'round_id' , '=' , $round -> id ) -> get ();
//Log::info('Nr of games found: '.count($games)." game->id=".$round->id." user->id=".$user->id );
2017-07-18 14:58:32 +02:00
2017-06-28 18:05:52 +02:00
foreach ( $games as $game ) {
2017-07-03 19:04:27 +02:00
$tipp = Tipp :: where ([[ 'game_id' , '=' , $game -> id ],[ 'user_id' , '=' , $user -> id ]]) -> first ();
2017-06-28 18:05:52 +02:00
if ( $tipp ) {
$score = Tipp :: getDayScoreLocal ( $game -> score1 , $game -> score2 , $tipp -> score1 , $tipp -> score2 , $tipp -> joker );
2017-07-18 14:58:32 +02:00
if ( $score > $user -> dayWinScore ) {
$user -> dayWinScore = $score ;
}
if ( $score > $highestDayScore ) { $highestDayScore = $score ; }
2017-06-28 18:05:52 +02:00
} else {
Log :: info ( " No tipp found for game_id= " . $game -> id . " , user_id= " . $user -> id );
}
}
2017-06-26 17:21:30 +02:00
}
2017-07-18 14:58:32 +02:00
//Tendency Key=UserID_Runde
$tendencies = array ( '0_0' => 0 );
// Punktrangliste
$rounds = Round :: where ([[ 'season_id' , '=' , $currentSeason -> id ],[ 'id' , '<=' , $round_id ]]) -> orderBy ( 'id' ) -> get ();
2017-06-26 17:21:30 +02:00
foreach ( $rounds as $round ) {
2017-07-18 14:58:32 +02:00
2017-06-26 17:21:30 +02:00
$games = Game :: where ( 'round_id' , '=' , $round -> id ) -> orderBy ( 'id' ) -> get ();
$index = 0 ;
2017-07-18 14:58:32 +02:00
2017-06-26 17:21:30 +02:00
foreach ( $games as $game ) {
foreach ( $users as $user ) {
2017-07-18 14:58:32 +02:00
$key = $user -> id . " _ " . $round -> id ;
$user -> tendencyCount = 0 ; // 4 correct tendencies ==> +2 bonus score
2017-06-26 17:21:30 +02:00
$tipp = Tipp :: where ( 'game_id' , '=' , $game -> id ) -> where ( 'user_id' , '=' , $user -> id ) -> first ();
2017-07-18 14:58:32 +02:00
2017-06-26 17:21:30 +02:00
if ( $tipp ) {
2017-06-28 18:05:52 +02:00
// Ranglisten-Punkte berechen
2017-06-26 17:21:30 +02:00
$score = Tipp :: getScoreLocal ( $game -> score1 , $game -> score2 , $tipp -> score1 , $tipp -> score2 , $tipp -> joker );
2017-07-18 14:58:32 +02:00
if ( $score > 0 ) {
if ( ! array_key_exists ( $key , $tendencies )) { $tendencies [ $key ] = 0 ; }
$tendencies [ $key ] += 1 ;
}
2017-06-26 17:21:30 +02:00
$user -> totalScore += $score ;
if ( $game -> round_id == $round_id ) {
$user -> dayScore += $score ;
}
$tippDisplay [ $user -> id ][ $game -> id ][ 0 ] = $tipp -> score1 ==- 1 ? 'x' : $tipp -> score1 ;
$tippDisplay [ $user -> id ][ $game -> id ][ 1 ] = $tipp -> score2 ==- 1 ? 'x' : $tipp -> score2 ;
$tippDisplay [ $user -> id ][ $game -> id ][ 2 ] = $tipp -> joker ;
}
2017-07-18 14:58:32 +02:00
// Increase score here
if ( array_key_exists ( $key , $tendencies )) {
if ( $tendencies [ $key ] == 4 ) {
2017-08-01 13:35:34 +02:00
//Log::info("Increasing score ! userid=" . $user->id . ", gameid " . $game->id . ", roundid " . $round->id . ", tippid " . $tipp->id . ", tendency=" . $tendencies[$key]);
2017-07-18 14:58:32 +02:00
$user -> totalScore += 2 ;
$user -> dayScore += 2 ;
}
}
2017-06-26 17:21:30 +02:00
}
$index += 1 ;
}
}
$arr = [];
foreach ( $users as $user ) {
array_push ( $arr , $user );
}
usort ( $arr , array ( $this , " cmp " ));
$users = $arr ;
2017-06-27 08:57:56 +02:00
$rank = 1 ;
foreach ( $users as $user ) {
$user -> rank = $rank ;
$rank += 1 ;
}
2017-06-26 17:21:30 +02:00
$round = Round :: where ( 'id' , '=' , $round_id ) -> first ();
$games = Game :: where ( 'round_id' , '=' , $round -> id ) -> get ();
2017-06-27 08:22:25 +02:00
$all_rounds = Round :: where ( 'season_id' , '=' , $currentSeason -> id ) -> get ();
2017-07-03 19:04:27 +02:00
return view ( 'users.ranking' , compact ( 'users' , 'round' , 'all_rounds' , 'games' , 'tippDisplay' , 'highestDayScore' ));
2017-06-26 17:21:30 +02:00
}
public function cmp ( $user1 , $user2 ) {
return ( $user1 -> totalScore < $user2 -> totalScore );
2017-06-22 21:22:07 +02:00
}
2017-06-26 17:21:30 +02:00
2017-08-08 15:32:54 +02:00
public function ranking2 ( $max_round_id ) {
$currentSeason = Season :: getCurrent ();
2017-08-10 17:14:49 +02:00
// Check ob mindestens eine Runde der Saison gelockt ist angezeigt werden kann
if ( $max_round_id ==- 1 ) {
$max_round_id = Round :: getLastLockedRoundId ();
if ( $max_round_id ==- 1 ) {
$sql = " select DATE_FORMAT(date_sub(min(games.kickoff), interval 1 hour),'%d.%m.%Y %H:%i') as start_date from rounds,games where rounds.season_id= " . $currentSeason -> id . " and games.round_id=rounds.id; " ;
$date = DB :: select ( $sql );
if ( count ( $date ) > 0 ) {
$start_date = $date [ 0 ] -> start_date ;
return view ( 'users.no_ranking' , compact ( 'start_date' ));
} else {
return redirect ( " / " );
}
}
}
2017-08-08 15:32:54 +02:00
// Hier werden _alle_ Tipps der aktuellen Saison ausgerechnet, die $round_id Begrenzung wird erst später ausgewertet.
$sql = " select users.id as user_id, users.name as user_name, " ;
$sql = $sql . " rounds.id as round_id, rounds.name as round_name, " ;
2017-08-10 17:14:49 +02:00
$sql = $sql . " games.id as game_id, games.team1, games.team2, games.score1 as game_score1, games.score2 as game_score2, games.kickoff as game_kickoff, " ;
2017-08-08 15:32:54 +02:00
$sql = $sql . " tipps.id as tipp_id, tipps.score1 as tipp_score1, tipps.score2 as tipp_score2, tipps.joker " ;
$sql = $sql . " from users,rounds,games,tipps,payments " ;
$sql = $sql . " where rounds.season_id= " . $currentSeason -> id . " " ;
$sql = $sql . " and games.round_id=rounds.id and tipps.game_id=games.id and users.id = tipps.user_id " ;
$sql = $sql . " and payments.season_id= " . $currentSeason -> id . " and payments.user_id = users.id " ;
$sql = $sql . " and payments.paid_date is not null " ;
$sql = $sql . " order by rounds.id, games.id, users.id; " ;
$result = DB :: select ( $sql );
$roundtipps = array ();
$user_ids = array ();
$round_ids = array ();
2017-08-10 17:14:49 +02:00
if ( $max_round_id ==- 1 ) { $max_round_id = Round :: getLastLockedRoundId (); }
2017-08-08 15:32:54 +02:00
foreach ( $result as $entry ) {
$round_id = $entry -> round_id ;
if ( $max_round_id >- 1 && $round_id > $max_round_id ) break ;
if ( ! in_array ( $entry -> user_id , $user_ids )) { array_push ( $user_ids , $entry -> user_id ); }
if ( ! in_array ( $entry -> round_id , $round_ids )) { array_push ( $round_ids , $entry -> round_id ); }
$user_id = $entry -> user_id ;
$key = $round_id . " _ " . $user_id ;
if ( ! array_key_exists ( $key , $roundtipps )) {
$roundtipps [ $key ] = array ();
$roundtipps [ $key ][ 'tipps' ] = array ();
$roundtipps [ $key ][ 'results' ] = array ();
$roundtipps [ $key ][ 'user_name' ] = $entry -> user_name ;
$roundtipps [ $key ][ 'user_id' ] = $entry -> user_id ;
2017-08-10 17:14:49 +02:00
$roundtipps [ $key ][ 'rankscore' ] = 0 ;
2017-08-08 15:32:54 +02:00
$roundtipps [ $key ][ 'dayscore' ] = Tipp :: getDayScoreLocal ( $entry -> game_score1 , $entry -> game_score2 , $entry -> tipp_score1 , $entry -> tipp_score2 , $entry -> joker );
2017-08-10 17:14:49 +02:00
$roundtipps [ $key ][ 'earliest_kickoff' ] = $entry -> game_kickoff ;
2017-08-08 15:32:54 +02:00
}
2017-08-10 17:14:49 +02:00
$roundtipps [ $key ][ 'rankscore' ] += Tipp :: getScoreLocal ( $entry -> game_score1 , $entry -> game_score2 , $entry -> tipp_score1 , $entry -> tipp_score2 , $entry -> joker );
if ( $entry -> game_kickoff < $roundtipps [ $key ][ 'earliest_kickoff' ]) { $roundtipps [ $key ][ 'earliest_kickoff' ] = $entry -> game_kickoff ; }
2017-08-08 15:32:54 +02:00
array_push ( $roundtipps [ $key ][ 'tipps' ], $entry -> tipp_score1 , $entry -> tipp_score2 , $entry -> joker );
array_push ( $roundtipps [ $key ][ 'results' ], $entry -> game_score1 , $entry -> game_score2 );
}
//dd($roundtipps);
//dd($user_ids);
//dd($round_ids);
//Log::info($user_ids);
//Log::info($round_ids);
2017-08-10 17:14:49 +02:00
Log :: info ( " max_round_id= " . $max_round_id );
2017-08-08 15:32:54 +02:00
// Aufbau der Rankingliste in rankingDisplay, sowie aufaddieren der jeweiligen Punkte.
$rankingDisplay = array ();
foreach ( $user_ids as $user_id ) {
2017-08-10 17:14:49 +02:00
$rankscore_total = 0 ;
2017-08-08 15:32:54 +02:00
$payout_sum = 0 ;
2017-08-10 17:14:49 +02:00
2017-08-08 15:32:54 +02:00
foreach ( $round_ids as $round_id ) {
$key = $round_id . " _ " . $user_id ;
2017-08-10 17:14:49 +02:00
if ( $user_id == 1 ) { Log :: info ( " Processing round: " . $round_id );}
2017-08-08 15:32:54 +02:00
if ( ! array_key_exists ( $user_id , $rankingDisplay )) {
$rankingDisplay [ $user_id ] = array ();
2017-08-10 17:14:49 +02:00
2017-08-15 16:19:19 +02:00
2017-08-10 17:14:49 +02:00
/*
if ( $user_id == 1 ) {
Log :: info ( " round_id= " . $round_id . " , rankscore from var= " . $roundtipps [ $key ][ " rankscore " ] . " , old_total= " . $rankscore_total );
}
*/
2017-08-15 16:19:19 +02:00
$rankingDisplay [ $user_id ][ " user_id " ] = $user_id ;
2017-08-08 15:32:54 +02:00
$rankingDisplay [ $user_id ][ " dayscore " ] = 0 ;
$rankingDisplay [ $user_id ][ " user_name " ] = $roundtipps [ $key ][ " user_name " ];
2017-08-10 17:14:49 +02:00
$rankingDisplay [ $user_id ][ " is_dayscorewinner " ] = 0 ;
2017-08-08 15:32:54 +02:00
}
2017-08-10 17:14:49 +02:00
$rankingDisplay [ $user_id ][ " rankscore " ] = $rankscore_total + $roundtipps [ $key ][ " rankscore " ]; $rankscore_total = $rankingDisplay [ $user_id ][ " rankscore " ];
$rankingDisplay [ $user_id ][ " tipp_score1 " ] = $roundtipps [ $key ][ " tipps " ][ 0 ];
$rankingDisplay [ $user_id ][ " tipp_score2 " ] = $roundtipps [ $key ][ " tipps " ][ 1 ];
$rankingDisplay [ $user_id ][ " joker1 " ] = $roundtipps [ $key ][ " tipps " ][ 2 ];
$rankingDisplay [ $user_id ][ " result_score1 " ] =
$rankingDisplay [ $user_id ][ " result_score2 " ] = $roundtipps [ $key ][ " results " ][ 1 ];
// Determine coloration for Game1
$rankingDisplay [ $user_id ][ " trendCol1 " ] = Tipp :: trendCol ( $roundtipps [ $key ][ " results " ][ 0 ], $roundtipps [ $key ][ " results " ][ 1 ],
$roundtipps [ $key ][ " tipps " ][ 0 ], $roundtipps [ $key ][ " tipps " ][ 1 ],
$roundtipps [ $key ][ " tipps " ][ 2 ]);
$rankingDisplay [ $user_id ][ " tipp_score3 " ] = $roundtipps [ $key ][ " tipps " ][ 3 ];
$rankingDisplay [ $user_id ][ " tipp_score4 " ] = $roundtipps [ $key ][ " tipps " ][ 4 ];
$rankingDisplay [ $user_id ][ " joker2 " ] = $roundtipps [ $key ][ " tipps " ][ 5 ];
// Determine coloration for Game2
$rankingDisplay [ $user_id ][ " trendCol2 " ] = Tipp :: trendCol ( $roundtipps [ $key ][ " results " ][ 2 ], $roundtipps [ $key ][ " results " ][ 3 ],
$roundtipps [ $key ][ " tipps " ][ 3 ], $roundtipps [ $key ][ " tipps " ][ 4 ],
$roundtipps [ $key ][ " tipps " ][ 5 ]);
$rankingDisplay [ $user_id ][ " tipp_score5 " ] = $roundtipps [ $key ][ " tipps " ][ 6 ];
$rankingDisplay [ $user_id ][ " tipp_score6 " ] = $roundtipps [ $key ][ " tipps " ][ 7 ];
$rankingDisplay [ $user_id ][ " joker3 " ] = $roundtipps [ $key ][ " tipps " ][ 8 ];
// Determine coloration for Game3
$rankingDisplay [ $user_id ][ " trendCol3 " ] = Tipp :: trendCol ( $roundtipps [ $key ][ " results " ][ 4 ], $roundtipps [ $key ][ " results " ][ 5 ],
$roundtipps [ $key ][ " tipps " ][ 6 ], $roundtipps [ $key ][ " tipps " ][ 7 ],
$roundtipps [ $key ][ " tipps " ][ 8 ]);
$rankingDisplay [ $user_id ][ " tipp_score7 " ] = $roundtipps [ $key ][ " tipps " ][ 9 ];
$rankingDisplay [ $user_id ][ " tipp_score8 " ] = $roundtipps [ $key ][ " tipps " ][ 10 ];
$rankingDisplay [ $user_id ][ " joker4 " ] = $roundtipps [ $key ][ " tipps " ][ 11 ];
// Determine coloration for Game4
$rankingDisplay [ $user_id ][ " trendCol4 " ] = Tipp :: trendCol ( $roundtipps [ $key ][ " results " ][ 6 ], $roundtipps [ $key ][ " results " ][ 7 ],
$roundtipps [ $key ][ " tipps " ][ 9 ], $roundtipps [ $key ][ " tipps " ][ 10 ],
$roundtipps [ $key ][ " tipps " ][ 11 ]);
2017-08-08 15:32:54 +02:00
2017-08-10 17:14:49 +02:00
}
2017-08-08 15:32:54 +02:00
2017-08-10 17:14:49 +02:00
//TODO: Loop: Determine DayScoreWinner, Rank (multiple identical possible), Sort rankingDisplay array
2017-08-08 15:32:54 +02:00
2017-08-10 17:14:49 +02:00
}
2017-08-08 15:32:54 +02:00
2017-08-10 17:14:49 +02:00
$userids = array_keys ( $rankingDisplay );
$round = Round :: where ( 'id' , '=' , $max_round_id ) -> first ();
$games = Game :: where ( 'round_id' , '=' , $max_round_id ) -> get ();
$all_rounds = Round :: where ( 'season_id' , '=' , $currentSeason -> id ) -> get ();
2017-08-15 16:19:19 +02:00
$entries = array ();
usort ( $rankingDisplay , array ( $this , " cmp2 " ));
foreach ( $rankingDisplay as $entry ) {
array_push ( $entries , $entry );
}
$rankingDisplay = $entries ;
$lastScore =- 1 ;
$lastrank = 0 ;
foreach ( $rankingDisplay as $key => $user ) {
if ( $user [ " rankscore " ] == $lastScore ) {
$rankingDisplay [ $key ][ " rank " ] = $lastrank ;
} else {
$lastrank += 1 ;
$rankingDisplay [ $key ][ " rank " ] = $lastrank ;
$lastScore = $user [ " rankscore " ];
}
}
2017-08-10 17:14:49 +02:00
return view ( 'users.ranking2' , compact ( 'all_rounds' , 'rankingDisplay' , 'userids' , 'round' , 'games' ));
2017-08-08 15:32:54 +02:00
}
2017-08-15 16:19:19 +02:00
public function cmp2 ( $user1 , $user2 ) {
return ( $user1 [ 'rankscore' ] < $user2 [ 'rankscore' ]);
}
2017-08-08 15:32:54 +02:00
2017-06-20 08:43:36 +02:00
}