118 lines
4.8 KiB
PHP
118 lines
4.8 KiB
PHP
<?php
|
|
|
|
$title = "Games";
|
|
$description = "View previous games.";
|
|
|
|
if (!isset($_SESSION["account"])) {
|
|
$title = "Log In";
|
|
$description = "Login to view details about this vote.";
|
|
http_response_code(401);
|
|
} elseif (isset($_GET["game"])) {
|
|
$sql = "SELECT games.id, games.name, games.submitstart, games.status_id, games.submitend, games.onestart, games.twostart, games.threestart, games.gameend FROM games
|
|
JOIN game_status ON games.status_id = game_status.id
|
|
WHERE games.id = :id";
|
|
|
|
$stmt = $db["data"]->prepare($sql);
|
|
$stmt->execute([
|
|
"id" => $_GET["game"],
|
|
]);
|
|
$game = $stmt->fetch();
|
|
unset($stmt);
|
|
|
|
$title = "Game: " . $game["name"];
|
|
$description = "View details about the " . $game["name"] . " vote.";
|
|
}
|
|
|
|
include "partials/head.php";
|
|
?>
|
|
<body>
|
|
<?php include "partials/header.php"; ?>
|
|
<main id="main" class="flow">
|
|
<header>
|
|
<h1><?= $title ?></h1>
|
|
</header>
|
|
<div class="games">
|
|
<?php if (!LOGGED_IN) {
|
|
include "partials/login-form.php";
|
|
} else {
|
|
$sql = "SELECT games.id, games.name, games.submitstart, games.status_id, games.submitend, games.onestart, games.twostart, games.threestart, games.gameend
|
|
FROM games
|
|
JOIN game_status ON games.status_id = game_status.id
|
|
WHERE games.status_id != 8
|
|
ORDER BY games.id DESC";
|
|
|
|
$stmt = $db["data"]->prepare($sql);
|
|
$stmt->execute();
|
|
|
|
while ($game = $stmt->fetch()) {
|
|
static $one_second = new DateInterval("PT1S");
|
|
static $time_zone = new DateTimeZone("America/New_York");
|
|
|
|
$stmt2 = $db["data"]->prepare('SELECT rank_round_1 AS one, rank_round_2 AS two, rank_round_3 AS three, rank_final AS final FROM submissions
|
|
WHERE game_id = :game_id AND member_id = :member_id');
|
|
$stmt2->execute([
|
|
'game_id' => $game['id'],
|
|
'member_id' => $_SESSION['account']->id,
|
|
]);
|
|
$ranks = $stmt2->fetch(PDO::FETCH_OBJ);
|
|
|
|
$dates = [
|
|
"submitstart" => DateTimeImmutable::createFromFormat(
|
|
"U",
|
|
$game["submitstart"]
|
|
)->setTimezone($time_zone),
|
|
"submitend" => DateTimeImmutable::createFromFormat(
|
|
"U",
|
|
$game["submitend"]
|
|
)->setTimezone($time_zone),
|
|
"onestart" => DateTimeImmutable::createFromFormat(
|
|
"U",
|
|
$game["onestart"]
|
|
)->setTimezone($time_zone),
|
|
"twostart" => DateTimeImmutable::createFromFormat(
|
|
"U",
|
|
$game["twostart"]
|
|
)->setTimezone($time_zone),
|
|
"threestart" => DateTimeImmutable::createFromFormat(
|
|
"U",
|
|
$game["threestart"]
|
|
)->setTimezone($time_zone),
|
|
"gameend" => DateTimeImmutable::createFromFormat(
|
|
"U",
|
|
$game["gameend"]
|
|
)->setTimezone($time_zone),
|
|
];
|
|
?>
|
|
<article>
|
|
<div>
|
|
<h3><?= $game["name"] ?></h3>
|
|
<p><span>Status: </span><?= get_status_message(
|
|
$game["status_id"]
|
|
) ?></p>
|
|
<?php if (
|
|
$game["status_id"] === STATUS_DONE
|
|
) { ?><p><span>Your ranking: </span><?= $ranks->final ?? $ranks->three ?? $ranks->two ?? $ranks->one ?? 'N/A' ?></p><?php } ?>
|
|
</div>
|
|
<div class="flow">
|
|
<?php if ($game["status_id"] !== STATUS_DELAYED) { ?>
|
|
<p><a href="/games/<?= $game[
|
|
"id"
|
|
] ?>" class="call-to-action"><?= $game[
|
|
"name"
|
|
] ?> details</a></p>
|
|
<?php } ?>
|
|
<?php if ($game["status_id"] === STATUS_DONE) { ?>
|
|
<p><a href="/games/<?= $game[
|
|
"id"
|
|
] ?>/results" class="call-to-action"><?= $game[
|
|
"name"
|
|
] ?> results</a></p>
|
|
<?php } ?>
|
|
</div>
|
|
</article>
|
|
<?php
|
|
}
|
|
} ?>
|
|
</div>
|
|
</main>
|
|
<?php include "partials/footer.php"; ?>
|