typeId = intVal($id); $this->subject = new EmoteList(array(['id', $this->typeId])); if ($this->subject->error) $this->notFound(Util::ucFirst(Lang::game('emote')), Lang::emote('notFound')); $this->name = Util::ucFirst($this->subject->getField('cmd')); } protected function generatePath() { } protected function generateTitle() { array_unshift($this->title, $this->name, Util::ucFirst(Lang::game('emote'))); } protected function generateContent() { /***********/ /* Infobox */ /***********/ $infobox = Lang::getInfoBoxForFlags($this->subject->getField('cuFlags')); // has Animation if ($this->subject->getField('isAnimated')) $infobox[] = Lang::emote('isAnimated'); /****************/ /* Main Content */ /****************/ $text = ''; if ($aliasses = DB::Aowow()->selectCol('SELECT command FROM ?_emotes_aliasses WHERE id = ?d AND locales & ?d', $this->typeId, 1 << User::$localeId)) { $text .= '[h3]'.Lang::emote('aliases').'[/h3][ul]'; foreach ($aliasses as $a) $text .= '[li]/'.$a.'[/li]'; $text .= '[/ul][br][br]'; } $texts = []; if ($_ = $this->subject->getField('self', true)) $texts[Lang::emote('self')] = $_; if ($_ = $this->subject->getField('target', true)) $texts[Lang::emote('target')] = $_; if ($_ = $this->subject->getField('noTarget', true)) $texts[Lang::emote('noTarget')] = $_; if (!$texts) $text .= '[div][i class=q0]'.Lang::emote('noText').'[/i][/div]'; else foreach ($texts as $h => $t) $text .= '[pad][b]'.$h.'[/b][ul][li][span class=s4]'.preg_replace('/%\d?\$?s/', '<'.Util::ucFirst(Lang::main('name')).'>', $t).'[/span][/li][/ul]'; $this->extraText = $text; $this->infobox = $infobox ? '[ul][li]'.implode('[/li][li]', $infobox).'[/li][/ul]' : null; $this->redButtons = array( BUTTON_LINKS => ['type' => $this->type, 'typeId' => $this->typeId], BUTTON_WOWHEAD => false ); /**************/ /* Extra Tabs */ /**************/ // tab: achievement $condition = array( ['ac.type', ACHIEVEMENT_CRITERIA_TYPE_DO_EMOTE], ['ac.value1', $this->typeId], ); $acv = new AchievementList($condition); $this->lvTabs[] = ['achievement', ['data' => array_values($acv->getListviewData())]]; $this->extendGlobalData($acv->getJsGlobals()); // tab: sound if ($em = DB::Aowow()->select('SELECT soundId AS ARRAY_KEY, BIT_OR(1 << (raceId - 1)) AS raceMask, BIT_OR(1 << (gender - 1)) AS gender FROM aowow_emotes_sounds WHERE emoteId = ?d GROUP BY soundId', $this->typeId)) { $sounds = new SoundList(array(['id', array_keys($em)])); if (!$sounds->error) { $this->extendGlobalData($sounds->getJSGlobals(GLOBALINFO_SELF)); $data = $sounds->getListviewData(); foreach($data as $id => &$d) { $d['races'] = $em[$id]['raceMask']; $d['gender'] = $em[$id]['gender']; } $this->lvTabs[] = ['sound', array( 'data' => array_values($data), // gender races 'extraCols' => ['$Listview.templates.title.columns[1]', '$Listview.templates.classs.columns[1]'] )]; } } } } ?>