Example #1
0
 private function listCharacters()
 {
     $user = $this->getUser();
     $out = $this->getOutput();
     $dbr = wfGetDB(DB_SLAVE);
     // TODO: integrate TablePager into this. See SpecialBlockList as framework
     $fractal_list = $dbr->select(array('f' => 'fate_fractal', 'g' => 'fate_game', 'r' => 'muxregister_register'), array('r.user_name', 'r.canon_name', 'r.user_id', 'f.fractal_id', 'f.game_id', 'g.game_name', 'f.fractal_name', 'f.fractal_type', 'f.is_private', 'f.create_date', 'f.submit_date', 'f.approve_date', 'f.frozen_date'), array('user_id' => $user->getID(), 'fractal_type' => 'Character'), __METHOD__, array('ORDER BY' => array('fractal_type', 'fractal_name', 'canon_name')), array('r' => array('LEFT JOIN', 'f.register_id = r.register_id'), 'g' => array('JOIN', 'f.game_id = g.game_id')));
     $table = "<table class='wikitable'>" . "<tr><th>Character Name</th><th>Game</th><th>Status</th></tr>";
     if ($fractal_list->numRows() == 0) {
         $table .= "<tr><td colspan=100%>No Characters Found</td></tr>";
     } else {
         foreach ($fractal_list as $fractal) {
             $subpage = "ViewSheet";
             $status = "Created";
             $status_date = $fractal->create_date;
             $name = $fractal->canon_name;
             if ($fractal->frozen_date) {
                 $status = "Frozen";
                 $status_date = $fractal->frozen_date;
             } elseif ($fractal->approve_date) {
                 $status = "Approved";
                 $status_date = $fractal->approve_date;
             } elseif ($fractal->submit_date) {
                 $status = "Submitted";
                 $status_date = $fractal->submit_date;
             }
             $table .= "<tr><td>" . Linker::link($this->getPageTitle()->getSubpage($subpage), $name, array(), array('fractal_id' => $fractal->fractal_id), array('forcearticalpath')) . "</td><td>";
             if ($user->isAllowed('fatestaff')) {
                 $table .= Linker::link(Title::newFromText('Special:FateGameConfig')->getSubpage('View'), $fractal->game_name, array(), array('game_id' => $fractal->game_id), array('forcearticlepath'));
             } else {
                 $table .= $fractal->game_name;
             }
             $table .= "</td><td>" . $status . " on " . FateGameGlobals::getDisplayDate($status_date) . "</td></tr>";
         }
         $table .= "</table>";
     }
     $out->addHTML($table);
 }
 private function listAllGames()
 {
     $user = $this->getUser();
     $out = $this->getOutput();
     $dbr = wfGetDB(DB_SLAVE);
     $games = $dbr->select(array('g' => 'fate_game', 'r' => 'muxregister_register', 's' => 'fate_game_staff', 'r2' => 'muxregister_register'), array('r.register_id', 'r.user_name', 'r.canon_name', 'r.user_id', 'g.game_id', 'g.game_name', 'g.game_description', 'g.game_status', 'g.create_date', 'g.modified_date', 'group_concat(r2.user_id separator " ") as staff'), array('r.register_id = g.register_id', 'g.game_id = s.game_id', 's.register_id = r2.register_id'), __METHOD__, array('ORDER BY' => 'g.game_name'));
     $table = '';
     if ($games->numRows() == 0) {
         $table .= "<div>No games are currently set up.</div>";
     } else {
         $table .= "<table class='wikitable' >" . "<tr><th>Game Name</th><th>Game Master</th><th>Description</th><th>Status</th><th>Created</th><th>Last Modified</th></tr>";
         foreach ($games as $game) {
             $staff = explode(' ', $game->{staff});
             $table .= "<tr><td valign='top'>";
             if ($user->getID() == $game->{user_id} || in_array($user->getID(), $staff) || $user->isAllowed('fategm')) {
                 $table .= Linker::link($this->getPageTitle()->getSubpage("View"), $game->{game_name}, array(), array('game_id' => $game->{game_id}), array('forcearticlepath'));
             } else {
                 $table .= $game->{game_name};
             }
             $table .= "</td><td valign='top'>" . Linker::link(Title::newFromText('User:'******'forcearticlepath')) . "</td>" . "<td>" . $game->{game_description} . "</td><td valign='top'>" . $game->{game_status} . "</td>" . "<td>" . FateGameGlobals::getDisplayDate($game->{create_date}) . "</td>" . "<td>" . FateGameGlobals::getDisplayDate($game->{modified_date}) . "</td>" . "</tr>";
         }
         $table .= "</table>";
     }
     $out->addHTML($table);
 }