myvideogamelist.com/resources/views/pages/game/index.blade.php
Jimmy Brancaccio b39ecf1638 Initial Commit
The initial public commit of MVGL website code.
2024-01-14 13:51:43 -06:00

227 lines
11 KiB
PHP

@php
use App\Models\Game;
use App\Models\GameList;
use App\Models\Genre;
use App\Models\Platform;
// Turn $game->genre_ids into an array.
$genres = explode(',', $game->genre_ids);
// Determine the friendly genre name(s).
$genreNames = [];
foreach ($genres as $genre) {
array_push($genreNames, Genre::whereId($genre)->value('name'));
}
// Create a comma separated string of the genre names.
$genreNames = implode(', ', $genreNames);
// Determine what other platforms this game exists on.
$alsoExistsOn = Game::whereName($game->name)->where('id', '!=', $game->id)->get();
$platforms = [];
if (count($alsoExistsOn) >= 1) {
foreach ($alsoExistsOn as $alsoExistsOnGame) {
array_push($platforms, [
'id' => $alsoExistsOnGame->id,
'name' => Platform::whereId($alsoExistsOnGame->platform_id)->value('name'),
]);
}
}
@endphp
{{-- Check to see if the user is logged in. --}}
@if (Auth::check())
{{-- Check to see if the user has this game on their list already. --}}
@php
$hasGame = GameList::whereUserId(Auth::user()->id)->whereGameId($game->id)->first();
@endphp
{{-- Check to see if the user has this game favorited already. --}}
{{-- Check to see if the user has this wishlisted already. --}}
@endif
<x-base-layout>
<!--begin::Row-->
<div class="row gy-5 g-xl-8">
<!--begin::Col-->
<div class="col-xxl-8">
<div class="card shadow-sm mb-2">
<div class="card-header">
<h3 class="card-title">{{ $game->name }}</h3>
@if (Auth::check())
<div class="card-toolbar">
<!--begin::Menu wrapper-->
<div>
<!--begin::Toggle-->
<button type="button" class="btn btn-secondary btn-sm rotate" data-kt-menu-trigger="click" data-kt-menu-placement="bottom-start" data-kt-menu-offset="30px, 30px">
Actions
<i class="fas fa-angle-down rotate-180 ms-3 me-0"></i>
</button>
<!--end::Toggle-->
<!--begin::Menu-->
<div class="menu menu-sub menu-sub-dropdown menu-column menu-rounded menu-gray-800 menu-state-bg-light-primary fw-bold w-200px py-4" data-kt-menu="true">
<!--begin::Menu item-->
<div class="menu-item px-3 my-1">
@if ($hasGame)
<a href="{{ route('games.list.edit', $hasGame) }}" class="menu-link px-3">Edit List Entry</a>
@else
<a href="{{ route('games.list.create', ['gameId' => $game->id]) }}" class="menu-link px-3">
Add to List
</a>
@endif
</div>
<!--end::Menu item-->
<!--begin::Menu item-->
{{-- <div class="menu-item px-3 my-1">
<a href="#" class="menu-link px-3 disabled">
Add to Favorites
</a>
</div> --}}
<!--end::Menu item-->
<!--begin::Menu item-->
{{-- <div class="menu-item px-3 my-1">
<a href="#" class="menu-link px-3 disabled">
Add to Wishlist
</a>
</div> --}}
<!--end::Menu item-->
<!--begin::Menu item-->
{{-- <div class="menu-item px-3 my-1">
<a href="#" class="menu-link px-3 disabled">
Write a Review
</a>
</div> --}}
<!--end::Menu item-->
</div>
<!--end::Menu-->
</div>
<!--end::Dropdown wrapper-->
</div>
</div>
@else
</div>
@endif
<div class="card-body">
{!! Markdown::parse($game->description) !!}
@if ($game->source)
<p class="mb-0"><a href="{{ $game->source }}" target="_blank">Source</a>.</p>
@endif
</div>
</div>
<div class="card shadow-sm">
<div class="card-header">
<h3 class="card-title">Comments</h3>
</div>
<div class="card-body">
<p class="mb-0">Coming soon...</p>
</div>
</div>
</div>
<!--end::Col-->
<!--begin::Col-->
<div class="col-xxl-4">
<div class="card shadow-sm mb-2">
<div class="card-header">
<h3 class="card-title">Game Information</h3>
</div>
<div class="card-body">
<div class="d-flex justify-content-center"><img class="img-fluid img-thumbnail" src="{{ Storage::url('assets/boxart/') . $game->boxart }}" alt="image"></div>
<dl class="row mt-5">
@if ($game->alt_titles)
@php
$altTitles = str_replace('|', ', ', $game->alt_titles);
@endphp
<dt class="col-sm-5 fw-bolder">Alternative Titles</dt>
<dd class="col-sm-7">{{ $altTitles }}</dd>
@endif
<dt class="col-sm-5 fw-bolder">Platform</dt>
<dd class="col-sm-7">{{ $game->platform()->get()[0]->name }}</dd>
<dt class="col-sm-5 fw-bolder">Developer(s)</dt>
<dd class="col-sm-7">{{ $game->developers ?? '-' }}</dd>
<dt class="col-sm-5 fw-bolder">Publishers(s)</dt>
<dd class="col-sm-7">{{ $game->publishers ?? '-' }}</dd>
<dt class="col-sm-5 fw-bolder">Genres(s)</dt>
<dd class="col-sm-7">{{ $genreNames }}</dd>
@if ($game->na_release_date)
<dt class="col-sm-5 fw-bolder">NA Release Date</dt>
<dd class="col-sm-7">{{ $game->na_release_date }}</dd>
@endif
@if ($game->jp_release_date)
<dt class="col-sm-5 fw-bolder">JP Release Date</dt>
<dd class="col-sm-7">{{ $game->jp_release_date }}</dd>
@endif
@if ($game->eu_release_date)
<dt class="col-sm-5 fw-bolder">EU Release Date</dt>
<dd class="col-sm-7">{{ $game->eu_release_date }}</dd>
@endif
@if ($game->aus_release_date)
<dt class="col-sm-5 fw-bolder">AUS Release Date</dt>
<dd class="col-sm-7">{{ $game->aus_release_date }}</dd>
@endif
@if ($game->esrb_rating)
<dt class="col-sm-5 fw-bolder">ESRB Rating</dt>
<dd class="col-sm-7">{{ $game->esrb_rating ?? '-' }}</dd>
@endif
@if ($game->pegi_rating)
<dt class="col-sm-5 fw-bolder">PEGI Rating</dt>
<dd class="col-sm-7">{{ $game->pegi_rating ?? '-' }}</dd>
@endif
@if ($game->cero_rating)
<dt class="col-sm-5 fw-bolder">CERO Rating</dt>
<dd class="col-sm-7">{{ $game->cero_rating ?? '-' }}</dd>
@endif
@if ($game->acb_rating)
<dt class="col-sm-5 fw-bolder">ACB Rating</dt>
<dd class="col-sm-7">{{ $game->acb_rating ?? '-' }}</dd>
@endif
<dt class="col-sm-5 fw-bolder">MVGL User Score</dt>
<dd class="col-sm-7">{{ (round(GameList::whereGameId($game->id)->avg('rating'), 1)) != 0 ? round(GameList::whereGameId($game->id)->avg('rating'), 1) : '-'}} {{ (GameList::whereGameId($game->id)->where('rating', '>=', 1)->count()) != 0 ? ' by ' . GameList::whereGameId($game->id)->where('rating', '>=', 1)->count() . ' user(s) ' : '' }}</dd>
<dt class="col-sm-5 fw-bolder">MVGL Difficulty</dt>
<dd class="col-sm-7">{{ GameList::whereGameId($game->id)->avg('difficulty') ?? '-' }}</dd>
<dt class="col-sm-5 fw-bolder">Composer(s)</dt>
<dd class="col-sm-7">{{ $game->composers ?? '-' }}</dd>
@if ($game->website)
<dt class="col-sm-5 fw-bolder">Website</dt>
<dd class="col-sm-7"><a href="{{ $game->website }}">Official Website</a></dd>
@endif
<dt class="col-sm-5 fw-bolder">Added by</dt>
<dd class="col-sm-7">{{ GameList::whereGameId($game->id)->count() ?? '0' }} User(s)</dd>
</dl>
@if (count($alsoExistsOn) >= 1)
<p class="lh-lg">This game also exists on:<br />
@foreach ($platforms as $platform)
<a class="mt-1" href="/game/{{ $platform['id'] }}/{{ str_replace('/', '_', str_replace(' ', '_', $game->name)) }}"><span class="badge badge-primary">{{ $platform['name'] }}</span></a>
@endforeach
</p>
@endif
</div>
</div>
<div class="card shadow-sm mb-2">
<div class="card-header">
<h3 class="card-title">Recently Completed By</h3>
</div>
<div class="card-body">
<p class="mb-0">Coming soon...</p>
</div>
</div>
<div class="card shadow-sm">
<div class="card-header">
<h3 class="card-title">Recently Favorited By</h3>
</div>
<div class="card-body">
<p class="mb-0">Coming soon...</p>
</div>
</div>
</div>
<!--end::Col-->
</div>
<!--end::Row-->
</x-base-layout>