mirror of
https://github.com/Sarjuuk/aowow.git
synced 2025-11-29 15:58:16 +08:00
- implemented factions basics (search, listview and details)
- added forgotten shared brick for tooltips
This commit is contained in:
@@ -136,6 +136,7 @@ define('CUSTOM_HAS_VIDEO', 0x04000000);
|
|||||||
define('CUSTOM_DISABLED', 0x08000000);
|
define('CUSTOM_DISABLED', 0x08000000);
|
||||||
define('CUSTOM_SERVERSIDE', 0x10000000);
|
define('CUSTOM_SERVERSIDE', 0x10000000);
|
||||||
define('CUSTOM_UNAVAILABLE', 0x20000000);
|
define('CUSTOM_UNAVAILABLE', 0x20000000);
|
||||||
|
define('CUSTOM_EXCLUDE_FOR_LISTVIEW', 0x40000000); // will not show up in search or on listPage (override for staff)
|
||||||
|
|
||||||
// Custom Flags (per type)
|
// Custom Flags (per type)
|
||||||
define('SPELL_CU_TALENT', 0x0001); // passive talent
|
define('SPELL_CU_TALENT', 0x0001); // passive talent
|
||||||
@@ -147,7 +148,7 @@ define('SPELL_CU_PET_TALENT_TYPE2', 0x0020); // Cunning
|
|||||||
define('SPELL_CU_GLYPH_MAJOR', 0x0040);
|
define('SPELL_CU_GLYPH_MAJOR', 0x0040);
|
||||||
define('SPELL_CU_GLYPH_MINOR', 0x0080);
|
define('SPELL_CU_GLYPH_MINOR', 0x0080);
|
||||||
define('SPELL_CU_QUALITY_MASK', 0x0F00); // set if spell creates an item: (7 - Quality) << 8
|
define('SPELL_CU_QUALITY_MASK', 0x0F00); // set if spell creates an item: (7 - Quality) << 8
|
||||||
define('SPELL_CU_EXCLUDE_CATEGORY_SEARCH', 0x1000); // only display, when searching for spells in general (!cat || cat = 0)
|
// define('SPELL_CU_EXCLUDE_CATEGORY_SEARCH', 0x1000); // migrate to CUSTOM_EXCLUDE_FOR_LISTVIEW
|
||||||
define('SPELL_CU_FIRST_RANK', 0x2000); // used by filter
|
define('SPELL_CU_FIRST_RANK', 0x2000); // used by filter
|
||||||
define('SPELL_CU_LAST_RANK', 0x4000);
|
define('SPELL_CU_LAST_RANK', 0x4000);
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,33 @@ if (!defined('AOWOW_REVISION'))
|
|||||||
|
|
||||||
class FactionList extends BaseType
|
class FactionList extends BaseType
|
||||||
{
|
{
|
||||||
public static $type = TYPE_FACTION;
|
public static $type = TYPE_FACTION;
|
||||||
|
|
||||||
|
protected $queryBase = 'SELECT f1.*, f1.id AS ARRAY_KEY, f1.parentFactionId AS cat FROM ?_factions f1';
|
||||||
|
protected $queryOpts = array(
|
||||||
|
'f1' => [['f2']],
|
||||||
|
'f2' => ['j' => ['?_factions f2 ON f1.parentFactionId = f2.id', true], 's' => ', IFNULL(f2.parentFactionId, 0) AS cat2']
|
||||||
|
);
|
||||||
|
|
||||||
|
public function __construct($conditions = [])
|
||||||
|
{
|
||||||
|
parent::__construct($conditions);
|
||||||
|
|
||||||
|
if ($this->error)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// post processing
|
||||||
|
foreach ($this->iterate() as &$_curTpl)
|
||||||
|
{
|
||||||
|
// prepare factionTemplates
|
||||||
|
if ($_curTpl['templateIds'])
|
||||||
|
$_curTpl['templateIds'] = explode(' ', $_curTpl['templateIds']);
|
||||||
|
|
||||||
|
// prepare quartermaster
|
||||||
|
if ($_curTpl['qmNpcIds'])
|
||||||
|
$_curTpl['qmNpcIds'] = explode(' ', $_curTpl['qmNpcIds']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static function getName($id)
|
public static function getName($id)
|
||||||
{
|
{
|
||||||
@@ -20,24 +46,37 @@ class FactionList extends BaseType
|
|||||||
FROM
|
FROM
|
||||||
?_factions
|
?_factions
|
||||||
WHERE
|
WHERE
|
||||||
factionID = ?d',
|
id = ?d',
|
||||||
$id
|
$id
|
||||||
);
|
);
|
||||||
return Util::localizedString($n, 'name');
|
return Util::localizedString($n, 'name');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function reactsAgainst($faction)
|
public function getListviewData()
|
||||||
{
|
{
|
||||||
// see factionTemplate
|
$data = [];
|
||||||
/*
|
|
||||||
1: friendly
|
foreach ($this->iterate() as $__)
|
||||||
0: neutral
|
{
|
||||||
-1: hostile
|
$data[$this->id] = array(
|
||||||
*/
|
'category' => $this->curTpl['cat'],
|
||||||
|
'category2' => $this->curTpl['cat2'],
|
||||||
|
'expansion' => $this->curTpl['expansion'],
|
||||||
|
'id' => $this->id,
|
||||||
|
'side' => $this->curTpl['side'],
|
||||||
|
'name' => $this->getField('name', true)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function addGlobalsToJScript(&$template, $addMask = 0)
|
||||||
|
{
|
||||||
|
foreach ($this->iterate() as $__)
|
||||||
|
$template->extendGlobalData(self::$type, [$this->id => ['name' => $this->getField('name', true)]]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getListviewData() { }
|
|
||||||
public function addGlobalsToJScript(&$template, $addMask = 0) { }
|
|
||||||
public function renderTooltip() { }
|
public function renderTooltip() { }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -316,7 +316,10 @@ class ItemList extends BaseType
|
|||||||
$data[$this->id]['reqfaction'] = $x;
|
$data[$this->id]['reqfaction'] = $x;
|
||||||
|
|
||||||
if ($x = $this->curTpl['requiredFactionRank'])
|
if ($x = $this->curTpl['requiredFactionRank'])
|
||||||
$data[$this->id]['reqrep'] = $x;
|
{
|
||||||
|
$data[$this->id]['reqrep'] = $x;
|
||||||
|
$data[$this->id]['standing'] = $x; // used in /faction item-listing
|
||||||
|
}
|
||||||
|
|
||||||
if ($x = $this->curTpl['slots'])
|
if ($x = $this->curTpl['slots'])
|
||||||
$data[$this->id]['nslots'] = $x;
|
$data[$this->id]['nslots'] = $x;
|
||||||
@@ -1237,6 +1240,9 @@ class ItemList extends BaseType
|
|||||||
{
|
{
|
||||||
$this->ssd[$this->id] = DB::Aowow()->selectRow("SELECT * FROM ?_scalingstatdistribution WHERE id = ?", $this->curTpl['scalingStatDistribution']);
|
$this->ssd[$this->id] = DB::Aowow()->selectRow("SELECT * FROM ?_scalingstatdistribution WHERE id = ?", $this->curTpl['scalingStatDistribution']);
|
||||||
|
|
||||||
|
if (!$this->ssd[$this->id])
|
||||||
|
return;
|
||||||
|
|
||||||
// stats and ratings
|
// stats and ratings
|
||||||
for ($i = 1; $i <= 10; $i++)
|
for ($i = 1; $i <= 10; $i++)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ class QuestList extends BaseType
|
|||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getListviewData()
|
public function getListviewData($extraFactionId = 0) // i should formulate a propper parameter..
|
||||||
{
|
{
|
||||||
$data = [];
|
$data = [];
|
||||||
|
|
||||||
@@ -170,6 +170,7 @@ class QuestList extends BaseType
|
|||||||
$data[$this->id]['weekly'] = true;
|
$data[$this->id]['weekly'] = true;
|
||||||
|
|
||||||
// flags & 64: Hostile - there are quests, that flag the player for pvp when taken .. where is that set..?
|
// flags & 64: Hostile - there are quests, that flag the player for pvp when taken .. where is that set..?
|
||||||
|
// wflags: &1: disabled/historical; &32: AutoAccept; &64: Hostile(?)
|
||||||
if ($this->curTpl['Flags'] & 0x4000) // Unavailable (todo (med): get disables)
|
if ($this->curTpl['Flags'] & 0x4000) // Unavailable (todo (med): get disables)
|
||||||
{
|
{
|
||||||
$data[$this->id]['historical'] = true; // post 5.0
|
$data[$this->id]['historical'] = true; // post 5.0
|
||||||
@@ -179,7 +180,23 @@ class QuestList extends BaseType
|
|||||||
if ($this->curTpl['Flags'] & 0x80000) // Auto Accept
|
if ($this->curTpl['Flags'] & 0x80000) // Auto Accept
|
||||||
$data[$this->id]['wflags'] |= 0x20;
|
$data[$this->id]['wflags'] |= 0x20;
|
||||||
|
|
||||||
// todo reprewards .. accesses QuestFactionReward.dbc
|
$data[$this->id]['reprewards'] = [];
|
||||||
|
for ($i = 1; $i < 6; $i++)
|
||||||
|
{
|
||||||
|
$foo = $this->curTpl['RewardFactionId'.$i];
|
||||||
|
$bar = $this->curTpl['RewardFactionValueIdOverride'.$i] / 100;
|
||||||
|
|
||||||
|
if (!$bar && ($_ = $this->curTpl['RewardFactionValueId'.$i]))
|
||||||
|
$bar = Util::$questFactionReward[abs($_)] * ($_ < 0 ? -1 : 1);
|
||||||
|
|
||||||
|
if ($foo && $bar)
|
||||||
|
{
|
||||||
|
$data[$this->id]['reprewards'][] = [$foo, $bar];
|
||||||
|
|
||||||
|
if ($extraFactionId == $foo)
|
||||||
|
$data[$this->id]['reputation'] = $bar;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $data;
|
return $data;
|
||||||
|
|||||||
@@ -53,7 +53,6 @@ class SkillList extends BaseType
|
|||||||
|
|
||||||
foreach ($this->iterate() as $__)
|
foreach ($this->iterate() as $__)
|
||||||
{
|
{
|
||||||
|
|
||||||
$data[$this->id] = array(
|
$data[$this->id] = array(
|
||||||
'category' => $this->curTpl['typeCat'],
|
'category' => $this->curTpl['typeCat'],
|
||||||
'categorybak' => $this->curTpl['categoryId'],
|
'categorybak' => $this->curTpl['categoryId'],
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ class Lang
|
|||||||
public static $class;
|
public static $class;
|
||||||
public static $currency;
|
public static $currency;
|
||||||
public static $event;
|
public static $event;
|
||||||
|
public static $faction;
|
||||||
public static $item;
|
public static $item;
|
||||||
public static $itemset;
|
public static $itemset;
|
||||||
public static $maps;
|
public static $maps;
|
||||||
@@ -344,7 +345,7 @@ class SmartyAoWoW extends Smarty
|
|||||||
|
|
||||||
if ($article)
|
if ($article)
|
||||||
{
|
{
|
||||||
$tv['article'] = ['text' => $article['article']];
|
$tv['article'] = ['text' => Util::jsEscape($article['article'])];
|
||||||
if (empty($tv['infobox']) && !empty($article['quickInfo']))
|
if (empty($tv['infobox']) && !empty($article['quickInfo']))
|
||||||
$tv['infobox'] = $article['quickInfo'];
|
$tv['infobox'] = $article['quickInfo'];
|
||||||
|
|
||||||
@@ -493,7 +494,7 @@ class SmartyAoWoW extends Smarty
|
|||||||
case TYPE_NPC: (new CreatureList(array(['ct.id', $ids], 0)))->addGlobalsToJscript($this, GLOBALINFO_SELF); break;
|
case TYPE_NPC: (new CreatureList(array(['ct.id', $ids], 0)))->addGlobalsToJscript($this, GLOBALINFO_SELF); break;
|
||||||
case TYPE_OBJECT: (new GameobjectList(array(['gt.entry', $ids], 0)))->addGlobalsToJscript($this, GLOBALINFO_SELF); break;
|
case TYPE_OBJECT: (new GameobjectList(array(['gt.entry', $ids], 0)))->addGlobalsToJscript($this, GLOBALINFO_SELF); break;
|
||||||
case TYPE_ITEM: (new ItemList(array(['i.id', $ids], 0)))->addGlobalsToJscript($this, GLOBALINFO_SELF); break;
|
case TYPE_ITEM: (new ItemList(array(['i.id', $ids], 0)))->addGlobalsToJscript($this, GLOBALINFO_SELF); break;
|
||||||
case TYPE_QUEST: (new QuestList(array(['qt.entry', $ids], 0)))->addGlobalsToJscript($this, GLOBALINFO_SELF); break;
|
case TYPE_QUEST: (new QuestList(array(['qt.id', $ids], 0)))->addGlobalsToJscript($this, GLOBALINFO_SELF); break;
|
||||||
case TYPE_SPELL: (new SpellList(array(['s.id', $ids], 0)))->addGlobalsToJscript($this, GLOBALINFO_SELF); break;
|
case TYPE_SPELL: (new SpellList(array(['s.id', $ids], 0)))->addGlobalsToJscript($this, GLOBALINFO_SELF); break;
|
||||||
case TYPE_ZONE: (new ZoneList(array(['z.id', $ids], 0)))->addGlobalsToJscript($this, GLOBALINFO_SELF); break;
|
case TYPE_ZONE: (new ZoneList(array(['z.id', $ids], 0)))->addGlobalsToJscript($this, GLOBALINFO_SELF); break;
|
||||||
case TYPE_FACTION: (new FactionList(array(['id', $ids], 0)))->addGlobalsToJscript($this, GLOBALINFO_SELF); break;
|
case TYPE_FACTION: (new FactionList(array(['id', $ids], 0)))->addGlobalsToJscript($this, GLOBALINFO_SELF); break;
|
||||||
@@ -638,6 +639,11 @@ class Util
|
|||||||
10 => [ 65, 66, 67, 210, 394, 495, 3537, 3711, 4024, 4197, 4395]
|
10 => [ 65, 66, 67, 210, 394, 495, 3537, 3711, 4024, 4197, 4395]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
public static $questFactionReward = array( // from QuestFactionReward.dbc
|
||||||
|
0, 10, 25, 75, 150, 250, 350, 500, 1000, 5
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
/* why:
|
/* why:
|
||||||
Because petSkills (and ranged weapon skills) are the only ones with more than two skillLines attached. Because Left Joining ?_spell with ?_skillLineAbility causes more trouble than it has uses.
|
Because petSkills (and ranged weapon skills) are the only ones with more than two skillLines attached. Because Left Joining ?_spell with ?_skillLineAbility causes more trouble than it has uses.
|
||||||
Because this is more or less the only reaonable way to fit all that information into one database field, so..
|
Because this is more or less the only reaonable way to fit all that information into one database field, so..
|
||||||
@@ -750,8 +756,7 @@ class Util
|
|||||||
null, 4, 10, 9, 8, 6, 15, 11, 3, 5, null, 7
|
null, 4, 10, 9, 8, 6, 15, 11, 3, 5, null, 7
|
||||||
);
|
);
|
||||||
|
|
||||||
// from DurabilityQuality.dbc
|
public static $itemDurabilityQualityMod = array( // from DurabilityQuality.dbc
|
||||||
public static $itemDurabilityQualityMod = array(
|
|
||||||
null, 1.0, 0.6, 1.0, 0.8, 1.0, 1.0, 1.2, 1.25, 1.44, 2.5, 1.728, 3.0, 0.0, 0.0, 1.2, 1.25
|
null, 1.0, 0.6, 1.0, 0.8, 1.0, 1.0, 1.2, 1.25, 1.44, 2.5, 1.728, 3.0, 0.0, 0.0, 1.2, 1.25
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -330,6 +330,12 @@ $lang = array(
|
|||||||
'exotic' => "Exotisch",
|
'exotic' => "Exotisch",
|
||||||
'cat' => ["Wildheit", "Hartnäckigkeit", "Gerissenheit"]
|
'cat' => ["Wildheit", "Hartnäckigkeit", "Gerissenheit"]
|
||||||
),
|
),
|
||||||
|
'faction' => array(
|
||||||
|
'spillover' => "Reputationsüberlauf",
|
||||||
|
'spilloverDesc' => "Für diese Fraktion erhaltener Ruf wird zusätzlich mit den unten aufgeführten Fraktionen anteilig verrechnet.",
|
||||||
|
'maxStanding' => "Max. Ruf",
|
||||||
|
'quartermaster' => "Rüstmeister"
|
||||||
|
),
|
||||||
'itemset' => array(
|
'itemset' => array(
|
||||||
'_desc' => "<b>%s</b> ist das <b>%s</b>. Es enthält %s Teile.",
|
'_desc' => "<b>%s</b> ist das <b>%s</b>. Es enthält %s Teile.",
|
||||||
'_descTagless' => "<b>%s</b> ist ein Ausrüstungsset, das %s Teile enthält.",
|
'_descTagless' => "<b>%s</b> ist ein Ausrüstungsset, das %s Teile enthält.",
|
||||||
|
|||||||
@@ -317,6 +317,12 @@ $lang = array(
|
|||||||
'exotic' => "Exotic",
|
'exotic' => "Exotic",
|
||||||
'cat' => ["Ferocity", "Tenacity", "Cunning"]
|
'cat' => ["Ferocity", "Tenacity", "Cunning"]
|
||||||
),
|
),
|
||||||
|
'faction' => array(
|
||||||
|
'spillover' => "Reputation Spillover",
|
||||||
|
'spilloverDesc' => "Gaining Reputation with this faction also yields a proportional gain with the factions listed below.",
|
||||||
|
'maxStanding' => "Max. Standing",
|
||||||
|
'quartermaster' => "Quartermaster"
|
||||||
|
),
|
||||||
'itemset' => array(
|
'itemset' => array(
|
||||||
'_desc' => "<b>%s</b> is the <b>%s</b>. It contains %s pieces.",
|
'_desc' => "<b>%s</b> is the <b>%s</b>. It contains %s pieces.",
|
||||||
'_descTagless' => "<b>%s</b> is an item set that contains %s pieces.",
|
'_descTagless' => "<b>%s</b> is an item set that contains %s pieces.",
|
||||||
|
|||||||
@@ -288,6 +288,12 @@ $lang = array(
|
|||||||
'exotic' => "Exótica",
|
'exotic' => "Exótica",
|
||||||
'cat' => ["Ferocidad", "Tenacidad", "Astucia"]
|
'cat' => ["Ferocidad", "Tenacidad", "Astucia"]
|
||||||
),
|
),
|
||||||
|
'faction' => array(
|
||||||
|
'spillover' => "[Reputation Spillover]",
|
||||||
|
'spilloverDesc' => "[Gaining Reputation with this faction also yields a proportional gain with the factions listed below.]",
|
||||||
|
'maxStanding' => "Posición máxima",
|
||||||
|
'quartermaster' => "Intendente"
|
||||||
|
),
|
||||||
'itemset' => array(
|
'itemset' => array(
|
||||||
'_desc' => "<b>%s</b> es el <b>%s</b>. Contiene %s piezas.",
|
'_desc' => "<b>%s</b> es el <b>%s</b>. Contiene %s piezas.",
|
||||||
'_descTagless' => "<b>%s</b> es un conjunto de objetos que tiene %s piezas.",
|
'_descTagless' => "<b>%s</b> es un conjunto de objetos que tiene %s piezas.",
|
||||||
|
|||||||
@@ -288,6 +288,12 @@ $lang = array(
|
|||||||
'exotic' => "Exotique",
|
'exotic' => "Exotique",
|
||||||
'cat' => ["Férocité", "Tenacité", "Ruse"]
|
'cat' => ["Férocité", "Tenacité", "Ruse"]
|
||||||
),
|
),
|
||||||
|
'faction' => array(
|
||||||
|
'spillover' => "[Reputation Spillover]",
|
||||||
|
'spilloverDesc' => "[Gaining Reputation with this faction also yields a proportional gain with the factions listed below.]",
|
||||||
|
'maxStanding' => "Niveau maximum",
|
||||||
|
'quartermaster' => "Intendant"
|
||||||
|
),
|
||||||
'itemset' => array(
|
'itemset' => array(
|
||||||
'_desc' => "<b>%s</b> est le <b>%s</b>. Il contient %s pièces.",
|
'_desc' => "<b>%s</b> est le <b>%s</b>. Il contient %s pièces.",
|
||||||
'_descTagless' => "<b>%s</b> est un ensemble d'objet qui contient %s pièces.",
|
'_descTagless' => "<b>%s</b> est un ensemble d'objet qui contient %s pièces.",
|
||||||
|
|||||||
@@ -288,6 +288,12 @@ $lang = array(
|
|||||||
'exotic' => "Экзотический",
|
'exotic' => "Экзотический",
|
||||||
'cat' => ["Свирепость", "Упорство", "Хитрость"]
|
'cat' => ["Свирепость", "Упорство", "Хитрость"]
|
||||||
),
|
),
|
||||||
|
'faction' => array(
|
||||||
|
'spillover' => "[Reputation Spillover]",
|
||||||
|
'spilloverDesc' => "[Gaining Reputation with this faction also yields a proportional gain with the factions listed below.]",
|
||||||
|
'maxStanding' => "Макс Уровень",
|
||||||
|
'quartermaster' => "Интендант"
|
||||||
|
),
|
||||||
'itemset' => array(
|
'itemset' => array(
|
||||||
'_desc' => "<b>%s</b> — <b>%s</b>. Он состоит из %s предметов.",
|
'_desc' => "<b>%s</b> — <b>%s</b>. Он состоит из %s предметов.",
|
||||||
'_descTagless' => "<b>%s</b> — набор из %s предметов.",
|
'_descTagless' => "<b>%s</b> — набор из %s предметов.",
|
||||||
|
|||||||
@@ -88,13 +88,13 @@ if (!$smarty->loadCache($cacheKeyPage, $pageData))
|
|||||||
switch ($acv->getField('faction'))
|
switch ($acv->getField('faction'))
|
||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
$infobox[] = Lang::$main['side'].': [span class=alliance-icon]'.Lang::$game['si'][SIDE_ALLIANCE].'[/span]';
|
$infobox[] = Lang::$main['side'].Lang::$colon.'[span class=alliance-icon]'.Lang::$game['si'][SIDE_ALLIANCE].'[/span]';
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
$infobox[] = Lang::$main['side'].': [span class=horde-icon]'.Lang::$game['si'][SIDE_HORDE].'[/span]';
|
$infobox[] = Lang::$main['side'].Lang::$colon.'[span class=horde-icon]'.Lang::$game['si'][SIDE_HORDE].'[/span]';
|
||||||
break;
|
break;
|
||||||
default: // case 3
|
default: // case 3
|
||||||
$infobox[] = Lang::$main['side'].': '.Lang::$game['si'][SIDE_BOTH];
|
$infobox[] = Lang::$main['side'].Lang::$colon.Lang::$game['si'][SIDE_BOTH];
|
||||||
}
|
}
|
||||||
|
|
||||||
// todo (low): crosslink with charactersDB to check if realmFirsts are still available
|
// todo (low): crosslink with charactersDB to check if realmFirsts are still available
|
||||||
|
|||||||
236
pages/faction.php
Normal file
236
pages/faction.php
Normal file
@@ -0,0 +1,236 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
if (!defined('AOWOW_REVISION'))
|
||||||
|
die('illegal access');
|
||||||
|
|
||||||
|
|
||||||
|
require 'includes/community.class.php';
|
||||||
|
|
||||||
|
$_id = intVal($pageParam);
|
||||||
|
|
||||||
|
$cacheKeyPage = implode('_', [CACHETYPE_PAGE, TYPE_FACTION, $_id, -1, User::$localeId]);
|
||||||
|
|
||||||
|
if (!$smarty->loadCache($cacheKeyPage, $pageData))
|
||||||
|
{
|
||||||
|
$faction = new FactionList(array(['id', $_id]));
|
||||||
|
if ($faction->error)
|
||||||
|
$smarty->notFound(Lang::$game['faction']);
|
||||||
|
|
||||||
|
/***********/
|
||||||
|
/* Infobox */
|
||||||
|
/***********/
|
||||||
|
|
||||||
|
$infobox = [];
|
||||||
|
|
||||||
|
// Quartermaster if any
|
||||||
|
if ($ids = $faction->getField('qmNpcIds'))
|
||||||
|
{
|
||||||
|
Util::$pageTemplate->extendGlobalIds(TYPE_NPC, $ids);
|
||||||
|
|
||||||
|
$qmStr = Lang::$faction['quartermaster'].Lang::$colon;
|
||||||
|
|
||||||
|
if (count($ids) == 1)
|
||||||
|
$qmStr .= '[npc='.$ids[0].']';
|
||||||
|
else if (count($ids) > 1)
|
||||||
|
{
|
||||||
|
$qmStr .= '[ul]';
|
||||||
|
foreach ($ids as $id)
|
||||||
|
$qmStr .= '[li][npc='.$id.'][/li]';
|
||||||
|
|
||||||
|
$qmStr .= '[/ul]';
|
||||||
|
}
|
||||||
|
|
||||||
|
$infobox[] = $qmStr;
|
||||||
|
}
|
||||||
|
|
||||||
|
// side if any
|
||||||
|
if ($_ = $faction->getField('side'))
|
||||||
|
$infobox[] = Lang::$main['side'].Lang::$colon.'[span class='.($_ == 1 ? 'alliance' : 'horde').'-icon]'.Lang::$game['si'][$_].'[/span]';
|
||||||
|
|
||||||
|
/****************/
|
||||||
|
/* Main Content */
|
||||||
|
/****************/
|
||||||
|
|
||||||
|
$pageData = array(
|
||||||
|
'title' => $faction->getField('name', true),
|
||||||
|
'path' => [0, 7],
|
||||||
|
'relTabs' => [],
|
||||||
|
'spillover' => null,
|
||||||
|
'infobox' => $infobox ? '[ul][li]'.implode('[/li][li]', $infobox).'[/li][/ul]' : null,
|
||||||
|
'buttons' => array(
|
||||||
|
BUTTON_WOWHEAD => true,
|
||||||
|
BUTTON_LINKS => true
|
||||||
|
),
|
||||||
|
'page' => array(
|
||||||
|
'name' => $faction->getField('name', true),
|
||||||
|
'id' => $_id
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
if ($_ = $faction->getField('cat2'))
|
||||||
|
$pageData['path'][] = $_;
|
||||||
|
|
||||||
|
if ($_ = $faction->getField('cat'))
|
||||||
|
$pageData['path'][] = $_;
|
||||||
|
|
||||||
|
// Spillover Effects
|
||||||
|
$conditions = array(
|
||||||
|
['id', $_id, '!'], // not self
|
||||||
|
['reputationIndex', -1, '!'] // only gainable
|
||||||
|
);
|
||||||
|
|
||||||
|
if ($p = $faction->getField('parentFactionId')) // linked via parent
|
||||||
|
$conditions[] = ['OR', ['id', $p], ['parentFactionId', $p]];
|
||||||
|
else
|
||||||
|
$conditions[] = ['parentFactionId', $_id]; // self as parent
|
||||||
|
|
||||||
|
$spillover = new FactionList($conditions);
|
||||||
|
$spillover->addGlobalsToJscript(Util::$pageTemplate);
|
||||||
|
$buff = [];
|
||||||
|
|
||||||
|
foreach ($spillover->iterate() as $spillId => $__)
|
||||||
|
if ($val = ($spillover->getField('spilloverRateIn') * $faction->getField('spilloverRateOut') * 100))
|
||||||
|
$buff[] = '[tr][td][faction='.$spillId.'][/td][td][span class=q'.($val > 0 ? '2]+' : '10]').$val.'%[/span][/td][td]'.Lang::$game['rep'][$spillover->getField('spilloverMaxRank')].'[/td][/tr]';
|
||||||
|
|
||||||
|
if ($buff)
|
||||||
|
$pageData['spillover'] = '[h3 class=clear]'.Lang::$faction['spillover'].'[/h3][div margin=15px]'.Lang::$faction['spilloverDesc'].'[/div][table class=grid width=400px][tr][td width=150px][b]'.Util::ucFirst(Lang::$game['faction']).'[/b][/td][td width=100px][b]'.Lang::$spell['_value'].'[/b][/td][td width=150px][b]'.Lang::$faction['maxStanding'].'[/b][/td][/tr]'.implode('', $buff).'[/table]';
|
||||||
|
|
||||||
|
/**************/
|
||||||
|
/* Extra Tabs */
|
||||||
|
/**************/
|
||||||
|
|
||||||
|
// tab: items
|
||||||
|
$items = new ItemList(array(['requiredFaction', $_id]));
|
||||||
|
if (!$items->error)
|
||||||
|
{
|
||||||
|
$items->addGlobalsToJscript($smarty, GLOBALINFO_SELF);
|
||||||
|
|
||||||
|
$pageData['relTabs'][] = array(
|
||||||
|
'file' => 'item',
|
||||||
|
'data' => $items->getListviewData(),
|
||||||
|
'showRep' => true,
|
||||||
|
'params' => array(
|
||||||
|
'tabs' => '$tabsRelated',
|
||||||
|
'extraCols' => '$_',
|
||||||
|
'sort' => "$['standing', 'name']",
|
||||||
|
'note' => sprintf(Util::$filterResultString, '?items&filter=cr=17;crs='.$_id.';crv=0')
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// tab: creatures with onKill reputation
|
||||||
|
$cIds = DB::Aowow()->selectCol('SELECT DISTINCT creature_id FROM creature_onkill_reputation cor, ?_factions f WHERE
|
||||||
|
(RewOnKillRepValue1 > 0 AND (RewOnKillRepFaction1 = ?d OR (cor.RewOnKillRepFaction1 = f.id AND f.parentFactionId = ?d AND IsTeamAward1 <> 0))) OR
|
||||||
|
(RewOnKillRepValue2 > 0 AND (RewOnKillRepFaction2 = ?d OR (cor.RewOnKillRepFaction2 = f.id AND f.parentFactionId = ?d AND IsTeamAward2 <> 0)))',
|
||||||
|
$_id, $faction->getField('parentFactionId'),
|
||||||
|
$_id, $faction->getField('parentFactionId')
|
||||||
|
);
|
||||||
|
$killCreatures = new CreatureList(array(['id', $cIds]));
|
||||||
|
if (!$killCreatures->error)
|
||||||
|
{
|
||||||
|
$killCreatures->addGlobalsToJscript($smarty);
|
||||||
|
|
||||||
|
$pageData['relTabs'][] = array(
|
||||||
|
'file' => 'npc',
|
||||||
|
'data' => $killCreatures->getListviewData(),
|
||||||
|
'showRep' => true,
|
||||||
|
'params' => array(
|
||||||
|
'tabs' => '$tabsRelated',
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// tab: members
|
||||||
|
$conditions = array(
|
||||||
|
['factionA', $faction->getField('templateIds')],
|
||||||
|
['factionH', $faction->getField('templateIds')],
|
||||||
|
'OR'
|
||||||
|
);
|
||||||
|
|
||||||
|
$killCreatures = new CreatureList($conditions);
|
||||||
|
if (!$killCreatures->error)
|
||||||
|
{
|
||||||
|
$killCreatures->addGlobalsToJscript($smarty);
|
||||||
|
|
||||||
|
$pageData['relTabs'][] = array(
|
||||||
|
'file' => 'npc',
|
||||||
|
'data' => $killCreatures->getListviewData(),
|
||||||
|
'showRep' => true,
|
||||||
|
'params' => array(
|
||||||
|
'id' => 'member',
|
||||||
|
'name' => '$LANG.tab_member',
|
||||||
|
'tabs' => '$tabsRelated',
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// tab: quests
|
||||||
|
$conditions = array(
|
||||||
|
['AND', ['RewardFactionId1', $_id], ['OR', ['RewardFactionValueId1', 0, '>'], ['RewardFactionValueIdOverride1', 0, '>']]],
|
||||||
|
['AND', ['RewardFactionId2', $_id], ['OR', ['RewardFactionValueId2', 0, '>'], ['RewardFactionValueIdOverride2', 0, '>']]],
|
||||||
|
['AND', ['RewardFactionId3', $_id], ['OR', ['RewardFactionValueId3', 0, '>'], ['RewardFactionValueIdOverride3', 0, '>']]],
|
||||||
|
['AND', ['RewardFactionId4', $_id], ['OR', ['RewardFactionValueId4', 0, '>'], ['RewardFactionValueIdOverride4', 0, '>']]],
|
||||||
|
['AND', ['RewardFactionId5', $_id], ['OR', ['RewardFactionValueId5', 0, '>'], ['RewardFactionValueIdOverride5', 0, '>']]],
|
||||||
|
'OR'
|
||||||
|
);
|
||||||
|
$quests = new QuestList($conditions);
|
||||||
|
if (!$quests->error)
|
||||||
|
{
|
||||||
|
$quests->addGlobalsToJscript($smarty, GLOBALINFO_ANY);
|
||||||
|
|
||||||
|
$pageData['relTabs'][] = array(
|
||||||
|
'file' => 'quest',
|
||||||
|
'data' => $quests->getListviewData($_id),
|
||||||
|
'showRep' => true,
|
||||||
|
'params' => array(
|
||||||
|
'tabs' => '$tabsRelated',
|
||||||
|
'extraCols' => '$_',
|
||||||
|
'note' => sprintf(Util::$filterResultString, '?quests?filter=cr=1;crs='.$_id.';crv=0')
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// tab: achievements
|
||||||
|
$conditions = array(
|
||||||
|
['ac.type', ACHIEVEMENT_CRITERIA_TYPE_GAIN_REPUTATION],
|
||||||
|
['ac.value1', $_id]
|
||||||
|
);
|
||||||
|
$acvs = new AchievementList($conditions);
|
||||||
|
if (!$acvs->error)
|
||||||
|
{
|
||||||
|
$acvs->addGlobalsToJscript($smarty, GLOBALINFO_ANY);
|
||||||
|
|
||||||
|
$pageData['relTabs'][] = array(
|
||||||
|
'file' => 'achievement',
|
||||||
|
'data' => $acvs->getListviewData(),
|
||||||
|
'params' => array(
|
||||||
|
'id' => 'criteria-of',
|
||||||
|
'name' => '$LANG.tab_criteriaof',
|
||||||
|
'tabs' => '$tabsRelated',
|
||||||
|
'visibleCols' => "$['category']"
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$smarty->saveCache($cacheKeyPage, $pageData);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// menuId 7: Faction g_initPath()
|
||||||
|
// tabId 0: Database g_initHeader()
|
||||||
|
$smarty->updatePageVars(array(
|
||||||
|
'title' => $pageData['title']." - ".Util::ucfirst(Lang::$game['skill']),
|
||||||
|
'path' => json_encode($pageData['path'], JSON_NUMERIC_CHECK),
|
||||||
|
'tab' => 0,
|
||||||
|
'type' => TYPE_FACTION,
|
||||||
|
'typeId' => $_id
|
||||||
|
));
|
||||||
|
$smarty->assign('redButtons', $pageData['buttons']);
|
||||||
|
$smarty->assign('community', CommunityContent::getAll(TYPE_FACTION, $_id)); // comments, screenshots, videos
|
||||||
|
$smarty->assign('lang', array_merge(Lang::$main, [Lang::$colon]));
|
||||||
|
$smarty->assign('lvData', $pageData);
|
||||||
|
|
||||||
|
// load the page
|
||||||
|
$smarty->display('faction.tpl');
|
||||||
|
|
||||||
|
?>
|
||||||
80
pages/factions.php
Normal file
80
pages/factions.php
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
if (!defined('AOWOW_REVISION'))
|
||||||
|
die('illegal access');
|
||||||
|
|
||||||
|
|
||||||
|
$cats = Util::extractURLParams($pageParam);
|
||||||
|
$path = [0, 7];
|
||||||
|
$title = [Util::ucFirst(Lang::$game['factions'])];
|
||||||
|
$cacheKey = implode('_', [CACHETYPE_PAGE, TYPE_FACTION, -1, implode('.', $cats), User::$localeId]);
|
||||||
|
$validCats = array(
|
||||||
|
1118 => [469, 891, 67, 892, 169],
|
||||||
|
980 => [936],
|
||||||
|
1097 => [1037, 1052, 1117],
|
||||||
|
0 => true
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!Util::isValidPage($validCats, $cats))
|
||||||
|
$smarty->error();
|
||||||
|
|
||||||
|
if (!$smarty->loadCache($cacheKey, $pageData))
|
||||||
|
{
|
||||||
|
$conditions = [];
|
||||||
|
|
||||||
|
if (User::isInGroup(U_GROUP_STAFF))
|
||||||
|
$conditions[] = ['reputationIndex', -1, '!']; // unlisted factions
|
||||||
|
|
||||||
|
if (isset($cats[0]) && empty($cats[1]))
|
||||||
|
{
|
||||||
|
if (!$cats[0])
|
||||||
|
$conditions[] = ['f1.parentFactionId', [1118, 980, 1097, 469, 891, 67, 892, 169, 1037, 1052, 1117, 936], '!'];
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$subs = DB::Aowow()->selectCol('SELECT id FROM ?_factions WHERE parentFactionId = ?d', $cats[0]);
|
||||||
|
$conditions[] = ['OR', ['f1.parentFactionId', $subs], ['f1.id', $subs]];
|
||||||
|
}
|
||||||
|
|
||||||
|
$path[] = $cats[0];
|
||||||
|
// array_unshift($title, Lang::$factions['cat'][$cats[0]]);
|
||||||
|
}
|
||||||
|
else if (!empty($cats[1]))
|
||||||
|
{
|
||||||
|
$conditions[] = ['f1.parentFactionId', $cats[1]];
|
||||||
|
$path[] = $cats[0];
|
||||||
|
$path[] = $cats[1];
|
||||||
|
// array_unshift($title, Lang::$factions['cat'][$cats[1]]);
|
||||||
|
}
|
||||||
|
|
||||||
|
$factions = new FactionList($conditions);
|
||||||
|
|
||||||
|
$pageData = array(
|
||||||
|
'title' => $title,
|
||||||
|
'path' => $path,
|
||||||
|
'listviews' => array(
|
||||||
|
array(
|
||||||
|
'file' => 'faction',
|
||||||
|
'data' => $factions->getListviewData(),
|
||||||
|
'params' => []
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$smarty->saveCache($cacheKey, $pageData);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// menuId 7: Faction g_initPath()
|
||||||
|
// tabId 0: Database g_initHeader()
|
||||||
|
$smarty->updatePageVars(array(
|
||||||
|
'title' => implode(' - ', $title),
|
||||||
|
'path' => json_encode($path, JSON_NUMERIC_CHECK),
|
||||||
|
'tab' => 0
|
||||||
|
));
|
||||||
|
$smarty->assign('lang', Lang::$main);
|
||||||
|
$smarty->assign('lvData', $pageData);
|
||||||
|
|
||||||
|
// load the page
|
||||||
|
$smarty->display('generic-no-filter.tpl');
|
||||||
|
|
||||||
|
?>
|
||||||
@@ -71,7 +71,8 @@ if (!$smarty->loadCache($cacheKeyPage, $pageData))
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 2 recipe Items [items] (Books)
|
// 2 recipe Items [items] (Books)
|
||||||
$conditions = array(
|
$skill2Filter = [null, 171, 164, 185, 333, 202, 129, 755, 165, 186, 197, null, null, 356, 182, 773];
|
||||||
|
$conditions = array(
|
||||||
['requiredSkill', $_id],
|
['requiredSkill', $_id],
|
||||||
['class', ITEM_CLASS_RECIPE],
|
['class', ITEM_CLASS_RECIPE],
|
||||||
0
|
0
|
||||||
@@ -89,7 +90,7 @@ if (!$smarty->loadCache($cacheKeyPage, $pageData))
|
|||||||
'id' => 'recipe-items',
|
'id' => 'recipe-items',
|
||||||
'name' => '$LANG.tab_recipeitems',
|
'name' => '$LANG.tab_recipeitems',
|
||||||
'tabs' => '$tabsRelated',
|
'tabs' => '$tabsRelated',
|
||||||
// 'note' => sprintf(Util::$filterResultString, "?items=9.subClass") // todo (med): after items
|
'note' => !empty(array_flip($skill2Filter)[$_id]) ? sprintf(Util::$filterResultString, "?items=9.".array_flip($skill2Filter)[$_id]) : null
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -345,7 +346,6 @@ if (!$smarty->loadCache($cacheKeyPage, $pageData))
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$smarty->saveCache($cacheKeyPage, $pageData);
|
$smarty->saveCache($cacheKeyPage, $pageData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,6 +26,8 @@ if (!$smarty->loadCache($cacheKey, $pageData))
|
|||||||
$skills = new SkillList($conditions);
|
$skills = new SkillList($conditions);
|
||||||
|
|
||||||
$pageData = array(
|
$pageData = array(
|
||||||
|
'title' => $title,
|
||||||
|
'path' => $path,
|
||||||
'listviews' => array(
|
'listviews' => array(
|
||||||
array(
|
array(
|
||||||
'file' => 'skill',
|
'file' => 'skill',
|
||||||
|
|||||||
43
search.php
43
search.php
@@ -39,7 +39,7 @@ if (!defined('AOWOW_REVISION'))
|
|||||||
18: Listview - template: 'achievement', id: 'statistics', name: LANG.tab_statistics,
|
18: Listview - template: 'achievement', id: 'statistics', name: LANG.tab_statistics,
|
||||||
19: Listview - template: 'zone', id: 'zones', name: LANG.tab_zones,
|
19: Listview - template: 'zone', id: 'zones', name: LANG.tab_zones,
|
||||||
20: Listview - template: 'object', id: 'objects', name: LANG.tab_objects,
|
20: Listview - template: 'object', id: 'objects', name: LANG.tab_objects,
|
||||||
todo 21: Listview - template: 'faction', id: 'factions', name: LANG.tab_factions,
|
21: Listview - template: 'faction', id: 'factions', name: LANG.tab_factions,
|
||||||
22: Listview - template: 'skill', id: 'skills', name: LANG.tab_skills,
|
22: Listview - template: 'skill', id: 'skills', name: LANG.tab_skills,
|
||||||
23: Listview - template: 'pet', id: 'pets', name: LANG.tab_pets,
|
23: Listview - template: 'pet', id: 'pets', name: LANG.tab_pets,
|
||||||
24: Listview - template: 'spell', id: 'npc-abilities', name: LANG.tab_npcabilities,
|
24: Listview - template: 'spell', id: 'npc-abilities', name: LANG.tab_npcabilities,
|
||||||
@@ -379,7 +379,7 @@ if ($searchMask & 0x80)
|
|||||||
{
|
{
|
||||||
$conditions = array( // hmm, inclued classMounts..?
|
$conditions = array( // hmm, inclued classMounts..?
|
||||||
['s.typeCat', [7, -2, -3]],
|
['s.typeCat', [7, -2, -3]],
|
||||||
[['s.cuFlags', (SPELL_CU_TRIGGERED | SPELL_CU_TALENT | SPELL_CU_EXCLUDE_CATEGORY_SEARCH), '&'], 0],
|
[['s.cuFlags', (SPELL_CU_TRIGGERED | SPELL_CU_TALENT | CUSTOM_EXCLUDE_FOR_LISTVIEW), '&'], 0],
|
||||||
[['s.attributes0', 0x80, '&'], 0],
|
[['s.attributes0', 0x80, '&'], 0],
|
||||||
['s.name_loc'.User::$localeId, $query],
|
['s.name_loc'.User::$localeId, $query],
|
||||||
$maxResults
|
$maxResults
|
||||||
@@ -861,7 +861,7 @@ if ($searchMask & 0x80000)
|
|||||||
{
|
{
|
||||||
$objects->addGlobalsToJScript($smarty);
|
$objects->addGlobalsToJScript($smarty);
|
||||||
|
|
||||||
$found['zone'] = array(
|
$found['object'] = array(
|
||||||
'type' => TYPE_OBJECT,
|
'type' => TYPE_OBJECT,
|
||||||
'appendix' => ' (Object)',
|
'appendix' => ' (Object)',
|
||||||
'matches' => $objects->getMatches(),
|
'matches' => $objects->getMatches(),
|
||||||
@@ -874,14 +874,43 @@ if ($searchMask & 0x80000)
|
|||||||
|
|
||||||
if ($objects->getMatches() > $maxResults)
|
if ($objects->getMatches() > $maxResults)
|
||||||
{
|
{
|
||||||
$found['zone']['params']['note'] = sprintf(Util::$tryNarrowingString, 'LANG.lvnote_objectsfound', $objects->getMatches(), $maxResults);
|
$found['object']['params']['note'] = sprintf(Util::$tryNarrowingString, 'LANG.lvnote_objectsfound', $objects->getMatches(), $maxResults);
|
||||||
$found['zone']['params']['_truncated'] = 1;
|
$found['object']['params']['_truncated'] = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 21 Factions
|
// 21 Factions
|
||||||
// if ($searchMask & 0x100000)
|
if ($searchMask & 0x100000)
|
||||||
|
{
|
||||||
|
$conditions = array(
|
||||||
|
['name_loc'.User::$localeId, $query],
|
||||||
|
[['cuFlags', CUSTOM_EXCLUDE_FOR_LISTVIEW, '&'], 0],
|
||||||
|
$maxResults
|
||||||
|
);
|
||||||
|
|
||||||
|
$factions = new FactionList($conditions);
|
||||||
|
|
||||||
|
if ($data = $factions->getListviewData())
|
||||||
|
{
|
||||||
|
$found['faction'] = array(
|
||||||
|
'type' => TYPE_FACTION,
|
||||||
|
'appendix' => ' (Faction)',
|
||||||
|
'matches' => $factions->getMatches(),
|
||||||
|
'file' => 'faction',
|
||||||
|
'data' => $data,
|
||||||
|
'params' => [
|
||||||
|
'tabs' => '$myTabs'
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
if ($factions->getMatches() > $maxResults)
|
||||||
|
{
|
||||||
|
$found['faction']['params']['note'] = sprintf(Util::$tryNarrowingString, 'LANG.lvnote_factionsfound', $factions->getMatches(), $maxResults);
|
||||||
|
$found['faction']['params']['_truncated'] = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 22 Skills
|
// 22 Skills
|
||||||
if ($searchMask & 0x200000)
|
if ($searchMask & 0x200000)
|
||||||
@@ -985,7 +1014,7 @@ if ($searchMask & 0x1000000)
|
|||||||
{
|
{
|
||||||
$conditions = array(
|
$conditions = array(
|
||||||
['s.name_loc'.User::$localeId, $query],
|
['s.name_loc'.User::$localeId, $query],
|
||||||
['OR', ['s.typeCat', [0, -9]], ['s.cuFlags', SPELL_CU_EXCLUDE_CATEGORY_SEARCH, '&']],
|
['OR', ['s.typeCat', [0, -9]], ['s.cuFlags', CUSTOM_EXCLUDE_FOR_LISTVIEW, '&']],
|
||||||
$maxResults
|
$maxResults
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
28
template/bricks/listviews/faction.tpl
Normal file
28
template/bricks/listviews/faction.tpl
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
{strip}
|
||||||
|
new Listview({ldelim}
|
||||||
|
template:'faction',
|
||||||
|
{if !isset($params.id)}id:'factions',{/if}
|
||||||
|
{if !isset($params.name)}name:LANG.tab_factions,{/if}
|
||||||
|
{if !isset($params.parent)}parent:'lv-generic',{/if}
|
||||||
|
{foreach from=$params key=k item=v}
|
||||||
|
{if $v[0] == '$'}
|
||||||
|
{$k}:{$v|substr:1},
|
||||||
|
{else if $v}
|
||||||
|
{$k}:'{$v}',
|
||||||
|
{/if}
|
||||||
|
{/foreach}
|
||||||
|
data:[
|
||||||
|
{foreach name=i from=$data item=curr}
|
||||||
|
{ldelim}
|
||||||
|
{foreach from=$curr key='name' item=val}
|
||||||
|
{if $name != 'id'}
|
||||||
|
{$name}:{$val|@json_encode:$smarty.const.JSON_NUMERIC_CHECK},
|
||||||
|
{/if}
|
||||||
|
{/foreach}
|
||||||
|
id:{$curr.id}
|
||||||
|
{rdelim}
|
||||||
|
{if $smarty.foreach.i.last}{else},{/if}
|
||||||
|
{/foreach}
|
||||||
|
]
|
||||||
|
{rdelim});
|
||||||
|
{/strip}
|
||||||
@@ -1,3 +1,24 @@
|
|||||||
|
{if !empty($tab.showRep)}
|
||||||
|
var _ = [
|
||||||
|
{ldelim}
|
||||||
|
id: 'standing',
|
||||||
|
after: 'reqlevel',
|
||||||
|
name: LANG.standing,
|
||||||
|
width: '12%',
|
||||||
|
value: 'standing',
|
||||||
|
type: 'text',
|
||||||
|
getValue: function(item)
|
||||||
|
{ldelim}
|
||||||
|
return g_reputation_standings[item.standing];
|
||||||
|
{rdelim},
|
||||||
|
compute: function(item, td)
|
||||||
|
{ldelim}
|
||||||
|
return g_reputation_standings[item.standing];
|
||||||
|
{rdelim}
|
||||||
|
{rdelim}
|
||||||
|
];
|
||||||
|
{/if}
|
||||||
|
|
||||||
{strip}
|
{strip}
|
||||||
new Listview({ldelim}
|
new Listview({ldelim}
|
||||||
template:'item',
|
template:'item',
|
||||||
|
|||||||
@@ -1,3 +1,16 @@
|
|||||||
|
{if !empty($tab.showRep)}
|
||||||
|
var _ = [
|
||||||
|
{ldelim}
|
||||||
|
id: 'reputation',
|
||||||
|
after: 'rewards',
|
||||||
|
name: LANG.rep,
|
||||||
|
tooltip: LANG.tooltip_repgain,
|
||||||
|
width: '8%',
|
||||||
|
value: 'reputation'
|
||||||
|
{rdelim}
|
||||||
|
];
|
||||||
|
{/if}
|
||||||
|
|
||||||
{strip}
|
{strip}
|
||||||
new Listview({ldelim}
|
new Listview({ldelim}
|
||||||
template:'quest',
|
template:'quest',
|
||||||
@@ -14,62 +27,12 @@
|
|||||||
data:[
|
data:[
|
||||||
{foreach name=i from=$data item=curr}
|
{foreach name=i from=$data item=curr}
|
||||||
{ldelim}
|
{ldelim}
|
||||||
id:'{$curr.id}',
|
{foreach from=$curr key='name' item=val}
|
||||||
name:'{$curr.name|escape:"quotes"}',
|
{if $name != 'id'}
|
||||||
level:'{$curr.level}',
|
{$name}:{$val|@json_encode:$smarty.const.JSON_NUMERIC_CHECK},
|
||||||
{if isset($curr.reqlevel)}
|
{/if}
|
||||||
reqlevel:{$curr.reqlevel},
|
{/foreach}
|
||||||
{/if}
|
id:{$curr.id}
|
||||||
{if isset($curr.reqclass)}
|
|
||||||
reqclass:{$curr.reqclass},
|
|
||||||
{/if}
|
|
||||||
{if isset($curr.reqrace)}
|
|
||||||
reqrace:{$curr.reqrace},
|
|
||||||
{/if}
|
|
||||||
side:'{$curr.side}'
|
|
||||||
{if isset($curr.itemrewards)}
|
|
||||||
,itemrewards:[
|
|
||||||
{section name=j loop=$curr.itemrewards}
|
|
||||||
[{$curr.itemrewards[j][0]},{$curr.itemrewards[j][1]}]
|
|
||||||
{if $smarty.section.j.last}{else},{/if}
|
|
||||||
{/section}
|
|
||||||
]
|
|
||||||
{/if}
|
|
||||||
{if isset($curr.itemchoices)}
|
|
||||||
,itemchoices:[
|
|
||||||
{section name=j loop=$curr.itemchoices}
|
|
||||||
[{$curr.itemchoices[j][0]},{$curr.itemchoices[j][1]}]
|
|
||||||
{if $smarty.section.j.last}{else},{/if}
|
|
||||||
{/section}
|
|
||||||
]
|
|
||||||
{/if}
|
|
||||||
{if $curr.xp}
|
|
||||||
,xp:{$curr.xp}
|
|
||||||
{/if}
|
|
||||||
{if isset($curr.titlereward)}
|
|
||||||
,titlereward:{$curr.titlereward}
|
|
||||||
{/if}
|
|
||||||
{if isset($curr.money)}
|
|
||||||
,money:{$curr.money}
|
|
||||||
{/if}
|
|
||||||
{if isset($curr.category)}
|
|
||||||
,category:{$curr.category}
|
|
||||||
{/if}
|
|
||||||
{if isset($curr.category2)}
|
|
||||||
,category2:{$curr.category2}
|
|
||||||
{/if}
|
|
||||||
{if isset($curr.type)}
|
|
||||||
,type:{$curr.type}
|
|
||||||
{/if}
|
|
||||||
{if isset($curr.daily)}
|
|
||||||
,daily:1
|
|
||||||
{/if}
|
|
||||||
{if isset($curr.weekly)}
|
|
||||||
,weekly:1
|
|
||||||
{/if}
|
|
||||||
{if $curr.wflags}
|
|
||||||
,wflags:{$curr.wflags} {* wflags: &1: disabled/historical; &32: AutoAccept; &64: Hostile(?) *}
|
|
||||||
{/if}
|
|
||||||
{rdelim}
|
{rdelim}
|
||||||
{if $smarty.foreach.i.last}{else},{/if}
|
{if $smarty.foreach.i.last}{else},{/if}
|
||||||
{/foreach}
|
{/foreach}
|
||||||
|
|||||||
28
template/bricks/tooltip.tpl
Normal file
28
template/bricks/tooltip.tpl
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
<div id="ic{$page.typeId}" style="float: left"></div>
|
||||||
|
<div id="tt{$page.typeId}" class="tooltip" style="float: left; padding-top: 1px"></div>
|
||||||
|
<div style="clear: left"></div>
|
||||||
|
<div id="sl{$page.typeId}" style="margin-left: 70px; margin-top: 4px;"></div>
|
||||||
|
<div id="ks{$page.typeId}" style="margin-left: 70px; margin-top: 4px;"></div>
|
||||||
|
|
||||||
|
{if !empty($jsGlobals[6][2].buff)} {* not set with items *}
|
||||||
|
<h3>{$lang._aura}</h3>
|
||||||
|
<div id="btt{$page.typeId}" class="tooltip"></div>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
<script type="text/javascript">//<![CDATA[
|
||||||
|
$WH.ge('ic{$page.typeId}').appendChild(Icon.create('{$lvData.page.icon}', 2, null, 0, {$lvData.page.stack}));
|
||||||
|
var
|
||||||
|
tt = $WH.ge('tt{$page.typeId}'),
|
||||||
|
{if !empty($jsGlobals[6][2].buff)}
|
||||||
|
btt = $WH.ge('btt{$page.typeId}'),
|
||||||
|
{/if}
|
||||||
|
sl = $WH.ge('sl{$page.typeId}'),
|
||||||
|
ks = $WH.ge('ks{$page.typeId}');
|
||||||
|
|
||||||
|
tt.innerHTML = '<table><tr><td>' + ($WH.g_enhanceTooltip.bind(tt))({$page.typeId}, true, true, sl, null, [{$page.typeId}], ks, null) + '</td><th style="background-position: top right"></th></tr><tr><th style="background-position: bottom left"></th><th style="background-position: bottom right"></th></tr></table>';
|
||||||
|
$WH.Tooltip.fixSafe(tt, 1, 1);
|
||||||
|
{if !empty($jsGlobals[6][2].buff)}
|
||||||
|
btt.innerHTML = '<table><tr><td>' + ($WH.g_enhanceTooltip.bind(btt))({$page.typeId}, true, true, sl, tt, [{$page.typeId}], ks) + '</td><th style="background-position: top right"></th></tr><tr><th style="background-position: bottom left"></th><th style="background-position: bottom right"></th></tr></table>';
|
||||||
|
$WH.Tooltip.fixSafe(btt, 1, 1);
|
||||||
|
{/if}
|
||||||
|
//]]></script>
|
||||||
51
template/faction.tpl
Normal file
51
template/faction.tpl
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
{include file='header.tpl'}
|
||||||
|
|
||||||
|
<div class="main" id="main">
|
||||||
|
<div class="main-precontents" id="main-precontents"></div>
|
||||||
|
<div class="main-contents" id="main-contents">
|
||||||
|
|
||||||
|
{if !empty($announcements)}
|
||||||
|
{foreach from=$announcements item=item}
|
||||||
|
{include file='bricks/announcement.tpl' an=$item}
|
||||||
|
{/foreach}
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
<script type="text/javascript">//<![CDATA[
|
||||||
|
{include file='bricks/community.tpl'}
|
||||||
|
var g_pageInfo = {ldelim}type: {$page.type}, typeId: {$page.typeId}, name: '{$lvData.page.name|escape:"quotes"}'{rdelim};
|
||||||
|
g_initPath({$page.path});
|
||||||
|
//]]></script>
|
||||||
|
|
||||||
|
{include file='bricks/infobox.tpl' info=$lvData.infobox}
|
||||||
|
|
||||||
|
<div class="text">
|
||||||
|
|
||||||
|
{include file='bricks/redButtons.tpl'}
|
||||||
|
|
||||||
|
<h1>{$lvData.page.name}</h1>
|
||||||
|
|
||||||
|
{include file='bricks/article.tpl'}
|
||||||
|
|
||||||
|
{if $lvData.spillover}
|
||||||
|
<div id="spillover" class="left"></div>
|
||||||
|
<script type="text/javascript">//<![CDATA[
|
||||||
|
Markup.printHtml("{$lvData.spillover}", "spillover", {strip}{ldelim}
|
||||||
|
allow: Markup.CLASS_ADMIN,
|
||||||
|
dbpage: true
|
||||||
|
{rdelim}{/strip});
|
||||||
|
//]]></script>
|
||||||
|
|
||||||
|
<div class="pad2"></div>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
<h2 class="clear">{$lang.related}</h2>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{include file='bricks/tabsRelated.tpl' tabs=$lvData.relTabs}
|
||||||
|
|
||||||
|
{include file='bricks/contribute.tpl'}
|
||||||
|
|
||||||
|
</div><!-- main-contents -->
|
||||||
|
</div><!-- main -->
|
||||||
|
|
||||||
|
{include file='footer.tpl'}
|
||||||
20
template/factions.tpl
Normal file
20
template/factions.tpl
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
{include file='header.tpl'}
|
||||||
|
|
||||||
|
<div id="main">
|
||||||
|
<div id="main-precontents"></div>
|
||||||
|
<div id="main-contents" class="main-contents">
|
||||||
|
<script type="text/javascript">
|
||||||
|
g_initPath({$page.path});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<div id="lv-factions" class="listview"></div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
{include file='bricks/factions_table.tpl' data=$factions.data params=$factions.params}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<div class="clear"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{include file='footer.tpl'}
|
||||||
@@ -507,7 +507,7 @@ var Markup = {
|
|||||||
unnamed: { req: false, valid: /^hidden$/i },
|
unnamed: { req: false, valid: /^hidden$/i },
|
||||||
'float': { req: false, valid: /^(left|right)$/i },
|
'float': { req: false, valid: /^(left|right)$/i },
|
||||||
align: { req: false, valid: /^(left|right|center)$/i },
|
align: { req: false, valid: /^(left|right|center)$/i },
|
||||||
margin: { req: false, valid: /^\d+$/ },
|
margin: { req: false, valid: /^\d+(px|em|\%)$/ },
|
||||||
width: { req: false, valid: /^[0-9]+(px|em|\%)$/ }
|
width: { req: false, valid: /^[0-9]+(px|em|\%)$/ }
|
||||||
},
|
},
|
||||||
allowedClass: MARKUP_CLASS_STAFF,
|
allowedClass: MARKUP_CLASS_STAFF,
|
||||||
@@ -1739,7 +1739,7 @@ var Markup = {
|
|||||||
if(g_quests[id] && g_quests[id][nameCol])
|
if(g_quests[id] && g_quests[id][nameCol])
|
||||||
{
|
{
|
||||||
var quest = g_quests[id];
|
var quest = g_quests[id];
|
||||||
return '<a href="' + url + '?quest=' + id + '"' + (!attr.icon ? ' class="icontiny"><img src="' + g_staticUrl + '/images/icons/tiny/' + (quest.daily ? 'quest_start_daily' : 'quest_start') + '.gif"' : '') + Markup._addGlobalAttributes(attr) + ' align="absmiddle" /> <span class="tinyicontxt">' + Markup._safeHtml(quest[nameCol]) + '</span></a>';
|
return '<a href="' + url + '?quest=' + id + '"' + (!attr.icon ? ' class="icontiny"><img src="' + g_staticUrl + '/images/icons/' + (quest.daily ? 'quest_start_daily' : 'quest_start') + '.gif"' : '') + Markup._addGlobalAttributes(attr) + ' align="absmiddle" /> <span class="tinyicontxt">' + Markup._safeHtml(quest[nameCol]) + '</span></a>';
|
||||||
}
|
}
|
||||||
return '<a href="' + url + '?quest=' + id + '"' + Markup._addGlobalAttributes(attr) + '>(' + LANG.types[5][0] + ' #' + id + ')</a>';
|
return '<a href="' + url + '?quest=' + id + '"' + Markup._addGlobalAttributes(attr) + '>(' + LANG.types[5][0] + ' #' + id + ')</a>';
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -825,132 +825,164 @@ function g_formatTimeSimple(d, txt, noPrefix) {
|
|||||||
return txt;
|
return txt;
|
||||||
}
|
}
|
||||||
|
|
||||||
function g_cleanCharacterName(e) {
|
function g_createGlow(txt, cn) {
|
||||||
var d = "";
|
var s = $WH.ce('span');
|
||||||
for (var c = 0, a = e.length; c < a; ++c) {
|
|
||||||
var b = e.charAt(c).toLowerCase();
|
for (var i = -1; i <= 1; ++i) {
|
||||||
if (b >= "a" && b <= "z") {
|
for (var j = -1; j <= 1; ++j) {
|
||||||
d += b
|
var d = $WH.ce('div');
|
||||||
} else {
|
d.style.position = 'absolute';
|
||||||
d += e.charAt(c)
|
d.style.whiteSpace = 'nowrap';
|
||||||
}
|
d.style.left = i + 'px';
|
||||||
}
|
d.style.top = j + 'px';
|
||||||
return d
|
|
||||||
}
|
if (i == 0 && j == 0) {
|
||||||
function g_createGlow(a, h) {
|
d.style.zIndex = 4;
|
||||||
var e = $WH.ce("span");
|
|
||||||
for (var c = -1; c <= 1; ++c) {
|
|
||||||
for (var b = -1; b <= 1; ++b) {
|
|
||||||
var g = $WH.ce("div");
|
|
||||||
g.style.position = "absolute";
|
|
||||||
g.style.whiteSpace = "nowrap";
|
|
||||||
g.style.left = c + "px";
|
|
||||||
g.style.top = b + "px";
|
|
||||||
if (c == 0 && b == 0) {
|
|
||||||
g.style.zIndex = 4
|
|
||||||
} else {
|
|
||||||
g.style.color = "black";
|
|
||||||
g.style.zIndex = 2
|
|
||||||
}
|
}
|
||||||
g.innerHTML = a;
|
else {
|
||||||
$WH.ae(e, g)
|
d.style.color = 'black';
|
||||||
|
d.style.zIndex = 2;
|
||||||
|
}
|
||||||
|
//$WH.ae(d, $WH.ct(txt));
|
||||||
|
d.innerHTML = txt;
|
||||||
|
$WH.ae(s, d);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
e.style.position = "relative";
|
|
||||||
e.className = "glow" + (h != null ? " " + h: "");
|
s.style.position = 'relative';
|
||||||
var f = $WH.ce("span");
|
s.className = 'glow' + (cn != null ? ' ' + cn : '');
|
||||||
f.style.visibility = "hidden";
|
|
||||||
$WH.ae(f, $WH.ct(a));
|
var ph = $WH.ce('span');
|
||||||
$WH.ae(e, f);
|
ph.style.visibility = 'hidden';
|
||||||
return e
|
$WH.ae(ph, $WH.ct(txt));
|
||||||
|
$WH.ae(s, ph);
|
||||||
|
|
||||||
|
return s;
|
||||||
}
|
}
|
||||||
function g_createProgressBar(c) {
|
|
||||||
if (c == null) {
|
function g_createProgressBar(opt) {
|
||||||
c = {}
|
if (opt == null) {
|
||||||
|
opt = {};
|
||||||
}
|
}
|
||||||
if (!c.text) {
|
|
||||||
c.text = " "
|
if (typeof opt.text == 'undefined') {
|
||||||
|
opt.text = ' ';
|
||||||
}
|
}
|
||||||
if (c.color == null) {
|
|
||||||
c.color = "rep0"
|
if (opt.color == null) {
|
||||||
|
opt.color = 'rep0';
|
||||||
|
|
||||||
}
|
}
|
||||||
if (c.width == null || c.width > 100) {
|
if (opt.width == null || opt.width > 100) {
|
||||||
c.width = 100
|
opt.width = 100;
|
||||||
}
|
}
|
||||||
var d, e;
|
|
||||||
if (c.hoverText) {
|
var el, div;
|
||||||
d = $WH.ce("a");
|
if (opt.hoverText) {
|
||||||
d.href = "javascript:;"
|
el = $WH.ce('a');
|
||||||
} else {
|
el.href = 'javascript:;';
|
||||||
d = $WH.ce("span")
|
|
||||||
}
|
}
|
||||||
d.className = "progressbar";
|
else {
|
||||||
if (c.text || c.hoverText) {
|
el = $WH.ce('span');
|
||||||
e = $WH.ce("div");
|
}
|
||||||
e.className = "progressbar-text";
|
|
||||||
if (c.text) {
|
el.className = 'progressbar';
|
||||||
var a = $WH.ce("del");
|
|
||||||
$WH.ae(a, $WH.ct(c.text));
|
if (opt.text || opt.hoverText) {
|
||||||
$WH.ae(e, a)
|
div = $WH.ce('div');
|
||||||
|
div.className = 'progressbar-text';
|
||||||
|
|
||||||
|
if (opt.text) {
|
||||||
|
var del = $WH.ce('del');
|
||||||
|
$WH.ae(del, $WH.ct(opt.text));
|
||||||
|
$WH.ae(div, del);
|
||||||
}
|
}
|
||||||
if (c.hoverText) {
|
|
||||||
var b = $WH.ce("ins");
|
if (opt.hoverText) {
|
||||||
$WH.ae(b, $WH.ct(c.hoverText));
|
var ins = $WH.ce('ins');
|
||||||
$WH.ae(e, b)
|
$WH.ae(ins, $WH.ct(opt.hoverText));
|
||||||
|
$WH.ae(div, ins);
|
||||||
}
|
}
|
||||||
$WH.ae(d, e)
|
|
||||||
|
$WH.ae(el, div);
|
||||||
}
|
}
|
||||||
e = $WH.ce("div");
|
|
||||||
e.className = "progressbar-" + c.color;
|
div = $WH.ce('div');
|
||||||
e.style.width = c.width + "%";
|
div.className = 'progressbar-' + opt.color;
|
||||||
$WH.ae(e, $WH.ct(String.fromCharCode(160)));
|
div.style.width = opt.width + '%';
|
||||||
$WH.ae(d, e);
|
if (opt.height) {
|
||||||
return d
|
div.style.height = opt.height;
|
||||||
|
}
|
||||||
|
|
||||||
|
$WH.ae(div, $WH.ct(String.fromCharCode(160)));
|
||||||
|
$WH.ae(el, div);
|
||||||
|
|
||||||
|
if (opt.text) {
|
||||||
|
var div = $WH.ce('div');
|
||||||
|
div.className = 'progressbar-text progressbar-hidden';
|
||||||
|
$WH.ae(div, $WH.ct(opt.text));
|
||||||
|
$WH.ae(el, div);
|
||||||
|
}
|
||||||
|
|
||||||
|
return el;
|
||||||
}
|
}
|
||||||
function g_createReputationBar(g) {
|
|
||||||
var f = g_createReputationBar.P;
|
function g_createReputationBar(totalRep) {
|
||||||
if (!g) {
|
var P = g_createReputationBar.P;
|
||||||
g = 0
|
|
||||||
|
if (!totalRep) {
|
||||||
|
totalRep = 0;
|
||||||
}
|
}
|
||||||
g += 42000;
|
|
||||||
if (g < 0) {
|
totalRep += 42000;
|
||||||
g = 0
|
if (totalRep < 0) {
|
||||||
} else {
|
totalRep = 0;
|
||||||
if (g > 84999) {
|
}
|
||||||
g = 84999
|
else if (totalRep > 84999) {
|
||||||
|
totalRep = 84999;
|
||||||
|
}
|
||||||
|
|
||||||
|
var
|
||||||
|
currentRep = totalRep,
|
||||||
|
maxRep,
|
||||||
|
standing = 0;
|
||||||
|
|
||||||
|
for (var i = 0, len = P.length; i < len; ++i) {
|
||||||
|
if (P[i] > currentRep) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (i < len - 1) {
|
||||||
|
currentRep -= P[i];
|
||||||
|
standing = i + 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var e = g,
|
|
||||||
h, b = 0;
|
maxRep = P[standing];
|
||||||
for (var d = 0, a = f.length; d < a; ++d) {
|
|
||||||
if (f[d] > e) {
|
var opt = {
|
||||||
break
|
text: g_reputation_standings[standing],
|
||||||
}
|
hoverText: currentRep + ' / ' + maxRep,
|
||||||
if (d < a - 1) {
|
color: 'rep' + standing,
|
||||||
e -= f[d];
|
width: parseInt(currentRep / maxRep * 100)
|
||||||
b = d + 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
h = f[b];
|
|
||||||
var c = {
|
|
||||||
text: g_reputation_standings[b],
|
|
||||||
hoverText: e + " / " + h,
|
|
||||||
color: "rep" + b,
|
|
||||||
width: parseInt(e / h * 100)
|
|
||||||
};
|
};
|
||||||
return g_createProgressBar(c)
|
|
||||||
|
return g_createProgressBar(opt);
|
||||||
}
|
}
|
||||||
g_createReputationBar.P = [36000, 3000, 3000, 3000, 6000, 12000, 21000, 999];
|
g_createReputationBar.P = [36000, 3000, 3000, 3000, 6000, 12000, 21000, 999];
|
||||||
function g_createAchievementBar(b, d, a) {
|
|
||||||
if (!b) {
|
function g_createAchievementBar(points, outOf, overall, bonus) {
|
||||||
b = 0
|
if (!points) {
|
||||||
|
points = 0;
|
||||||
}
|
}
|
||||||
var c = {
|
|
||||||
text: b + (d > 0 ? " / " + d: ""),
|
var opt = {
|
||||||
color: (a ? "rep7": "ach" + (d > 0 ? 0 : 1)),
|
text: points + (bonus > 0 ? '(+' + bonus + ')': '') + (outOf > 0 ? ' / ' + outOf: ''),
|
||||||
width: (d > 0 ? parseInt(b / d * 100) : 100)
|
color: (overall ? 'rep7' : 'ach' + (outOf > 0 ? 0 : 1)),
|
||||||
|
width: (outOf > 0 ? parseInt(points / outOf * 100) : 100)
|
||||||
};
|
};
|
||||||
return g_createProgressBar(c)
|
|
||||||
|
return g_createProgressBar(opt);
|
||||||
}
|
}
|
||||||
|
|
||||||
function g_getMoneyHtml(money, side, costItems, costCurrency, achievementPoints) {
|
function g_getMoneyHtml(money, side, costItems, costCurrency, achievementPoints) {
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
|
|
||||||
{include file='bricks/redButtons.tpl'}
|
{include file='bricks/redButtons.tpl'}
|
||||||
|
|
||||||
<h1 class="h1-icon">{$lvData.page.name}</h1>
|
<h1>{$lvData.page.name}</h1>
|
||||||
|
|
||||||
{include file='bricks/article.tpl'}
|
{include file='bricks/article.tpl'}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user