コード例 #1
0
ファイル: seriesreport.php プロジェクト: jamuraa/gatherling
function showReport($series, $season)
{
    $seasonevents = $series->getSeasonEventNames($season);
    $points = $series->seasonPointsTable($season);
    $cutoff = $series->getSeasonCutoff($season);
    uasort($points, 'reverse_total_sort');
    echo "<h3><center>Scoreboard for {$series->name} season {$season}</center></h3>";
    echo "<table class=\"scoreboard\">";
    echo "<tr class=\"top\"> <th> Place </th> <th> Player </th> <th> Total </th>";
    foreach ($seasonevents as $evname) {
        $shortname = preg_replace("/^{$series->name} /", '', $evname);
        $reportlink = "eventreport.php?event=" . urlencode($evname);
        echo "<th> <a href=\"{$reportlink}\">{$shortname}</a> </th>";
    }
    echo "</tr>";
    $count = 0;
    foreach ($points as $playername => $pointar) {
        $player = new Player($playername);
        $count++;
        $classes = "";
        if ($count % 2 != 0) {
            $classes .= "odd";
        }
        if ($count == $cutoff) {
            $classes .= " cutoff";
        }
        echo "<tr class=\"{$classes}\"> ";
        echo "<td> {$count} </td> <td class=\"playername\"> {$player->linkTo()} </td> <td> {$pointar['.total']} </td> ";
        foreach ($seasonevents as $evname) {
            if (isset($pointar[$evname])) {
                if (is_array($pointar[$evname])) {
                    echo "<td> <span title=\"{$pointar[$evname]['why']}\"> {$pointar[$evname]['points']} </span> </td>";
                } else {
                    echo "<td> {$pointar[$evname]} </td>";
                }
            } else {
                echo "<td> </td> ";
            }
        }
        echo "</tr> ";
    }
    echo "</table>";
}
コード例 #2
0
ファイル: ratings.php プロジェクト: jamuraa/gatherling
function ratingsTable($format, $min = 20)
{
    $db = Database::getConnection();
    $stmt = $db->prepare("SELECT p.name AS player, r.rating, r.wins, r.losses\n    FROM ratings r, players p,\n    (SELECT qr.player AS qplayer, MAX(qr.updated) AS qmax\n     FROM ratings AS qr\n     WHERE qr.format = ?\n     GROUP BY qr.player) AS q\n    WHERE r.format = ?\n    AND p.name=r.player\n    AND q.qplayer=r.player\n    AND q.qmax=r.updated\n    AND q.qmax > DATE_SUB(NOW(), INTERVAL 90 DAY)\n    AND r.wins + r.losses >= ?\n    ORDER BY r.rating DESC");
    $stmt->bind_param("ssd", $format, $format, $min);
    $stmt->execute() or die($stmt->error);
    $stmt->bind_result($playername, $rating, $wins, $losses);
    $rank = 0;
    $ratings_data = array();
    while ($stmt->fetch()) {
        $rank++;
        $ratings_data[] = array('rank' => $rank, 'playername' => $playername, 'rating' => $rating, 'wins' => $wins, 'losses' => $losses);
    }
    $stmt->close();
    echo "<table align=\"center\" style=\"border-width: 0px;\" ";
    echo "width=\"500px\">\n";
    echo "<tr><td colspan=6 align=\"center\">";
    echo "<i>Only players with {$min} or more matches and active within the last 90 days are listed.";
    echo "</td></tr>";
    echo "<tr><td>&nbsp;</td></tr>\n";
    echo "<tr><td align=\"center\"><b>Rank</td>";
    echo "<td><b>Player</td><td align=\"center\">";
    echo "<b>Rating</td>";
    echo "<td align=\"center\" colspan=\"3\"><b>Record</td></tr>\n";
    foreach ($ratings_data as $vals) {
        echo "<tr><td align=\"center\">{$vals['rank']}</td><td>";
        $player = new Player($vals['playername']);
        echo $player->linkTo();
        echo "</td>\n";
        echo "<td align=\"center\">{$vals['rating']}</td>\n";
        echo "<td align=\"right\" width=35>{$vals['wins']}&nbsp;</td>\n";
        echo "<td align=\"center\">-</td><td width=35 align=\"left\">&nbsp;{$vals['losses']}</td></tr>";
    }
    echo "</table>";
}
コード例 #3
0
ファイル: player.php プロジェクト: jamuraa/gatherling
function print_matchTable($player, $limit = 0)
{
    if (!isset($_POST['format'])) {
        $_POST['format'] = "%";
    }
    if (!isset($_POST['series'])) {
        $_POST['series'] = "%";
    }
    if (!isset($_POST['season'])) {
        $_POST['season'] = "%";
    }
    if (!isset($_POST['opp'])) {
        $_POST['opp'] = "%";
    }
    $matches = $player->getFilteredMatches($_POST['format'], $_POST['series'], $_POST['season'], $_POST['opp']);
    echo "<table class=\"scoreboard\">";
    echo "<tr class=\"top\"><th>Event</th><th>Round</th><th>Opponent</th><th>Deck</th><th>Rating</th><th>Result</th></tr>";
    $oldname = "";
    $rowcolor = "even";
    $Count = 1;
    foreach ($matches as $match) {
        $rnd = $match->round;
        if ($match->timing == 2 && $match->type == "Single Elimination") {
            $rnd = "T" . pow(2, $match->rounds + 1 - $match->round);
        }
        $opp = $match->otherPlayer($player->name);
        $res = "D";
        if ($match->playerWon($player->name)) {
            $res = "W";
        }
        if ($match->playerLost($player->name)) {
            $res = "L";
        }
        $opponent = new Player($opp);
        $event = $match->getEvent();
        $oppRating = $opponent->getRating("Composite", $event->start);
        $oppDeck = $opponent->getDeckEvent($event->name);
        $deckStr = "No Deck Found";
        if (!is_null($oppDeck)) {
            $deckStr = $oppDeck->linkTo();
        }
        if ($oldname != $event->name) {
            if ($Count % 2 != 0) {
                $rowcolor = "odd";
                $Count++;
            } else {
                $rowcolor = "even";
                $Count++;
            }
            echo "<tr class=\"{$rowcolor}\"><td>{$event->name}</td>";
        } else {
            echo "<tr class=\"{$rowcolor}\"><td></td>\n";
        }
        $oldname = $event->name;
        echo "<td>{$rnd}</td>\n";
        echo "<td>" . $opponent->linkTo() . "</td>\n";
        echo "<td>{$deckStr}</td>\n";
        echo "<td>{$oppRating}</td>\n";
        echo "<td>{$res} {$match->getPlayerWins($player->name)} - {$match->getPlayerLosses($player->name)} </td>";
        echo "</tr>\n";
    }
    echo "</table>";
}
コード例 #4
0
ファイル: deck.php プロジェクト: jamuraa/gatherling
function matchupTable($deck)
{
    $matches = $deck->getMatches();
    echo "<table style=\"border-width: 0px\" cellpadding=1 align=\"right\">\n";
    echo "<tr><td colspan=4 align=\"left\"><b>MATCHUPS</td></tr>\n";
    if (count($matches) == 0) {
        echo "<tr><td colspan=4><i>No matches were found for this deck</td></tr>";
    }
    $event = new Event($deck->eventname);
    if ($event->finalized == '0') {
        echo "<tr><td>Matchups are anonymous for deck privacy until event is finalized.</td><tr>";
    } else {
        foreach ($matches as $match) {
            $rnd = 'R' . $match->round;
            if ($match->timing > 1 && $match->type == 'Single Elimination') {
                $rnd = 'T' . pow(2, $match->rounds - $match->round + 1);
            }
            $color = "#FF9900";
            $res = "Draw";
            if ($match->playerMatchInProgress($deck->playername)) {
                $res = "In Progress";
            }
            if ($match->playerWon($deck->playername)) {
                $color = "#009900";
                $res = "Win";
            }
            if ($match->playerLost($deck->playername)) {
                $color = "#FF0000";
                $res = "Loss";
            }
            if ($match->playerBye($deck->playername)) {
                $res = "Bye";
            }
            $resStr = "<b><font color=\"color\">{$res}</font></b>";
            if ($res != 'Bye') {
                $opp = new Player($match->otherPlayer($deck->playername));
                $deckcell = "No Deck Found";
                $oppdeck = $opp->getDeckEvent($deck->eventname);
                if ($oppdeck != NULL) {
                    $deckcell = $oppdeck->linkTo();
                }
                echo "<tr><td align=\"right\">{$rnd}:&nbsp;</td>\n";
                echo "<td align=\"left\"><b><font color=\"{$color}\">{$res}</font>:&nbsp;</td>\n";
                echo "<td width=30>{$match->getPlayerWins($deck->playername)} - {$match->getPlayerLosses($deck->playername)}</td>";
                echo "<td>vs.&nbsp;</td>\n";
                echo "<td align=\"left\">" . $opp->linkTo() . "&nbsp;</td>\n";
                echo "<td align=\"right\">{$deckcell}&nbsp;</td></tr>\n";
            } else {
                echo "<tr><td align=\"right\">{$rnd}:&nbsp;</td>\n";
                echo "<td align=\"left\"><b>{$res}:&nbsp;</td>\n";
                echo "<td width=30> Bye </td>";
                echo "<td>vs.&nbsp;</td>\n";
                echo "<td align=\"left\"> No Opponent&nbsp;</td>\n";
                echo "<td align=\"right\">No Deck Found&nbsp;</td></tr>\n";
            }
        }
    }
    echo "<tr><td>&nbsp;</td></tr>";
    echo "</table>\n";
}
コード例 #5
0
ファイル: eventreport.php プロジェクト: jamuraa/gatherling
function trophyCell($event)
{
    if ($event->hastrophy) {
        echo Event::trophy_image_tag($event->name) . "<br />\n";
    } else {
        echo image_tag("notrophy.png");
    }
    $deck = $event->getPlaceDeck('1st');
    $player = $event->getPlacePlayer('1st');
    if (!$player) {
        echo "No winner yet!";
    } else {
        $playerwin = new Player($player);
        echo $playerwin->linkTo();
        $info = deckInfo($deck);
        echo image_tag("colors/{$info[1]}.png");
        echo $deck->linkTo();
        echo "<br />\n";
    }
}
コード例 #6
0
ファイル: decksearch.php プロジェクト: jamuraa/gatherling
function content()
{
    if (!empty($_GET['deck']) || !empty($_GET['card'])) {
        $db = Database::getConnection();
        $decknamesearch = "%" . $db->escape_string($_GET['deck']) . "%";
        $cardsearch_wild = "%" . $db->escape_string($_GET['card']) . "%";
        // TODO: I need a better way of doing this
        if (empty($_GET['card']) && !empty($_GET['deck'])) {
            $stmt = $db->prepare("SELECT id FROM decks WHERE name LIKE ? LIMIT 20");
            $stmt->bind_param("s", $decknamesearch);
        } else {
            if (!empty($_GET['card']) && !empty($_GET['deck'])) {
                $stmt = $db->prepare("SELECT id FROM decks WHERE name LIKE ? AND deck_contents_cache LIKE ? LIMIT 20");
                $stmt->bind_param("ss", $decknamesearch, $cardsearch);
            } else {
                if (!empty($_GET['card']) && empty($_GET['deck'])) {
                    $stmt = $db->prepare("SELECT id FROM decks WHERE deck_contents_cache LIKE ? LIMIT 20");
                    $stmt->bind_param("s", $cardsearch_wild);
                }
            }
        }
        $stmt->execute();
        $stmt->store_result();
        $stmt->bind_result($id);
        $search_desc = "";
        if (!empty($_GET['card'])) {
            $search_desc .= " with {$_GET['card']} in them";
        }
        if (!empty($_GET['deck'])) {
            if (!empty($search_desc)) {
                $search_desc .= " AND ";
            }
            $search_desc .= " with '{$_GET['deck']}' in the deck name";
        }
        if ($stmt->num_rows() == 0) {
            echo "<center>No decks {$search_desc}! Try again!</center>\n";
        } else {
            if ($stmt->num_rows() == 20) {
                echo "<center>More than 20 decks {$search_desc}</center>\n";
            } else {
                echo "<center>{$stmt->num_rows()} decks {$search_desc}</center>\n";
            }
            $deck_ids = array();
            while ($stmt->fetch()) {
                $deck_ids[] = $id;
            }
            $stmt->close();
            echo "<table align=\"center\" style=\"border-width: 0px;\" cellpadding=3>";
            echo "<tr><th>Deck Name</th><th>Played by</th><th>Event</th> </tr>";
            foreach ($deck_ids as $deck_id) {
                $deck = new Deck($deck_id);
                echo "<tr><td>" . medalImgStr($deck->medal) . "\n";
                echo $deck->linkTo();
                echo "</td>";
                if ($deck->playername != NULL) {
                    $aplay = new Player($deck->playername);
                    echo "<td>{$aplay->linkTo()}</td>";
                } else {
                    echo "<td>???</td>";
                }
                if ($deck->eventname != NULL) {
                    echo "<td><a href=\"eventreport.php?event={$deck->eventname}\">{$deck->eventname}</a></td>";
                } else {
                    echo "<td>???</td>";
                }
                echo "</tr>\n";
            }
            echo "</table>";
        }
    } else {
        echo "<form method=\"get\" action=\"{$_SERVER['REQUEST_URI']}\"><table class=\"form\">";
        echo "<tr><th>Deck name contains</th> <td>";
        echo "<input type=\"text\" name=\"deck\"></td></tr>";
        echo "<tr><th>Deck contains card</th><td>";
        echo "<input type=\"text\" name=\"card\"></td></tr>";
        echo "<tr><td colspan=2 class=\"buttons\">";
        echo "<input type=\"submit\" value=\"Gimme some decks!\"></td></tr>";
        echo "</table></form>";
        echo "<table><tr><th colspan=2><b>MOST PLAYED DECKS</b></th></tr>";
        echo "<tr><th>Deck Name</th><th>Played</th></tr>";
        $db = Database::getConnection();
        $stmt = $db->prepare("SELECT count(d.deck_hash) as cnt, d.name, d.id FROM decks d, entries n where n.deck = d.id AND 5 < (SELECT count(*) from deckcontents where deck = d.id group by deck) group by d.deck_hash order by cnt desc limit 20");
        $stmt->execute();
        $stmt->bind_result($count, $name, $deckid);
        while ($stmt->fetch()) {
            echo "<tr><td><a href=\"deck.php?mode=view&id={$deckid}\">{$name}</a></td>";
            echo "<td>{$count} times</td></tr>";
        }
        echo "</table>";
    }
}