From 492b7cd3c4499e1be4073418dbcd437b9704b267 Mon Sep 17 00:00:00 2001 From: Sarjuuk Date: Sat, 31 Mar 2018 23:38:01 +0200 Subject: [PATCH] Profiler/Tooltips * fixed display of titles * supply iconstring in the tooltip data as this does not rely on variables within global.js fixes externally embeded profile tooltips --- includes/types/profile.class.php | 56 ++++++++++++++++++++++++++++++-- pages/profile.php | 6 ++-- 2 files changed, 56 insertions(+), 6 deletions(-) diff --git a/includes/types/profile.class.php b/includes/types/profile.class.php index eb615ce2..fc7316df 100644 --- a/includes/types/profile.class.php +++ b/includes/types/profile.class.php @@ -81,15 +81,15 @@ class ProfileList extends BaseType return array_values($data); } - public function renderTooltip($interactive = false) + public function renderTooltip() { if (!$this->curTpl) return []; $title = ''; $name = $this->getField('name'); - if ($_ = $this->getField('chosenTitle')) - $title = (new TitleList(array(['bitIdx', $_])))->getField($this->getField('gender') ? 'female' : 'male', true); + if ($_ = $this->getField('title')) + $title = (new TitleList(array(['id', $_])))->getField($this->getField('gender') ? 'female' : 'male', true); if ($this->isCustom()) $name .= Lang::profiler('customProfile'); @@ -161,6 +161,56 @@ class ProfileList extends BaseType { return $this->getField('cuFlags') & PROFILER_CU_PROFILE; } + + public function getIcon() + { + if ($_ = $this->getField('icon')) + return $_; + + $str = 'chr_'; + + switch ($this->getField('race')) + { + case 1: $str .= 'human_'; break; + case 2: $str .= 'orc_'; break; + case 3: $str .= 'dwarf_'; break; + case 4: $str .= 'nightelf_'; break; + case 5: $str .= 'scourge_'; break; + case 6: $str .= 'tauren_'; break; + case 7: $str .= 'gnome_'; break; + case 8: $str .= 'troll_'; break; + case 10: $str .= 'bloodelf_'; break; + case 11: $str .= 'draenei_'; break; + } + + switch ($this->getField('gender')) + { + case 0: $str .= 'male_'; break; + case 1: $str .= 'female_'; break; + } + + switch ($this->getField('class')) + { + case 1: $str .= 'warrior0'; break; + case 2: $str .= 'paladin0'; break; + case 3: $str .= 'hunter0'; break; + case 4: $str .= 'rogue0'; break; + case 5: $str .= 'priest0'; break; + case 6: $str .= 'deathknight0'; break; + case 7: $str .= 'shaman0'; break; + case 8: $str .= 'mage0'; break; + case 9: $str .= 'warlock0'; break; + case 11: $str .= 'druid0'; break; + } + + $level = $this->getField('level'); + if ($level > 59) + $str .= floor(($level - 60) / 10) + 2; + else + $str .= 1; + + return $str; + } } diff --git a/pages/profile.php b/pages/profile.php index 2028aa1f..817f4b33 100644 --- a/pages/profile.php +++ b/pages/profile.php @@ -189,8 +189,8 @@ class ProfilePage extends GenericPage $cl = $this->subject->getField('class'); $gender = $this->subject->getField('gender'); $title = ''; - if ($_ = $this->subject->getField('chosenTitle')) - $title = (new TitleList(array(['bitIdx', $_])))->getField($gender ? 'female' : 'male', true); + if ($_ = $this->subject->getField('title')) + $title = (new TitleList(array(['id', $_])))->getField($gender ? 'female' : 'male', true); if ($this->isCustom) $name .= Lang::profiler('customProfile'); @@ -200,7 +200,7 @@ class ProfilePage extends GenericPage $x .= "\n"; $x .= "\tname_".User::$localeString.": '".Util::jsEscape($name)."',\n"; $x .= "\ttooltip_".User::$localeString.": '".$this->subject->renderTooltip()."',\n"; - $x .= "\ticon: \$WH.g_getProfileIcon(".$ra.", ".$cl.", ".$gender.", ".$lvl."),\n"; // (race, class, gender, level, iconOrId, 'medium') + $x .= "\ticon: \$WH.g_getProfileIcon(".$ra.", ".$cl.", ".$gender.", ".$lvl.", '".$this->subject->getIcon()."'),\n"; // (race, class, gender, level, iconOrId, 'medium') $x .= "});"; return $x;