/** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { $leagues = League::all(); $stadiums = Stadium::all(); $teams = Team::all(); return view('admin.fixtures.create', compact('leagues', $leagues, 'teams', $teams, 'stadiums', $stadiums)); }
public function fixtureLeague(Request $request) { $this->validate($request, ['league_title' => 'required', 'file' => 'required|image|mimes:jpeg,jpg,png,bmp,gif,svg']); //dd($request->all()); if ($request->file('file')) { //$this->validate($request,['file'=>'required|image|mimes:jpeg,jpg,png,bmp,gif,svg']); $file = $request->file('file'); $path = $this->_league_logo_path; $name = uniqid() . $file->getClientOriginalName(); $file->move($path, $name); } $league = new League(array('title' => $request->get('league_title'), 'logo_name' => $name, 'logo_path' => $path)); $league->save(); $leagues = League::all(); return response()->json($leagues); }
/** * Show the form for editing the specified tournament. * * @param int $id Id of edited tournament * @return Response View with editing form for tournament */ public function edit($id) { $leagues = League::all(); $tournament = Tournament::findOrFail($id); return view('/tournaments/tournament-create', ['leagues' => $leagues, 'edited' => $tournament]); }
/** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { $leagues = League::all(); return view('league.index', ['leagues' => $leagues]); }
public function listLeagues() { $leagues = League::all(); return view('admin/listLeagues')->with(['leagues' => $leagues]); }
public function viewRanking($year = null, $month = null, $leaguename_id = null) { setlocale(LC_TIME, 'pt_PT.UTF-8'); $leagues = League::all()->sortByDesc(function ($league) { return sprintf('%04d%02d%02d', $league->year, $league->month, 1 / $league->leaguename_id); }); if (!count($leagues)) { return redirect()->route('home'); } if ($leaguename_id) { $leagueYear = $year; $leagueMonth = $month; $leagues = $leagues->whereLoose('year', $leagueYear)->whereLoose('month', $leagueMonth)->sortBy('leaguename_id'); $league = League::where('year', $year)->where('month', $month)->where('leaguename_id', $leaguename_id)->first(); if (!count($league)) { return redirect()->route('home'); } } else { $leagueYear = $leagues->first()->year; $leagueMonth = $leagues->first()->month; $leagues = $leagues->whereLoose('year', $leagueYear)->whereLoose('month', $leagueMonth)->sortBy('leaguename_id'); $user = Auth::id(); foreach ($leagues as $key => $value) { $players = json_decode($value->users); if (in_array($user, $players)) { $league = $value; } } } if (!isset($league)) { $league = $leagues->first(); } $pastGameDays = array(); $futureGameDays = array(); $dayOffset = 0; for ($i = 0; $i < 20; $i++) { if (date("U", strtotime(date('d-m-Y'))) <= date("U", strtotime('first monday of ' . $leagueYear . '-' . $leagueMonth) + 86400 * $dayOffset)) { $futureGameDays[$i]['day'] = date("j", strtotime('first monday of ' . $leagueYear . '-' . $leagueMonth) + 86400 * $dayOffset); $futureGameDays[$i]['month'] = date("n", strtotime('first monday of ' . $leagueYear . '-' . $leagueMonth) + 86400 * $dayOffset); $futureGameDays[$i]['year'] = date("Y", strtotime('first monday of ' . $leagueYear . '-' . $leagueMonth) + 86400 * $dayOffset); $futureGameDays[$i]['date'] = date("d-m-Y", strtotime('first monday of ' . $leagueYear . '-' . $leagueMonth) + 86400 * ($dayOffset + 1)); } else { $pastGameDays[$i]['day'] = date("j", strtotime('first monday of ' . $leagueYear . '-' . $leagueMonth) + 86400 * $dayOffset); $pastGameDays[$i]['month'] = date("n", strtotime('first monday of ' . $leagueYear . '-' . $leagueMonth) + 86400 * $dayOffset); $pastGameDays[$i]['year'] = date("Y", strtotime('first monday of ' . $leagueYear . '-' . $leagueMonth) + 86400 * $dayOffset); $pastGameDays[$i]['date'] = date("d-m-Y", strtotime('first monday of ' . $leagueYear . '-' . $leagueMonth) + 86400 * ($dayOffset + 1)); } if (($i + 1) % 5 == 0) { $dayOffset = $dayOffset + 3; } else { $dayOffset++; } } $users = User::all(); $roundQuestions = []; $roundAnswers = []; $leagueData = []; $leagueRounds = []; $leagueFutureRounds = []; $leagueRanking = []; $leagueAnwers = collect(); $playerAnswers = []; $start = new Carbon(date("d-m-Y", strtotime('first monday of ' . $leagueYear . '-' . $leagueMonth))); if (count($pastGameDays)) { $end = new Carbon($pastGameDays[count($pastGameDays) - 1]['date']); } else { $end = $start; } foreach (json_decode($league->users) as $player) { $leagueRanking[$player]['leaguepoints'] = 0; $leagueRanking[$player]['roundpointsfor'] = 0; $leagueRanking[$player]['roundpointsagainst'] = 0; $leagueRanking[$player]['wins'] = 0; $leagueRanking[$player]['ties'] = 0; $leagueRanking[$player]['losses'] = 0; $leagueRanking[$player]['forfeits'] = 0; $leagueRanking[$player]['answers'] = 0; $playerAnswers[$player] = Answer::where('user_id', $player)->where('submitted', 1)->whereBetween('created_at', [$start, $end])->get(); $leagueAnwers = $leagueAnwers->merge($playerAnswers[$player]); } $leagueAnwers = collect($leagueAnwers); $leagueAnwersByQuestion = []; foreach ($leagueAnwers as $key => $answer) { if (!isset($leagueAnwersByQuestion[$answer->question_id])) { $leagueAnwersByQuestion[$answer->question_id] = []; } array_push($leagueAnwersByQuestion[$answer->question_id], $answer); } foreach ($pastGameDays as $key => $pastGameDay) { $round = $key + 1; if (!isset($roundQuestions[$round])) { $roundQuestions[$round] = Question::where('year', intval($pastGameDay['year']))->where('month', intval($pastGameDay['month']))->where('day', intval($pastGameDay['day']))->get(); foreach ($roundQuestions[$round] as $roundQuestion) { if (isset($leagueAnwersByQuestion[$roundQuestion->id])) { $roundAnswers[$roundQuestion->id] = collect($leagueAnwersByQuestion[$roundQuestion->id]); } else { $roundAnswers[$roundQuestion->id] = collect([]); } } } if ($round % 10 == 0) { // SOLO ROUND $leagueRounds[$round]['day'] = $pastGameDay['day'] . '-' . $pastGameDay['month'] . '-' . $pastGameDay['year']; $leagueRounds[$round]['date'] = $pastGameDay; $leagueRounds[$round]['sologame'] = array(); $roundGamePlayers = []; foreach ($roundQuestions[$round] as $roundQuestion) { foreach ($roundAnswers[$roundQuestion->id] as $answer) { if (!isset($leagueRanking[$answer->user_id])) { continue; } else { $roundGamePlayers[$answer->user_id] = true; } if (!isset($leagueRounds[$round]['sologame'][$answer->user_id])) { $leagueRounds[$round]['sologame'][$answer->user_id] = []; $leagueRounds[$round]['sologame'][$answer->user_id]['points'] = 0; $leagueRounds[$round]['sologame'][$answer->user_id]['corrects'] = 0; } if ($answer->corrected && $answer->correct) { $leagueRanking[$answer->user_id]['leaguepoints'] += 0.5; $leagueRanking[$answer->user_id]['roundpointsfor'] += 0.5; $leagueRanking[$answer->user_id]['answers']++; $leagueRounds[$round]['sologame'][$answer->user_id]['points'] += 0.5; $leagueRounds[$round]['sologame'][$answer->user_id]['corrects']++; } } } foreach (json_decode($league->users) as $player) { if (!isset($roundGamePlayers[$player])) { $leagueRanking[$player]['forfeits']++; $leagueRounds[$round]['sologame'][$player] = []; $leagueRounds[$round]['sologame'][$player]['points'] = 0; $leagueRounds[$round]['sologame'][$player]['corrects'] = 'F'; } else { $leagueRanking[$player]['leaguepoints']++; $leagueRounds[$round]['sologame'][$player]['points']++; } } // TODO: PENDING SOLO GAMES } else { // HEAD-TO-HEAD ROUND $roundGames = Game::where('league_id', $league->id)->where('round', $round)->get(); $leagueRounds[$round]['day'] = $pastGameDay['day'] . '-' . $pastGameDay['month'] . '-' . $pastGameDay['year']; $leagueRounds[$round]['games'] = array(); foreach ($roundGames as $roundGame) { $roundGamePlayers = array(array()); $pendingResult = false; for ($i = 0; $i < 2; $i++) { $roundGamePlayers[$i]['id'] = $roundGame['user_' . ($i + 1) . '_id']; $roundGamePlayers[$i]['fullName'] = $users->find($roundGame['user_' . ($i + 1) . '_id'])->fullName(); $roundGamePlayers[$i]['points'] = 0; $roundGamePlayers[$i]['corrects'] = 0; $roundGamePlayers[$i]['forfeit'] = true; } foreach ($roundQuestions[$round] as $roundQuestion) { $answerPlayers = []; $answerPlayer[0] = $roundAnswers[$roundQuestion->id]->whereLoose('user_id', $roundGame['user_1_id'])->first(); $answerPlayer[1] = $roundAnswers[$roundQuestion->id]->whereLoose('user_id', $roundGame['user_2_id'])->first(); for ($i = 0; $i < 2; $i++) { if (count($answerPlayer[$i])) { if ($answerPlayer[$i]->corrected != $answerPlayer[$i]->submitted) { $pendingResult = true; } $roundGamePlayers[$i]['forfeit'] = false; if ($answerPlayer[$i]->correct) { $roundGamePlayers[$i]['corrects']++; } if (count($answerPlayer[intval(!$i)])) { $roundGamePlayers[$i]['points'] += $answerPlayer[$i]->correct * $answerPlayer[intval(!$i)]->points; } } } } if ($pendingResult) { for ($i = 0; $i < 2; $i++) { $roundGamePlayers[$i]['points'] = 'P'; $roundGamePlayers[$i]['leaguepoints'] = 'P'; $roundGamePlayers[$i]['corrects'] = 'P'; } } else { if (!($roundGamePlayers[0]['forfeit'] && $roundGamePlayers[1]['forfeit'])) { for ($i = 0; $i < 2; $i++) { if ($roundGamePlayers[intval(!$i)]['forfeit']) { switch ($roundGamePlayers[$i]['corrects']) { case 0: $roundGamePlayers[$i]['points'] = 0; break; case 1: $roundGamePlayers[$i]['points'] = 2; break; case 2: $roundGamePlayers[$i]['points'] = 3; break; case 3: $roundGamePlayers[$i]['points'] = 5; break; case 4: $roundGamePlayers[$i]['points'] = 6; break; case 5: $roundGamePlayers[$i]['points'] = 8; break; case 6: $roundGamePlayers[$i]['points'] = 9; break; case 7: $roundGamePlayers[$i]['points'] = 10; break; case 8: $roundGamePlayers[$i]['points'] = 12; break; } } } } for ($i = 0; $i < 2; $i++) { if ($roundGamePlayers[$i]['forfeit']) { $roundGamePlayers[$i]['leaguepoints'] = 0; $leagueRanking[$roundGamePlayers[$i]['id']]['forfeits']++; $roundGamePlayers[$i]['points'] = 'F'; } elseif ($roundGamePlayers[intval(!$i)]['forfeit']) { $roundGamePlayers[$i]['leaguepoints'] = 3; $leagueRanking[$roundGamePlayers[$i]['id']]['wins']++; } elseif ($roundGamePlayers[$i]['points'] > $roundGamePlayers[intval(!$i)]['points']) { $roundGamePlayers[$i]['leaguepoints'] = 3; $leagueRanking[$roundGamePlayers[$i]['id']]['wins']++; } elseif ($roundGamePlayers[$i]['points'] == $roundGamePlayers[intval(!$i)]['points']) { $roundGamePlayers[$i]['leaguepoints'] = 2; $leagueRanking[$roundGamePlayers[$i]['id']]['ties']++; } elseif ($roundGamePlayers[$i]['points'] < $roundGamePlayers[intval(!$i)]['points']) { $roundGamePlayers[$i]['leaguepoints'] = 1; $leagueRanking[$roundGamePlayers[$i]['id']]['losses']++; } $leagueRanking[$roundGamePlayers[$i]['id']]['leaguepoints'] += $roundGamePlayers[$i]['leaguepoints']; $leagueRanking[$roundGamePlayers[$i]['id']]['roundpointsfor'] += $roundGamePlayers[$i]['points']; $leagueRanking[$roundGamePlayers[$i]['id']]['roundpointsagainst'] += $roundGamePlayers[intval(!$i)]['points']; $leagueRanking[$roundGamePlayers[$i]['id']]['answers'] += $roundGamePlayers[$i]['corrects']; } } $roundGame['player1'] = $roundGamePlayers[0]['fullName']; $roundGame['player2'] = $roundGamePlayers[1]['fullName']; $roundGame['points1'] = $roundGamePlayers[0]['points']; $roundGame['points2'] = $roundGamePlayers[1]['points']; $roundGame['corrects1'] = $roundGamePlayers[0]['corrects']; $roundGame['corrects2'] = $roundGamePlayers[1]['corrects']; array_push($leagueRounds[$round]['games'], $roundGame); } } } foreach ($leagueRanking as $key => $player) { $leagueRanking[$key]['user_id'] = $key; $leagueRanking[$key]['roundpointsdifference'] = $leagueRanking[$key]['roundpointsfor'] - $leagueRanking[$key]['roundpointsagainst']; } $leagueRanking = array_values(array_sort($leagueRanking, function ($value) { $leaguepoints = sprintf('%02d', $value['leaguepoints'] * 10); $difference = sprintf('%03d', ($value['roundpointsdifference'] + 500) * 10); $points = sprintf('%04d', $value['roundpointsfor'] * 10); $wins = sprintf('%02d', $value['wins']); $corrects = sprintf('%03d', $value['answers']); $tiebreak = $leaguepoints . $difference . $points . $wins . $corrects; return 1 / (1 + $tiebreak); })); foreach ($futureGameDays as $key => $futureGameDay) { $round = $key + 1; if ($round % 10 == 0) { // SOLO ROUND $leagueFutureRounds[$round]['day'] = $futureGameDay['day'] . '-' . $futureGameDay['month'] . '-' . $futureGameDay['year']; $leagueFutureRounds[$round]['sologame'] = array(); foreach (json_decode($league->users) as $player) { $leagueFutureRounds[$round]['sologame'][$player] = []; } } else { // HEAD-TO-HEAD ROUND $roundGames = Game::where('league_id', $league->id)->where('round', $round)->get(); $leagueFutureRounds[$round]['day'] = $futureGameDay['day'] . '-' . $futureGameDay['month'] . '-' . $futureGameDay['year']; $leagueFutureRounds[$round]['games'] = array(); foreach ($roundGames as $roundGame) { $roundGamePlayers = array(array()); $pendingResult = false; for ($i = 0; $i < 2; $i++) { $roundGamePlayers[$i]['id'] = $roundGame['user_' . ($i + 1) . '_id']; $roundGamePlayers[$i]['fullName'] = $users->find($roundGame['user_' . ($i + 1) . '_id'])->fullName(); } $roundGame = []; $roundGame['player1'] = $roundGamePlayers[0]['fullName']; $roundGame['player2'] = $roundGamePlayers[1]['fullName']; array_push($leagueFutureRounds[$round]['games'], $roundGame); } } } $leagueData['id'] = $league->id; $leagueData['tier'] = $league->leaguename_id; $leagueData['ranking'] = $leagueRanking; $leagueData['rounds'] = $leagueRounds; $leagueData['futurerounds'] = $leagueFutureRounds; $leagueData['name'] = $league->name(); $usersCollection = []; foreach ($users as $key => $user) { $usersCollection[$user->id] = $user; } $archive = League::where('leaguename_id', 1)->get()->sortByDesc(function ($league) { return sprintf('%04d%02d', $league->year, $league->month); }); return view('ranking')->with(['league' => $leagueData, 'leagues' => $leagues, 'archive' => $archive, 'users' => $usersCollection]); }