コード例 #1
0
ファイル: Rankings.class.php プロジェクト: BieeeLC/OpenWeb
 function DrawTopOnlineTable($param1)
 {
     require $_SERVER['DOCUMENT_ROOT'] . "/" . $_SESSION['SiteFolder'] . "Config/Main.php";
     require $_SERVER['DOCUMENT_ROOT'] . "/" . $_SESSION['SiteFolder'] . "Config/SQL.php";
     require $_SERVER['DOCUMENT_ROOT'] . "/" . $_SESSION['SiteFolder'] . "Config/VIP_.php";
     require $_SERVER['DOCUMENT_ROOT'] . "/" . $_SESSION['SiteFolder'] . "Config/TopReset.php";
     require $_SERVER['DOCUMENT_ROOT'] . "/" . $_SESSION['SiteFolder'] . "Config/TopOnline.php";
     require $_SERVER['DOCUMENT_ROOT'] . "/" . $_SESSION['SiteFolder'] . "Language/{$MainLanguage}/Rankings.php";
     require_once $_SERVER['DOCUMENT_ROOT'] . "/" . $_SESSION['SiteFolder'] . "System/Account.class.php";
     $acc = new Account($this->db);
     $rows = $param1;
     if ($TopOnlineMaxResults > 0 && $rows > $TopOnlineMaxResults) {
         return "";
     }
     $return = "\n\t\t<table class=\"RankingOnlineTable\">\n\t\t\t<tr>\n\t\t\t\t<th id=\"Position\">{$RankingMessage008}</th>\n\t\t\t\t<th id=\"Name\">{$RankingMessage009}</th>\n\t\t\t\t<th id=\"OnlineTime\">{$RankingMessage069}</th>\n\t\t\t\t<th id=\"Resets\">{$RankingMessage011}</th>\n\t\t\t\t";
     if ($TopOnlineShowClass) {
         $return .= "<th id=\"Class\">{$RankingMessage012}</th>";
     }
     if ($TopOnlineShowGuild) {
         require_once $_SERVER['DOCUMENT_ROOT'] . "/" . $_SESSION['SiteFolder'] . "System/Guild.class.php";
         $gd = new Guild();
         $guild = $gd->GetGuildMemberArray($this->db);
         $return .= "<th id=\"Guild\">{$RankingMessage013}</th>";
     }
     if ($TopOnlineShowStatus) {
         $OnlineCharacters = $acc->GetConnectedCharacters($this->db);
         $return .= "<th id=\"Status\">{$RankingMessage014}</th>";
     }
     if ($TopOnlineShowVip) {
         $return .= "<th id=\"Vip\">{$RankingMessage016}</th>";
     }
     $return .= "\n\t\t\t</tr>";
     if (!is_numeric($rows) && $rows != "*") {
         die;
     }
     if ($rows == "*") {
         $rows = "";
     } else {
         $rows = "TOP {$rows}";
     }
     $query = "\n\t\t\tSELECT {$rows} i.{$SQLVIPColumn} as Vip, c.Name, c.{$SQLResetsColumn} as Resets, c.Class, c.{$SQLOnlineTimeColumn} as Online, RANK() OVER(ORDER BY c.{$SQLOnlineTimeColumn} DESC) as Rank\n\t\t\tFROM Character as c, MEMB_INFO as i\n\t\t\tWHERE c.CtlCode < 8 AND c.AccountID = i.memb___id\n\t\t\tORDER BY c.{$SQLOnlineTimeColumn} DESC\n\t\t\t";
     $this->db->Query($query);
     $NumRows = $this->db->NumRows();
     for ($i = 0; $i < $NumRows; $i++) {
         $CharData[$i] = $this->db->GetRow();
     }
     for ($i = 0; $i < $NumRows; $i++) {
         $num = $i % 2 + 1;
         $data = $CharData[$i];
         if ($SQLOnlineTimeDivisor > 0) {
             $onlineTime = number_format($data['Online'] / $SQLOnlineTimeDivisor, 0, "", ".") . $SQLOnlineTimeSufix;
         } else {
             $onlineTime = number_format($data['Online'], 0, "", ".") . $SQLOnlineTimeSufix;
         }
         $return .= "\n\t\t\t\t<tr class=\"RankingOnlineTableRow{$num}\">\n\t\t\t\t<td id=\"Position\">" . $data['Rank'] . "{$RankingMessage017}</td>\n\t\t\t\t<td id=\"Name\"><a href=\"/" . $_SESSION['SiteFolder'] . "?c=CharInfo/" . $data['Name'] . "\">" . $data['Name'] . "</a></td>\n\t\t\t\t<td id=\"OnlineTime\">" . $onlineTime . "</td>\n\t\t\t\t<td id=\"Resets\">" . $data['Resets'] . "</td>\n\t\t\t\t";
         if ($TopOnlineShowClass) {
             require_once $_SERVER['DOCUMENT_ROOT'] . "/" . $_SESSION['SiteFolder'] . "System/Character.class.php";
             $ch = new Character();
             $class = $ch->GetClassName($data['Class'], $TopOnlineShowClassMode);
             $return .= "<td id=\"Class\">" . $class . "</td>";
         }
         if ($TopOnlineShowGuild) {
             if (!empty($guild[$data['Name']])) {
                 $guildName = $guild[$data['Name']];
             } else {
                 $guildName = "-";
             }
             $return .= "<td id=\"Guild\">" . $guildName . "</td>";
         }
         if ($TopOnlineShowStatus) {
             $status = in_array($data['Name'], $OnlineCharacters) ? $RankingMessage018 : $RankingMessage019;
             $return .= "<td id=\"Status\">" . $status . "</td>";
         }
         if ($TopOnlineShowVip) {
             $vip = $data['Vip'];
             $vip = $acc->GetVipName($vip);
             $return .= "<td id=\"Vip\">{$vip}</td>";
         }
         $return .= "\n\t\t\t</tr>";
     }
     $return .= "</table>";
     return $return;
 }