Skip to content

Commit

Permalink
[364] Allow display arena team page by arena team ID (team-info.xml?r…
Browse files Browse the repository at this point in the history
…=REALM&tid=TEAMID)
  • Loading branch information
Shadez committed Aug 19, 2010
1 parent 3ed7a5a commit e1bfebd
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 36 deletions.
78 changes: 46 additions & 32 deletions includes/classes/class.arenateams.php
Expand Up @@ -3,7 +3,7 @@
/**
* @package World of Warcraft Armory
* @version Release Candidate 1
* @revision 357
* @revision 364
* @copyright (c) 2009-2010 Shadez
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
Expand All @@ -27,8 +27,8 @@
}

Class Arenateams extends Armory {
public $arenateamid;
public $teamname;
public $arenateamid = 0;
public $teamname = null;
public $captainguid;
public $teamfaction;
public $teamlogostyle;
Expand All @@ -39,13 +39,23 @@
private $gameid = false;

public function _initTeam() {
if(!$this->teamname) {
$this->Log()->writeError('%s : teamname not defined', __METHOD__);
if(!$this->teamname && !$this->arenateamid) {
$this->Log()->writeError('%s : teamname and arenateamid are not defined', __METHOD__);
return false;
}
if($this->teamname != null) {
$arenaInfo = $this->cDB->selectRow("SELECT `arenateamid`, `captainguid`, `type`, `name` FROM `arena_team` WHERE `name`='%s' LIMIT 1", $this->teamname);
}
elseif($this->arenateamid != 0) {
$arenaInfo = $this->cDB->selectRow("SELECT `arenateamid`, `captainguid`, `type`, `name` FROM `arena_team` WHERE `arenateamid`='%d' LIMIT 1", $this->arenateamid);
}
if(!$arenaInfo || !isset($arenaInfo)) {
$this->Log()->writeError('%s : unable to find arenateam %s (id: %d)!', __METHOD__, $this->teamname, $this->arenateamid);
return false;
}
$arenaInfo = $this->cDB->selectRow("SELECT `arenateamid`, `captainguid`, `type` FROM `arena_team` WHERE `name`='%s' LIMIT 1", $this->teamname);
$this->arenateamid = $arenaInfo['arenateamid'];
$this->captainguid = $arenaInfo['captainguid'];
$this->teamname = $arenaInfo['name'];
$this->teamlogostyle = self::GetArenaTeamEmblem($this->arenateamid);
$this->teamfaction = Utils::GetFactionId($this->cDB->selectCell("SELECT `race` FROM `characters` WHERE `guid`=%d LIMIT 1", $this->captainguid));
$this->teamfaction = 1;
Expand Down Expand Up @@ -95,14 +105,18 @@ public function GetArenaTeamInfo() {
}

public function IsTeam() {
if(!$this->teamname) {
$this->Log()->writeError('%s : teamname not defined', __METHOD__);
if(!$this->teamname && !$this->arenateamid) {
$this->Log()->writeError('%s : teamname and arenateamid are not defined', __METHOD__);
return false;
}
if(!$this->cDB->selectCell("SELECT 1 FROM `arena_team` WHERE `name`='%s' LIMIT 1", $this->teamname)) {
return false;
$check = false;
if($this->teamname != null) {
$check = $this->cDB->selectCell("SELECT 1 FROM `arena_team` WHERE `name`='%s' LIMIT 1", $this->teamname);
}
return true;
elseif($this->arenateamid != 0) {
$check = $this->cDB->selectCell("SELECT 1 FROM `arena_team` WHERE `arenateamid`=%d LIMIT 1", $this->arenateamid);
}
return $check;
}

public function GetCharacterArenaTeamInfo() {
Expand Down Expand Up @@ -173,9 +187,9 @@ public function BuildArenaLadderList($type, $page, $num = false, $order = 'ratin
$current_count = $db->selectCell("
SELECT
COUNT(`arena_team`.`arenateamid`)
FROM `arena_team` AS `arena_team`
LEFT JOIN `arena_team_stats` AS `arena_team_stats` ON `arena_team_stats`.`arenateamid` = `arena_team`.`arenateamid`
WHERE `arena_team`.`type` = %d AND `arena_team_stats`.`rank` > 0", $type);
FROM `arena_team` AS `arena_team`
LEFT JOIN `arena_team_stats` AS `arena_team_stats` ON `arena_team_stats`.`arenateamid` = `arena_team`.`arenateamid`
WHERE `arena_team`.`type` = %d AND `arena_team_stats`.`rank` > 0", $type);
$summary = $current_count+$summary;
}
return $summary;
Expand All @@ -198,11 +212,11 @@ public function BuildArenaLadderList($type, $page, $num = false, $order = 'ratin
`arena_team_stats`.`wins2` AS `seasonGamesWon`,
`characters`.`race`,
`arena_team_stats`.`played`-`arena_team_stats`.`wins2` AS `lose`
FROM `arena_team` AS `arena_team`
LEFT JOIN `arena_team_stats` AS `arena_team_stats` ON `arena_team_stats`.`arenateamid`=`arena_team`.`arenateamid`
LEFT JOIN `characters` AS `characters` ON `characters`.`guid`=`arena_team`.`captainguid`
WHERE `arena_team`.`type`=%d AND `arena_team_stats`.`rank` > 0
ORDER BY `lose` %s LIMIT %d, 20
FROM `arena_team` AS `arena_team`
LEFT JOIN `arena_team_stats` AS `arena_team_stats` ON `arena_team_stats`.`arenateamid`=`arena_team`.`arenateamid`
LEFT JOIN `characters` AS `characters` ON `characters`.`guid`=`arena_team`.`captainguid`
WHERE `arena_team`.`type`=%d AND `arena_team_stats`.`rank` > 0
ORDER BY `lose` %s LIMIT %d, 20
", $type, $sort, $page);
}
else {
Expand All @@ -217,11 +231,11 @@ public function BuildArenaLadderList($type, $page, $num = false, $order = 'ratin
`arena_team_stats`.`played` AS `seasonGamesPlayed`,
`arena_team_stats`.`wins2` AS `seasonGamesWon`,
`characters`.`race`
FROM `arena_team` AS `arena_team`
LEFT JOIN `arena_team_stats` AS `arena_team_stats` ON `arena_team_stats`.`arenateamid`=`arena_team`.`arenateamid`
LEFT JOIN `characters` AS `characters` ON `characters`.`guid`=`arena_team`.`captainguid`
WHERE `arena_team`.`type`=%d AND `arena_team_stats`.`rank` > 0
ORDER BY %s %s LIMIT %d, 20
FROM `arena_team` AS `arena_team`
LEFT JOIN `arena_team_stats` AS `arena_team_stats` ON `arena_team_stats`.`arenateamid`=`arena_team`.`arenateamid`
LEFT JOIN `characters` AS `characters` ON `characters`.`guid`=`arena_team`.`captainguid`
WHERE `arena_team`.`type`=%d AND `arena_team_stats`.`rank` > 0
ORDER BY %s %s LIMIT %d, 20
", $type, $order, $sort, $page);
}
if(!$realmArenaTeamInfo) {
Expand Down Expand Up @@ -261,21 +275,21 @@ public function GetArenaTeamEmblem($teamId = null, $db = false) {
if($db == false) {
$arenaTeamEmblem = $this->cDB->selectRow("
SELECT `BackgroundColor` AS `background`, `BorderColor` AS `borderColor`, `BorderStyle` AS `borderStyle`, `EmblemColor` AS `iconColor`, `EmblemStyle` AS `iconStyle`
FROM `arena_team`
WHERE `arenateamid`=%d", $teamId);
$arenaTeamEmblem['background'] = dechex($arenaTeamEmblem['background']);
$arenaTeamEmblem['borderColor'] = dechex($arenaTeamEmblem['borderColor']);
$arenaTeamEmblem['iconColor'] = dechex($arenaTeamEmblem['iconColor']);
FROM `arena_team`
WHERE `arenateamid`=%d", $teamId);
$arenaTeamEmblem['background'] = /*dechex(*/$arenaTeamEmblem['background']/*)*/;
$arenaTeamEmblem['borderColor'] = /*dechex(*/$arenaTeamEmblem['borderColor']/*)*/;
$arenaTeamEmblem['iconColor'] = /*dechex(*/$arenaTeamEmblem['iconColor']/*)*/;
return $arenaTeamEmblem;
}
elseif(is_object($db)) {
$arenaTeamEmblem = $db->selectRow("
SELECT `BackgroundColor` AS `background`, `BorderColor` AS `borderColor`, `BorderStyle` AS `borderStyle`, `EmblemColor` AS `iconColor`, `EmblemStyle` AS `iconStyle`
FROM `arena_team`
WHERE `arenateamid`=%d", $teamId);
$arenaTeamEmblem['background'] = dechex($arenaTeamEmblem['background']);
$arenaTeamEmblem['borderColor'] = dechex($arenaTeamEmblem['borderColor']);
$arenaTeamEmblem['iconColor'] = dechex($arenaTeamEmblem['iconColor']);
$arenaTeamEmblem['background'] = /*dechex(*/$arenaTeamEmblem['background']/*)*/;
$arenaTeamEmblem['borderColor'] = /*dechex(*/$arenaTeamEmblem['borderColor']/*)*/;
$arenaTeamEmblem['iconColor'] = /*dechex(*/$arenaTeamEmblem['iconColor']/*)*/;
return $arenaTeamEmblem;
}
}
Expand Down
2 changes: 1 addition & 1 deletion includes/revision_nr.php
@@ -1,5 +1,5 @@
<?php
define('ARMORY_REVISION', 363);
define('ARMORY_REVISION', 364);
define('DB_VERSION', 'armory_r361');
define('CONFIG_VERSION', '0708201001');
?>
9 changes: 6 additions & 3 deletions team-info.php
Expand Up @@ -3,7 +3,7 @@
/**
* @package World of Warcraft Armory
* @version Release Candidate 1
* @revision 345
* @revision 364
* @copyright (c) 2009-2010 Shadez
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
Expand Down Expand Up @@ -42,8 +42,11 @@
elseif(isset($_GET['select'])) {
$arenateams->teamname = $utils->escape($_GET['select']);
}
elseif(isset($_GET['tid'])) {
$arenateams->arenateamid = (int) $_GET['tid']; // Name will be assigned in Arenateams::_initTeam()
}
$isTeam = $arenateams->IsTeam();
if(!$isTeam || !$arenateams->teamname) {
if(!$isTeam) {
// Load XSLT template
$xml->LoadXSLT('error/error.xsl');
$xml->XMLWriter()->startElement('page');
Expand All @@ -55,7 +58,7 @@
echo $xml->StopXML();
exit;
}
if($arenateams->teamname && $isTeam && $armory->armoryconfig['useCache'] == true && !isset($_GET['skipCache'])) {
if($isTeam && $armory->armoryconfig['useCache'] == true && !isset($_GET['skipCache'])) {
$cache_id = $utils->GenerateCacheId('team-info', $arenateams->teamname, $armory->currentRealmInfo['name']);
if($cache_data = $utils->GetCache($cache_id, 'arena')) {
echo $cache_data;
Expand Down

0 comments on commit e1bfebd

Please sign in to comment.