140 lines
		
	
	
	
		
			5.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			140 lines
		
	
	
	
		
			5.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
$stmt = $db["data"]->prepare("SELECT name FROM games WHERE id = :id");
 | 
						|
 | 
						|
$stmt->execute([
 | 
						|
    "id" => $_GET["game"],
 | 
						|
]);
 | 
						|
 | 
						|
$title = "Results: " . $stmt->fetch(PDO::FETCH_COLUMN);
 | 
						|
$description = "View the results of particular issue's voting.";
 | 
						|
 | 
						|
$stmt = $db["data"]
 | 
						|
    ->prepare('SELECT submissions.id AS id, submissions.hash, members.name, members.handle,
 | 
						|
    CASE WHEN name_is_public = 1 AND name IS NOT NULL
 | 
						|
        THEN name
 | 
						|
        ELSE CONCAT("Member ", submissions.member_id)
 | 
						|
    END AS author,
 | 
						|
    CASE WHEN doc_is_public = 1
 | 
						|
        THEN title
 | 
						|
        ELSE CONCAT("Entry ", submissions.id)
 | 
						|
    END AS title
 | 
						|
    , doc_is_public, name_is_public, score_round_1, rank_round_1, score_round_2, rank_round_2, score_round_3, rank_round_3, rank_final, votes_round_1, votes_round_2, votes_round_3, num_assignments_round_1, num_assignments_round_2, num_assignments_round_3
 | 
						|
    FROM submissions
 | 
						|
    JOIN members ON submissions.member_id = members.id
 | 
						|
    WHERE submissions.game_id = :id AND rank_final IS NOT NULL AND submissions.transaction_id IS NOT NULL ORDER BY rank_final ASC');
 | 
						|
 | 
						|
$results = $stmt->execute([
 | 
						|
    "id" => $_GET["game"],
 | 
						|
]);
 | 
						|
$row = $stmt->fetch();
 | 
						|
 | 
						|
if (!$row) {
 | 
						|
    $title = "No Results Found";
 | 
						|
    $description = "We couldn't find the game results you requested.";
 | 
						|
}
 | 
						|
 | 
						|
include "partials/head.php";
 | 
						|
?>
 | 
						|
    <body>
 | 
						|
        <?php include "partials/header.php"; ?>
 | 
						|
    <main id="main" class="flow">
 | 
						|
    <header>
 | 
						|
        <h1><?= $title ?></h1>
 | 
						|
    </header>
 | 
						|
    <?php if ($row): ?>
 | 
						|
    <!-- <p><a href="/resulthowto.html">How to Read the Results</a></p> -->
 | 
						|
            <div role="region" aria-labelledby="results-caption" tabindex="0">
 | 
						|
                <table>
 | 
						|
                    <caption id="results-caption">Results for Game <?= $_GET[
 | 
						|
                        "game"
 | 
						|
                    ] ?></caption>
 | 
						|
                <thead>
 | 
						|
                    <tr>
 | 
						|
                        <th scope="col" rowspan="3">Title</th>
 | 
						|
                        <th scope="col" rowspan="3">Author</th>
 | 
						|
                        <th scope="col" colspan="3">Score</th>
 | 
						|
                        <th scope="col" colspan="3">Rank</th>
 | 
						|
                    </tr>
 | 
						|
                    <tr>
 | 
						|
                        <th scope="col">Round One</th>
 | 
						|
                        <th scope="col">Round Two</th>
 | 
						|
                        <th scope="col">Round Three</th>
 | 
						|
                        <th scope="col">Round One</th>
 | 
						|
                        <th scope="col">Round Two</th>
 | 
						|
                        <th scope="col">Round Three</th>
 | 
						|
                    </tr>
 | 
						|
                </thead>
 | 
						|
                <tbody>
 | 
						|
                    <?php do {
 | 
						|
 | 
						|
                        $is_booted =
 | 
						|
                            ($row["rank_round_1"] &&
 | 
						|
                                $row["num_assignments_round_1"] &&
 | 
						|
                                !$row["votes_round_1"]) ||
 | 
						|
                            ($row["rank_round_2"] &&
 | 
						|
                                $row["num_assignments_round_2"] &&
 | 
						|
                                !$row["votes_round_2"]) ||
 | 
						|
                            ($row["rank_round_3"] &&
 | 
						|
                                $row["num_assignments_round_3"] &&
 | 
						|
                                !$row["votes_round_3"])
 | 
						|
                                ? true
 | 
						|
                                : false;
 | 
						|
                        $is_autoadvance =
 | 
						|
                            ($row["votes_round_1"] &&
 | 
						|
                                $row["votes_round_1"] < 4) ||
 | 
						|
                            ($row["votes_round_2"] && $row["votes_round_2"] < 4)
 | 
						|
                                ? true
 | 
						|
                                : false;
 | 
						|
                        $has_visible_doc = $row["doc_is_public"] || IS_ADMIN;
 | 
						|
                        $doc_title = htmlspecialchars(
 | 
						|
                            $row["title"],
 | 
						|
                            ENT_QUOTES
 | 
						|
                        );
 | 
						|
                        $doc_url = sprintf("/docs/%s", $row["hash"]);
 | 
						|
                        $author = htmlspecialchars($row["author"], ENT_QUOTES);
 | 
						|
                        $profile_url = "/members/" . $row["handle"];
 | 
						|
                        ?>
 | 
						|
                        <tr <?= $is_booted ? 'class="booted"' : "" ?>>
 | 
						|
                            <th scope="row">
 | 
						|
                                <?= $has_visible_doc
 | 
						|
                                    ? "<a href='$doc_url'>$doc_title</a>"
 | 
						|
                                    : $doc_title ?>
 | 
						|
                                <?php if (
 | 
						|
                                    $is_booted
 | 
						|
                                ) { ?><small>(disqualified)</small><?php } ?>
 | 
						|
                            </th>
 | 
						|
                            <td><?= $row["name_is_public"]
 | 
						|
                                ? "<a href='$profile_url'>$author</a>"
 | 
						|
                                : $author ?></td>
 | 
						|
                            <td <?= is_null($row["score_round_1"])
 | 
						|
                                ? 'class="empty"'
 | 
						|
                                : "" ?>><?= is_null($row["score_round_1"])
 | 
						|
    ? 0
 | 
						|
    : $row["score_round_1"] ?></td>
 | 
						|
                            <td <?= is_null($row["score_round_2"])
 | 
						|
                                ? 'class="empty"'
 | 
						|
                                : "" ?>><?= is_null($row["score_round_2"])
 | 
						|
    ? 0
 | 
						|
    : $row["score_round_2"] ?></td>
 | 
						|
                            <td <?= is_null($row["score_round_3"])
 | 
						|
                                ? 'class="empty"'
 | 
						|
                                : "" ?>><?= is_null($row["score_round_3"])
 | 
						|
    ? 0
 | 
						|
    : $row["score_round_3"] ?></td>
 | 
						|
                            <td><?= $row["rank_round_1"] ?></td>
 | 
						|
                            <td><?= $row["rank_round_2"] ?></td>
 | 
						|
                            <td><?= $row["rank_round_3"] ?></td>
 | 
						|
                        </tr>
 | 
						|
                    <?php
 | 
						|
                    } while ($row = $stmt->fetch()); ?>
 | 
						|
                </tbody>
 | 
						|
                <tfoot>
 | 
						|
                </tfoot>
 | 
						|
            </table>
 | 
						|
        </div>
 | 
						|
        <?php else: ?>
 | 
						|
        <p><?= $description ?></p>
 | 
						|
        <?php endif; ?>
 | 
						|
        </main>
 | 
						|
    <?php include "partials/footer.php"; ?>
 |