コード例 #1
0
 function tournamentTable()
 {
     global $smarty;
     global $template_dir;
     global $db;
     global $config;
     $encList = $db->selectList('tournamentencounters', '*', "`tournamentid`=" . $this->tournamentId, "`roundid` ASC, `encounterid` ASC");
     foreach ($encList as $encounter) {
         $y = $encounter['roundid'];
         $x = $encounter['encounterid'];
         $curEnc = new EliminationEncounter($this->tournamentId, $y, $x);
         $finalList[$x][$y]['round'] = $x;
         $finalList[$x][$y]['encid'] = $y;
         foreach ($this->participants as $participant) {
             if ($participant->getId() == $curEnc->getPlayer1id()) {
                 $player1 = $participant;
             }
             if ($participant->getId() == $curEnc->getPlayer2id()) {
                 $player2 = $participant;
             }
         }
         // Only player 2 (in the last enc) could be a dummy
         if ($curEnc->getPlayer2id() == -1) {
             $player2 = newDummy();
         }
         if ($curEnc->getPlayer1id() == 0) {
             $player1 = newUnknown();
         }
         if ($curEnc->getPlayer2id() == 0) {
             $player2 = newUnknown();
         }
         if ($curEnc->getPlayer1id() > 0 && $curEnc->getPlayer2id() > 0) {
             $finalList[$x][$y]['link'] = makeUrl('tournament', array('tournamentid' => $this->tournamentId, 'encid' => $x, 'roundid' => $y, 'mode' => 'view'));
         }
         $finalList[$x][$y]['p1name'] = $player1->getName();
         $finalList[$x][$y]['p1url'] = $player1->getUrl();
         $finalList[$x][$y]['p2name'] = $player2->getName();
         $finalList[$x][$y]['p2url'] = $player2->getUrl();
         $finalList[$x][$y]['timestatus'] = $curEnc->getEncTimeState();
         if ($curEnc->isFinished()) {
             $finalList[$x][$y]['p1points'] = $curEnc->getPoints1();
             $finalList[$x][$y]['p2points'] = $curEnc->getPoints2();
             $finalList[$x][$y]['winner'] = $curEnc->winner();
         }
     }
     $smarty->assign('roundsandmaps', $this->getRoundsAndMaps($y + 1));
     $smarty->assign('table', $finalList);
     $smarty->assign('encounterWidth', $config->get('tournament', 'tree-encounter-width'));
     $smarty->assign('encTempl', $template_dir . '/kothencounter.tpl');
     $smarty->assign('path', $template_dir . '/koth.tpl');
 }
コード例 #2
0
function getAllNextEncounters()
{
    global $db;
    global $lang;
    $tournaments = $db->selectList("tournamentlist", "*", "`state`=2");
    $allNextEncs = array();
    foreach ($tournaments as $tourney) {
        switch ($tourney['mode']) {
            // Single Elimination
            case 1:
                // Double Elimination
            // Double Elimination
            case 2:
                // KotH
            // KotH
            case 6:
                $allEnc = $db->selectList("tournamentencounters", "*", "`tournamentid`=" . $tourney['tournamentid'] . " AND `state`=0 AND (`player1id`>0 OR `player2id`>0)");
                require_once "mod/default/tournament/tournament.eliminationencounter.class.php";
                foreach ($allEnc as $enc) {
                    $curEnc = new EliminationEncounter($enc['tournamentid'], $enc['roundid'], $enc['encounterid']);
                    $allNextEncs[] = array('time' => $curEnc->getEncTimeState(), 'round' => makeRoundNr($curEnc->getRoundId(), $tourney['mode']), 'encounterid' => $curEnc->getId(), 'player1id' => makePlayerUrl($curEnc->getPlayer1Id(), $tourney['playerperteam'] == 1), 'player2id' => makePlayerUrl($curEnc->getPlayer2Id(), $tourney['playerperteam'] == 1), 'title' => $tourney['title']);
                }
                break;
                // Groups
            // Groups
            case 3:
                $allEnc = $db->selectList("tournamentgroupenc", "*", "`tournamentid`=" . $tourney['tournamentid'] . " GROUP BY `round`, `group` HAVING MIN(rank)=0");
                foreach ($allEnc as $enc) {
                    $participants = $db->selectList("tournamentgroupenc", "*", "`tournamentid`=" . $enc['tournamentid'] . " AND `round`=" . $enc['round'] . " AND `group`=" . $enc['group']);
                    $allParticipants = array();
                    foreach ($participants as $participant) {
                        $allParticipants[] = makePlayerUrl($participant['participantid']);
                    }
                    $encounterUrl = makeHTMLUrl($lang->get('group') . " " . chr(65 + $enc['group']), makeURL('tournament', array('mode' => 'table', 'tournamentid' => $enc['tournamentid'], 'action' => 'submit', 'group' => $enc['group'], 'round' => $enc['round'])));
                    $allNextEncs[] = array('time' => '', 'round' => makeRoundNr($enc['round'] - 1, $tourney['mode']), 'encounterid' => $enc['group'], 'player1id' => $encounterUrl, 'player2id' => '', 'title' => $tourney['title'], 'participants' => $allParticipants);
                }
                break;
                // Points
            // Points
            case 4:
                break;
                // Randomize
            // Randomize
            case 5:
                break;
        }
    }
    usort($allNextEncs, "sortNextEncounters");
    return $allNextEncs;
}
コード例 #3
0
 function tournamentTable()
 {
     global $smarty;
     global $template_dir;
     global $config;
     $size = pow(2, $this->roundCount() - 1);
     for ($i = 0; $i < $size; $i++) {
         for ($j = 0; $j < $this->roundCount(); $j++) {
             if ($i % pow(2, $j) == 0) {
                 $encId = $i / pow(2, $j);
                 $curEnc = new EliminationEncounter($this->tournamentId, $j, $encId);
                 if ($curEnc->getPlayer1id() == -1) {
                     $player1 = newDummy();
                 }
                 if ($curEnc->getPlayer2id() == -1) {
                     $player2 = newDummy();
                 }
                 if ($curEnc->getPlayer1id() == 0) {
                     $player1 = newUnknown();
                 }
                 if ($curEnc->getPlayer2id() == 0) {
                     $player2 = newUnknown();
                 }
                 foreach ($this->participants as $participant) {
                     if ($participant->getId() == $curEnc->getPlayer1id()) {
                         $player1 = $participant;
                     }
                     if ($participant->getId() == $curEnc->getPlayer2id()) {
                         $player2 = $participant;
                     }
                 }
                 $field[$i][$j]['round'] = $j;
                 $field[$i][$j]['encNr'] = $i + 1;
                 $field[$i][$j]['rowspan'] = pow(2, $j);
                 if ($curEnc->getPlayer1id() > 0 && $curEnc->getPlayer2id() > 0) {
                     $field[$i][$j]['link'] = makeUrl('tournament', array('tournamentid' => $this->tournamentId, 'encid' => $encId, 'roundid' => $j, 'mode' => 'view'));
                 }
                 $field[$i][$j]['p1name'] = $player1->getName();
                 $field[$i][$j]['p1url'] = $player1->getUrl();
                 $field[$i][$j]['p2name'] = $player2->getName();
                 $field[$i][$j]['p2url'] = $player2->getUrl();
                 $field[$i][$j]['timestatus'] = $curEnc->getEncTimeState();
                 if ($curEnc->isFinished()) {
                     $field[$i][$j]['p1points'] = $curEnc->getPoints1();
                     $field[$i][$j]['p2points'] = $curEnc->getPoints2();
                     $field[$i][$j]['winner'] = $curEnc->winner();
                 }
             }
         }
     }
     if ($this->thirdplayoff) {
         $thirdplayoff = array();
         $curEnc = new EliminationEncounter($this->tournamentId, $this->roundCount() - 1, 1);
         if ($curEnc->getPlayer1id() == -1) {
             $player1 = newDummy();
         }
         if ($curEnc->getPlayer2id() == -1) {
             $player2 = newDummy();
         }
         if ($curEnc->getPlayer1id() == 0) {
             $player1 = newUnknown();
         }
         if ($curEnc->getPlayer2id() == 0) {
             $player2 = newUnknown();
         }
         foreach ($this->participants as $participant) {
             if ($participant->getId() == $curEnc->getPlayer1id()) {
                 $player1 = $participant;
             }
             if ($participant->getId() == $curEnc->getPlayer2id()) {
                 $player2 = $participant;
             }
         }
         $thirdplayoff['round'] = $this->roundCount() - 1;
         $thirdplayoff['encNr'] = $curEnc->getId() + 1;
         if ($curEnc->getPlayer1id() > 0 && $curEnc->getPlayer2id() > 0) {
             $thirdplayoff['link'] = makeUrl('tournament', array('tournamentid' => $this->tournamentId, 'encid' => $curEnc->getId(), 'roundid' => $this->roundCount() - 1, 'mode' => 'view'));
         }
         $thirdplayoff['p1name'] = $player1->getName();
         $thirdplayoff['p1url'] = $player1->getUrl();
         $thirdplayoff['p2name'] = $player2->getName();
         $thirdplayoff['p2url'] = $player2->getUrl();
         $thirdplayoff['timestatus'] = $curEnc->getEncTimeState();
         $thirdplayoff['tdnbsp'] = ($this->roundCount() - 1) * 2;
         if ($curEnc->isFinished()) {
             $thirdplayoff['p1points'] = $curEnc->getPoints1();
             $thirdplayoff['p2points'] = $curEnc->getPoints2();
             $thirdplayoff['winner'] = $curEnc->winner();
         }
         $smarty->assign('thirdplayoff', $thirdplayoff);
     }
     $smarty->assign('roundsandmaps', $this->getRoundsAndMaps($this->roundCount()));
     $smarty->assign('path', $template_dir . '/singleelimination.tpl');
     $smarty->assign('field', $field);
     $smarty->assign('encounterWidth', $config->get('tournament', 'tree-encounter-width'));
     $smarty->assign('encTempl', $template_dir . '/eliminationencounter.tpl');
 }