diff --git a/config/aowow.xml.in b/config/aowow.xml.in new file mode 100644 index 00000000..eb98787b --- /dev/null +++ b/config/aowow.xml.in @@ -0,0 +1,19 @@ + + + +/*$shortName*/ +/*$name*/ + + + + +/*STATIC_URL*//images/logos/favicon.ico +/*STATIC_URL*//images/icons/favicon.gif + + diff --git a/crossdomain.xml b/crossdomain.xml new file mode 100644 index 00000000..b152f30a --- /dev/null +++ b/crossdomain.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/includes/types/basetype.class.php b/includes/types/basetype.class.php index 3824ced8..79a237a2 100644 --- a/includes/types/basetype.class.php +++ b/includes/types/basetype.class.php @@ -672,7 +672,7 @@ abstract class Filter if (is_array($v) && !empty($v)) $_[$k] = $k.'='.implode(':', $v); - else if ($v === '') + else if ($v !== '') $_[$k] = $k.'='.$v; } diff --git a/includes/types/item.class.php b/includes/types/item.class.php index ca9dad75..e1a5f527 100644 --- a/includes/types/item.class.php +++ b/includes/types/item.class.php @@ -416,6 +416,7 @@ class ItemList extends BaseType $_flags = $this->curTpl['flags']; $_class = $this->curTpl['class']; $_subClass = $this->curTpl['subClass']; + $_slot = $this->curTpl['slot']; $causesScaling = false; if (!empty($enhance['rand'])) @@ -440,6 +441,9 @@ class ItemList extends BaseType } } + if (isset($enhance['sock']) && !in_array($_slot, [INVTYPE_WRISTS, INVTYPE_WAIST, INVTYPE_HANDS])) + unset($enhance['sock']); + // IMPORTAT: DO NOT REMOVE THE HTML-COMMENTS! THEY ARE REQUIRED TO UPDATE THE TOOLTIP CLIENTSIDE $x = ''; @@ -528,7 +532,7 @@ class ItemList extends BaseType $x .= ''; // Class - $x .= ''; + $x .= ''; // Subclass if ($_class == ITEM_CLASS_ARMOR && $_subClass > 0) @@ -540,8 +544,8 @@ class ItemList extends BaseType $x .= '
'.Lang::$item['inventoryType'][$this->curTpl['slot']].''.Lang::$item['inventoryType'][$_slot].'
'; } - else if (($_ = $this->curTpl['slot']) && $_class != ITEM_CLASS_CONTAINER) // yes, slot can occur on random items and is then also displayed <_< .. excluding Bags >_> - $x .= '
'.Lang::$item['inventoryType'][$this->curTpl['slot']].'
'; + else if ($_slot && $_class != ITEM_CLASS_CONTAINER) // yes, slot can occur on random items and is then also displayed <_< .. excluding Bags >_> + $x .= '
'.Lang::$item['inventoryType'][$_slot].'
'; else $x .= '
'; @@ -930,7 +934,7 @@ class ItemList extends BaseType foreach ($reagents->iterate() as $__) $reqReag[] = ''.$reagents->getField('name', true).' ('.$reagentItems[$reagents->id].')'; - $xCraft .= '
'.Lang::$game['requires2'].' '.implode(', ', $reqReag).''; + $xCraft .= '

'.Lang::$game['requires2'].' '.implode(', ', $reqReag).'
'; } } } @@ -956,9 +960,6 @@ class ItemList extends BaseType if ($this->curTpl['spellCharges1'] > 1 || $this->curTpl['spellCharges1'] < -1) $xMisc[] = ''.abs($this->curTpl['spellCharges1']).' '.Lang::$item['charges'].''; - if ($sp = $this->curTpl['sellPrice']) - $xMisc[] = ''.Lang::$item['sellPrice'].Lang::$colon.Util::formatMoney($sp).''; - // list required reagents if (isset($xCraft)) $xMisc[] = $xCraft; @@ -966,13 +967,16 @@ class ItemList extends BaseType if ($xMisc) $x .= implode('
', $xMisc); + if ($sp = $this->curTpl['sellPrice']) + $x .= '
'.Lang::$item['sellPrice'].Lang::$colon.Util::formatMoney($sp).'
'; + if (!$subOf) $x .= ''; // tooltip scaling if (!isset($xCraft)) { - $link = [$subOf ? $subOf : $this->id, 1]; // itemid, scaleMinLevel + $link = [$subOf ? $subOf : $this->id, 1]; // itemId, scaleMinLevel if (isset($this->ssd[$this->id])) // is heirloom { array_push($link, @@ -1885,26 +1889,17 @@ class ItemListFilter extends Filter // upgrade for [form only] if (isset($_v['upg'])) { - /* notice! - profiler can send $_GET['upg'] as an array - this should results in in N listviews-sets (weapons generate more more than one listview per slot) for N items -
-
- var tabsGroups = new Tabs({parent: $WH.ge('jkbfksdbl4')}); - {template: 'item', id: 'ranged', name: 'Ranged', tabs: tabsGroups, parent: 'lkljbjkb574', hideCount: 1, note: $WH.sprintf(LANG.lvnote_viewmoreslot, '', 'sl=15;maxrl=80;si=1;ub=1;cr=161;crs=1;crv=0;upg=45498'), customFilter: fi_filterUpgradeListview, _upgradeIds: [45498], extraCols: fi_getExtraCols(fi_extraCols, 0, 0, 0), onAfterCreate: fi_addUpgradeIndicator, data:[]} - */ - // valid item? - if (!is_int($_v['upg'])) + if (!is_int($_v['upg']) && !is_array($_v['upg'])) unset($_v['upg']); else { - $_ = DB::Aowow()->selectCell('SELECT slot FROM ?_items WHERE class IN (2, 3, 4) AND id = ?d', $_v['upg']); + $_ = DB::Aowow()->selectCol('SELECT id as ARRAY_KEY, slot FROM ?_items WHERE class IN (2, 3, 4) AND id IN (?a)', (array)$_v['upg']); if ($_ === null) unset($_v['upg']); else { - $this->formData['form']['upg'] = $_v['upg']; + $this->formData['form']['upg'] = $_; if ($_) $parts[] = ['slot', $_]; } diff --git a/includes/utilities.php b/includes/utilities.php index c8ba079b..6bc69b7e 100644 --- a/includes/utilities.php +++ b/includes/utilities.php @@ -59,7 +59,7 @@ class SmartyAoWoW extends Smarty $tv = &$this->_tpl_vars; // fetch article & static infobox - if ($tv['type'] && $tv['typeId']) + if (isset($tv['type']) && isset($tv['typeId'])) { $article = DB::Aowow()->selectRow( 'SELECT SQL_CALC_FOUND_ROWS article, quickInfo, locale FROM ?_articles WHERE type = ?d AND typeId = ?d AND locale = ?d UNION ALL '. @@ -70,7 +70,13 @@ class SmartyAoWoW extends Smarty if ($article) { - $tv['article'] = ['text' => Util::jsEscape($article['article'])]; + $replace = array( + 'script' => 'scr"+"ipt', + 'HOST_URL' => HOST_URL, + 'STATIC_URL' => STATIC_URL + ); + $tv['article'] = ['text' => strtr(Util::jsEscape($article['article']), $replace)]; + if (empty($tv['infobox']) && !empty($article['quickInfo'])) $tv['infobox'] = $article['quickInfo']; @@ -247,7 +253,8 @@ class SmartyAoWoW extends Smarty $file = $this->cache_dir.'data/'.$key; - $cacheData = time()." ".AOWOW_REVISION."\n"; + $cacheData = time()." ".AOWOW_REVISION."\n"; + $cacheData .= serialize($this->_tpl_vars)."\n"; // todo(med): this should not be nessecary, rework caching $cacheData .= serialize(str_replace(["\n", "\t"], ['\n', '\t'], $data)); if ($filter) @@ -273,9 +280,12 @@ class SmartyAoWoW extends Smarty if ($expireTime <= time() || $rev < AOWOW_REVISION) return false; - $data = str_replace(['\n', '\t'], ["\n", "\t"], unserialize($cache[1])); - if (isset($cache[2])) - $filter = unserialize($cache[2]); + $this->_tpl_vars = unserialize($cache[1]); + + $data = str_replace(['\n', '\t'], ["\n", "\t"], unserialize($cache[2])); + + if (isset($cache[3])) + $filter = unserialize($cache[3]); return true; } diff --git a/index.php b/index.php index 6b7ab5bc..066aeab7 100644 --- a/index.php +++ b/index.php @@ -77,6 +77,15 @@ switch ($pageCall) else $smarty->error(); break; + case 'whats-new': + case 'searchplugins': + case 'searchbox': + case 'tooltips': + case 'help': + case 'faq': + case 'aboutus': + require 'pages/more.php'; + break; case 'petcalc': // tool: pet talent calculator $petCalc = true; case 'talent': // tool: talent calculator diff --git a/localization/locale_dede.php b/localization/locale_dede.php index 566f2cff..e08eea6c 100644 --- a/localization/locale_dede.php +++ b/localization/locale_dede.php @@ -17,7 +17,6 @@ $lang = array( 'ab' => ["J.", "M.", "W.", "Tag", "Std.", "Min.", "Sek.", "Ms."], ), 'main' => array( - 'help' => "Hilfe", 'name' => "Name", 'link' => "Link", 'signIn' => "Anmelden / Registrieren", @@ -107,7 +106,14 @@ $lang = array( 'talentCalc' => "Talentrechner", 'petCalc' => "Begleiterrechner", 'chooseClass' => "Wählt eine Klasse", - 'chooseFamily' => "Wählt eine Tierart" + 'chooseFamily' => "Wählt eine Tierart", + + // help + 'help' => "Hilfe", + 'helpTopics' => array( + "Wie man Kommentare schreibt", "Modellviewer", "Screenshots: Tipps & Tricks", "Gewichtung von Werten", + "Talentrechner", "Gegenstandsvergleich", "Profiler" + ) ), 'search' => array( 'search' => "Suche", diff --git a/localization/locale_enus.php b/localization/locale_enus.php index 983c5036..3f89b269 100644 --- a/localization/locale_enus.php +++ b/localization/locale_enus.php @@ -12,7 +12,6 @@ $lang = array( 'ab' => ["yr", "mo", "wk", "day", "hr", "min", "sec", "ms"] ), 'main' => array( - 'help' => "Help", 'name' => "name", 'link' => "Link", 'signIn' => "Log in / Register", @@ -94,7 +93,14 @@ $lang = array( 'talentCalc' => "Talent Calculator", 'petCalc' => "Hunter Pet Calculator", 'chooseClass' => "Choose a class", - 'chooseFamily' => "Choose a pet family" + 'chooseFamily' => "Choose a pet family", + + // help + 'help' => "Help", + 'helpTopics' => array( + "Commenting and You", "Model Viewer", "Screenshots: Tips & Tricks", "Stat Weighting", + "Talent Calculator", "Item Comparison", "Profiler" + ) ), 'search' => array( 'search' => "Search", diff --git a/localization/locale_eses.php b/localization/locale_eses.php index 6adb35bd..b4b1ce5a 100644 --- a/localization/locale_eses.php +++ b/localization/locale_eses.php @@ -17,7 +17,6 @@ $lang = array( 'ab' => ["año", "mes", "sem", "", "h", "min", "seg", "ms"], ), 'main' => array( - 'help' => "Ayuda", 'name' => "nombre", 'link' => "Enlace", 'signIn' => "Iniciar sesión / Registrarse", @@ -99,7 +98,14 @@ $lang = array( 'talentCalc' => "Calculadora de talentos", 'petCalc' => "Calculadora de mascotas", 'chooseClass' => "Escoge una clase", - 'chooseFamily' => "Escoge una familia de mascota" + 'chooseFamily' => "Escoge una familia de mascota", + + // help + 'help' => "Ayuda", + 'helpTopics' => array( + "Los comentarios y tú", "Visualizador de modelos", "Capturas de pantalla: Sugerencias y trucos", "Medición de atributos", + "Calculadora de talentos", "Comparación de objetos", "Perfiles" + ) ), 'search' => array( 'search' => "Búsqueda", diff --git a/localization/locale_frfr.php b/localization/locale_frfr.php index 926d8147..1f3220c6 100644 --- a/localization/locale_frfr.php +++ b/localization/locale_frfr.php @@ -17,7 +17,6 @@ $lang = array( 'ab' => ["an", "mo", "sem", "jour", "h", "min", "s", "ms"] ), 'main' => array( - 'help' => "Aide", 'name' => "nom", 'link' => "Lien", 'signIn' => "Se connecter / S'inscrire", @@ -99,7 +98,14 @@ $lang = array( 'talentCalc' => "Calculateur de Talents", 'petCalc' => "Calculateur de familiers", 'chooseClass' => "Choisissez une classe", - 'chooseFamily' => "Choisissez un familier" + 'chooseFamily' => "Choisissez un familier", + + // help + 'help' => "Aide", + 'helpTopics' => array( + "Le guide du commentaire", "Visionneuse 3D", "Captures d'écran : Trucs et astuces", "Échelles de valeurs", + "Calculateur de talents", "Comparaison d'objets", "Profiler" + ) ), 'search' => array( 'search' => "Recherche", diff --git a/localization/locale_ruru.php b/localization/locale_ruru.php index c50a6d49..d3c8a0b9 100644 --- a/localization/locale_ruru.php +++ b/localization/locale_ruru.php @@ -17,7 +17,6 @@ $lang = array( 'ab' => ["г.", "мес.", "нед.", "дн", "ч.", "мин", "сек.", "мс"] ), 'main' => array( - 'help' => "Справка", 'name' => "название", 'link' => "Ссылка", 'signIn' => "Вход / Регистрация", @@ -99,7 +98,14 @@ $lang = array( 'talentCalc' => "Расчёт талантов", 'petCalc' => "Расчёт умений питомцев", 'chooseClass' => "Выберите класс", - 'chooseFamily' => "Выберите семейство питомцев" + 'chooseFamily' => "Выберите семейство питомцев", + + // help + 'help' => "Справка", + 'helpTopics' => array( + "Комментарии и Вы", "3D просмотр", "Скриншоты: Секреты мастерства", "Значимость характеристик", + "Расчёт талантов", "Сравнение предметов", "Профили персонажей" + ) ), 'search' => array( 'search' => "Поиск", diff --git a/pages/item.php b/pages/item.php index d765d2c8..baaa6f48 100644 --- a/pages/item.php +++ b/pages/item.php @@ -73,7 +73,7 @@ if (isset($_GET['power'])) } // regular page -if (!$smarty->loadCache($cacheKeyPage, $item)) +if (!$smarty->loadCache($cacheKeyPage, $pageData)) { $item = new ItemList(array(['i.id', $_id])); if ($item->error) @@ -885,7 +885,6 @@ if (!$smarty->loadCache($cacheKeyPage, $item)) $smarty->saveCache($cacheKeyPage, $pageData); } - $smarty->updatePageVars($pageData['page']); $smarty->assign('community', CommunityContent::getAll(TYPE_ITEM, $_id)); // comments, screenshots, videos $smarty->assign('lang', array_merge(Lang::$main, Lang::$game, Lang::$item, ['colon' => Lang::$colon])); diff --git a/pages/more.php b/pages/more.php new file mode 100644 index 00000000..4937ce91 --- /dev/null +++ b/pages/more.php @@ -0,0 +1,89 @@ +error(); + + $title = Lang::$main['helpTopics'][$typeId]; + break; + case 'tooltips': + $type = -10; + $typeId = 0; + $title = 'Tooltips'; + break; + case 'faq': + $type = -3; + $typeId = 0; + $title = 'Frequently Asked Questions'; + break; + case 'aboutus': + $type = 0; + $typeId = 0; + $title = 'What is AoWoW?'; + break; + case 'searchplugins': + $type = -8; + $typeId = 0; + $title = 'Search Plugins'; + break; + case 'searchbox': + $type = -16; + $typeId = 0; + $title = 'Search Box'; + break; + case 'whats-new': + $type = -7; + $typeId = 0; + $title = 'What\'s New'; + break; + default: + Util::$pageTemplate->error(); +} + +$_path[] = abs($type); + +if ($typeId > -1) + $_path[] = $typeId; + +// the actual text is an article accessed by type + typeId +// menuId 2: More g_initPath() +// tabid 2: More g_initHeader() +$pageData = array( + 'name' => $title, + 'title' => $title, + 'path' => json_encode($_path, JSON_NUMERIC_CHECK), + 'tab' => 2, + 'type' => $type, + 'typeId' => $typeId +); + +$smarty->updatePageVars($pageData); +$smarty->assign('lang', array_merge(Lang::$main, Lang::$game)); + +// load the page +$smarty->display('text-page-generic.tpl'); + +?> diff --git a/pages/npc.php b/pages/npc.php index 15e17c8f..ec03c488 100644 --- a/pages/npc.php +++ b/pages/npc.php @@ -32,7 +32,7 @@ if (isset($_GET['power'])) $x = '$WowheadPower.registerNpc('.$_id.', '.User::$localeId.", {\n"; $x .= "\tname_".User::$localeString.": '".Util::jsEscape($npc->getField('name', true))."',\n"; $x .= "\ttooltip_".User::$localeString.": '".Util::jsEscape($npc->renderTooltip())."',\n"; - // $x .= "\tmap: ".($s ? '{zone: '.$s[0].', coords: {0:'.json_encode($s[1], JSON_NUMERIC_CHECK).'}' : '{}')."\n"; + // $x .= "\tmap: ".($s ? '{zone: '.$s[0].', coords: {0:'.json_encode($s[1], JSON_NUMERIC_CHECK).'}}' : '{}')."\n"; $x .= "});"; $smarty->saveCache($cacheKeyTooltip, $x); diff --git a/power/demo.html b/power/demo.html deleted file mode 100644 index 45c55b1b..00000000 --- a/power/demo.html +++ /dev/null @@ -1,113 +0,0 @@ - - - -'Powered by Wowhead' Demo - - - - - - - - - - - -

'Powered by Wowhead' Demo
« Return to the site

- -
- -Items

- -Skyshatter Cover
-Lightbringer Faceguard

- -X-51 Nether-Rocket X-TREME (PTR)

- -Abacus of Violent Odds (Custom URL)
-Atiesh, Greatstaff of the Guardian (Level 80 conversions)
-Felstalker Bracers (Enchant, gem, set bonus)
-Dark Band of Agility (Random enchantment, enchant)
-Surestrike Goggles v2.0 (Enchant, gems)

- -
- -Spells

-Swiftmend
-Shadow Word: Pain (Level 42 scaling)
-Blacksmithing: Bulwark of the Ancient Kings

- -Mark of the Wild (Buff)

- -
- -Quests

-Zalazane
-Wanted: Arcatraz Sentinels
-An Apexis Relic
-Kalynna's Request

- -
- -Achievements

-'Tis the Season
-100 Fish

- -
- -Profiles

-Drekdarok
-DPS

- -Drekdarok (Custom URL)
-DPS (Custom URL)
-
- -Custom

-Hai to you!

- -
- -Image Map

- - -Sun -Mercury -Venus - - - -
- -
-Localized links (requires your site to use UTF-8 encoding)

- -Deutsch: Bedeckung des Himmelsdonners
-Français: Couvre-chef Brise-ciel
-Español: Casquete de destrozacielos
-Русский: Убор Небокрушителя
-
- -
- -
- -
-Item #30301
-Item #99999 -
- -Item #30319 -Item #22589 -Item #8171 -Item #6479! - - - \ No newline at end of file diff --git a/search.php b/search.php index b3f37116..188b0e10 100644 --- a/search.php +++ b/search.php @@ -60,7 +60,7 @@ if (isset($_GET['json'])) } else if (isset($_GET['opensearch'])) { - $maxResults = CFG_SQL_LIMIT_QUCKSEARCH; + $maxResults = CFG_SQL_LIMIT_QUICKSEARCH; $searchMask |= SEARCH_TYPE_OPEN | SEARCH_MASK_OPEN; } else @@ -196,6 +196,9 @@ if (!$smarty->loadCache($cacheKey, $found)) if ($data = $titles->getListviewData()) { + foreach ($titles->iterate() as $id => $__) + $data[$id]['param1'] = $titles->getField('side'); + $found['title'] = array( 'type' => TYPE_TITLE, 'appendix' => ' (Title)', diff --git a/setup/more-articles_ann-help.sql b/setup/more-articles_ann-help.sql new file mode 100644 index 00000000..1e45738d --- /dev/null +++ b/setup/more-articles_ann-help.sql @@ -0,0 +1,18 @@ +REPLACE INTO `aowow_articles` (`type`, `typeId`, `locale`, `article`, `quickInfo`) VALUES + (-13, 0, 0, '[menu tab=2 path=2,13,0]One of Wowhead\'s many useful features is the user-submitted comment system. This system allows users to submit their own comments to augment the data provided by Wowhead. As a rule, Wowhead promotes the submission of informative comments, but we also like to see the occasional joke. Moderators and users alike will apply positive and negative ratings to comments in an effort to promote the useful ones and purge unnecessary information.\r\n\r\nWith that in mind, below is a guide that can be used to determine how your comment will likely be received by the community. \r\n\r\n[pad]\r\n\r\n[tabs name=comments]\r\n\r\n[tab name="Before you post"]\r\n\r\n[ul]\r\n[li][b]Read existing comments[/b] – Sometimes, the information you have may already have been posted by another user. In this case, if the information is useful, the existing comment should be given a positive rank. Posting information that was already added in a previous comment will likely result in a negative rating.[pad][/li]\r\n[li][b]Verify your facts[/b] – Make sure that what you have to post is true. A friend might tell you that a mob is immune to Frost Nova, but unless you verify that yourself, you could be posting a potentially misleading comment.[pad][/li]\r\n[li][b]Temporary usability[/b] – If you want to correct invalid or missing information on a page, keep in mind that your comment may go from a positive ranking to a negative ranking when the correction occurs. For example, informing the community that an item drops off of Illidan Stormrage before that data has been collected will be useful at first, but once Wowhead learns that information and adds it to the \'Dropped By\' tab, your comment becomes redundant. If you do not want to worry about the comment or do not want one of your comments to be rated negatively, consider informing us in the [url=/?forums&board=1.]Site Feedback[/url] forum. The moderation staff will be happy to add a comment to correct invalid or missing information on the page for you. Alternatively, you can delete your comment later when it becomes redundant.[/li]\r\n[/ul]\r\n\r\n[/tab]\r\n\r\n[tab name="Comment ratings"]\r\n\r\n[h3][color=q2]Positive (+1)[/color][/h3]\r\n[ul]\r\n[li][b]Corrections on drop percentages[/b] – There are many instances where drop percentages will be inaccurate. For example, quest items do not drop for people who do not have the quest, so their drop percentages will be low. Also, mobs that periodically do not drop loot when they die won\'t count against the drop percentages, so these mobs may appear to have higher drop rates for some items.[pad][/li]\r\n[li][b]Strategies[/b] – If you have a strategy that can assist other users in completing a quest or defeating a mob, by all means, share![pad][/li]\r\n[li][b]Quest coordinates[/b] – Providing coordinates for the location of quest items or mobs is always useful. When possible, you should provide Wowhead links to quest targets as well.[pad][/li]\r\n[li][b]Theorycrafting[/b] – We encourage users to post any information they have regarding complex calculations they may have performed to, for example, prove one item has a higher DPS than another given certain abilities.[pad][/li]\r\n[li][b]Just for laughs[/b] – If your comment is one that would be universally funny (i.e. not an inside joke), post away. We like to laugh as much as anyone else. Of course, whether your joke is funny or not is subject to our other users. :)[/li]\r\n[/ul]\r\n\r\n[h3][color=q10]Negative (-1)[/color][/h3]\r\n[ul]\r\n[li][b]Redundant information[/b] – For instance, a comment that says "Dropped by Ragnaros" does not add anything to the page as that information can be viewed in the "Dropped By" tab of the page in question.[pad][/li]\r\n[li][b]Soloed by:[/b] Unless your comment contains a detailed explanation of how you defeated a mob, these comments do not add anything to the page. Simply stating your level, class, and that you soloed the mob by using a few skills is not enough to be useful.[pad][/li]\r\n[li][b]Dropped in X kills[/b] – Telling users that you were lucky enough to get the crusader enchant in one drop is not considered useful information.[pad][/li]\r\n[li][b]NPC/Object coordinates[/b] – The coordinates for NPC or mobs are already supplied in convenient maps within the Wowhead interface.[pad][/li]\r\n[li][b]Best X before level Y[/b] – Simply posting that an item is the best twink weapon or the best dagger for a rogue is not helpful unless you can back up that claim with facts.[pad][/li]\r\n[li][b]HUNTAR WEPPON[/b] – While it would be acceptable to explain why you feel a certain class with a certain spec would gain the most benefit from an item, simply stating that you feel the weapon should always go to a hunter in a raid will result in negative moderation.[pad][/li]\r\n[li][b]Confirmed![/b] – Adding a comment that simply indicates that you have confirmed a comment left by someone else clutters the comments. The best way to confirm a comment as correct is to give it a positive ranking. A comment with a high ranking will indicate to users that many people think it is useful data.[/li]\r\n[/ul]\r\n\r\n[/tab]\r\n\r\n[tab name=Deletion]\r\n\r\nAny comment that does not abide by the same [forumrules] will be deleted by a moderator.\r\n\r\n[/tab]\r\n\r\n[/tabs]', NULL), + (-13, 5, 0, '[menu tab=2 path=2,13,5]Can\'t find the answer you were looking for? Just [url=/?aboutus#contact]contact us[/url], or post on our [url=/?forums&board=1]forums[/url]! \r\n\r\n[pad]\r\n\r\n[tabs name=compare]\r\n\r\n[tab name="General usage"]\r\n\r\n[h3]Basic Controls[/h3]\r\n\r\n[ul]\r\n[li][img src=static/images/icons/save.gif border=0] [b]Save[/b] – Saves the comparison so that you may continue browsing the site without losing it. When you click on the [b]Compare[/b] button found throughout the site you will be given the option to add to your saved comparison.[/li]\r\n[li][img src=static/images/icons/refresh.gif border=0] [b]Autosaving[/b] – Indicates that you are viewing your saved comparison, and that any changes you make will automatically be saved. To avoid modifying your saved comparison, you may click on Link to this comparison before making any changes.[/li]\r\n[li][img src=static/images/icons/link.gif border=0] [b]Link to this comparison[/b] – Provides a link to a new page with the current item comparison already there! Useful for showing friends your item comparisons.[/li]\r\n[li][img src=static/images/icons/delete.gif border=0] [b]Clear[/b] – Removes all items, groups, and weights from the comparison tool, giving you a clean slate to work with. [b]This will [u]delete[/u] your saved comparison if used while autosaving.[/b][/li]\r\n[li][img src=static/images/icons/add.gif border=0] [b]Weight scale[/b] – Allows you to add one or more weight scales to the item comparison using your own weights or one of our predefined presets. Each weight scale can have its own name. A saved comparison also contains the weight information, allowing you to store custom weight scales for future use.[/li]\r\n[li][img src=static/images/icons/add.gif border=0] [b]Item[/b] – Opens a live search that displays item suggestions as you type the name of an item. Clicking on a suggestion will add that item to your comparison.[/li]\r\n[li][img src=static/images/icons/add.gif border=0] [b]Item set[/b] – Opens a live search that displays item set suggestions as you type the name of an item set. Clicking on a suggestion will add all of the items in that set to your comparison.[/li]\r\n[/ul]\r\n\r\n[h3]Adding Items[/h3]\r\n[div float=right align=right][img src=static/images/help/item-comparison/addingitems.gif]\r\n[small]Some of the ways to add items to a comparison.[/small][/div]The comparison tool is fully integrated with our site and designed to be as convenient as possible to work with. There are many ways to add items to a comparison depending on what part of the site you are on: \r\n[ul][li]Using the [url=/?compare]item comparison tool[/url] itself, you may add items or item sets using the links in the top right corner as described above.[/li]\r\n[li]Viewing an [url=/?item=35137]item[/url] or [url=/?itemset=-17]item set[/url] page, you may click on the red [b]Compare[/b] button near the Quick Facts box.[/li]\r\n[li]Viewing [url=/?items=4.2&filter=sl=8]search results[/url] or [url=/?npc=34077#sells]any page with a list of items[/url], checkboxes are displayed next to items which can be equipped. You may select one or more items and click the [b]Compare[/b] button at the top of the list.[/li][/ul]\r\n\r\n[i]Note: If you have a comparison saved, and you add items to your comparison from elsewhere on the site, you will be given the option to add them to your saved comparison or create a new one. If you don\'t have a saved comparison, a new comparison will automatically be created and saved with the selected items.[/i]\r\n\r\n[h3]Managing Your Items[/h3]\r\n[div float=right align=right][img src=static/images/help/item-comparison/newgroup.gif]\r\n[small]Creating a new group by dragging an item.[/small][/div]\r\n[ul][li][b]Creating a new group[/b] – [u]Drag an item into the empty column[/u] on the right to create a new group containing that item.[/li]\r\n[li][b]Moving[/b] – To move an item or group, click on the item (or the group\'s control bar) and [u]drag it to the desired position[/u].[/li]\r\n[li][b]Copying[/b] – [u]Holding shift while dragging[/u] an item or group will make a copy of it when it is dropped.[/li]\r\n[li][b]Deleting[/b] – Items and groups can be deleted by [u]dragging them out of the row[/u]. Groups may also be deleted by clicking the X on the right side of the group\'s control bar.[/li]\r\n[li][b]Deleting all but one group[/b] – [u]Holding shift while deleting a group[/u] (see above) will cause all other groups to be deleted instead of that one.[/li]\r\n[li][b]Splitting a group[/b] – Groups of 2 or more items can be split by [u]clicking on [b]Split[/b] in the menu dropdown[/u] on the group\'s control bar. This will create a new group for each item in the current group.[/li]\r\n[li][b]Exporting a group[/b] – [u]Clicking on [b]Export[/b] in the menu dropdown[/u] of the group\'s control bar will take you to a new comparison containing only the current group.[/li]\r\n[li][b]Item Enhancements[/b] - To add gems or enchantments to an item, [u]right-click on the item icon at the top[/u], then select the desired option from the menu. The stats will automatically update—including the set bonuses.[/li]\r\n[/ul]\r\n\r\n[/tab]\r\n\r\n[tab name="Advanced features"]\r\n\r\n[h3]Level Adjustments[/h3]\r\nYou can select your desired character level from the dropdown at the top left. When you do, all the statistics that change according to your level (including combat ratings and heirloom item stats) will automatically adjust to the corresponding value for the level you\'ve entered.\r\n\r\n[h3]Gains[/h3]\r\nAt the bottom of the item comparison is a special row called \'Gains\'. The gains row calculates the minimum values of all stats that appear in any group in the item comparison. It then displays the bonuses each row has [b]above[/b] this minimum.\r\n\r\nFor example, the minimum stamina for any group in [url=/?compare=35031;35030;35029;35028;35027]this comparison[/url] is 50. The gains row displays nothing for the items which have 50 stamina, +23 sta for the item with 73 stamina, and +27 sta for the items with 77 stamina.\r\n\r\nBasically, the gains row removes the shared stats between all groups so that you can focus on what each group brings to the table.\r\n\r\n[h3]Focus Group[/h3]\r\n\r\n[screenshot url=static/images/help/item-comparison/focus2.gif thumb=static/images/help/item-comparison/focus.gif float=right]Comparing arena sets of the first four PvP\r\nseasons using a focus group.[/screenshot]Setting a focus group is done by clicking on the eye icon in the group\'s control bar. Selecting a group as your focus will update the display of the item comparison to show the difference in stats between all other groups and the focus group.\r\n\r\nWhen a focus is set, the focus group is highlighted and each other group has numbers that indicate the stats gained or lost in comparison to the focus group.\r\n\r\n[b][color=q2]Positive[/color][/b] numbers indicate that group has a higher total for a given stat than the focus group, while [b][color=q10]negative[/color][/b] numbers indicate that group has a lower total for a given stat than the focus group. \r\n\r\n[h3]Stat Weighting[/h3]\r\nTo add a weight scale to your comparison, click on the [b]Add a weight scale[/b] link in the top right corner. You may select a weight scale from our predefined presets or create one of your own. Each weight scale may be given a name that will appear in the score tooltips to help differentiate the different scores. You may add as many weight scales as you like.\r\n\r\nTo remove a weight scale, click on the [b]X[/b] next to the appropriate score in any group. To toggle between normalized (default), raw, and percent score mode, click on the score in any group.\r\n\r\nUnlike the weighted item search, these weight scales [b]do not[/b] automatically select gems or include socket bonuses in the score at this time.\r\n\r\n[h3]Viewing a Group in 3D[/h3]\r\nClick on [b]View in 3D[/b] in the menu dropdown of the group\'s control bar to display a 3D model of the items and select the race and gender to display them on. Of course, items which do not have models, such as trinkets and rings, will not be displayed.\r\n\r\n[/tab]\r\n\r\n[/tabs]', NULL), + (-13, 3, 0, '[menu tab=2 path=2,13,3]Can\'t find the answer you were looking for? Just [url=/?aboutus#contact]contact us[/url], or post on our [url=/?forums&board=1]forums[/url]! \r\n\r\n[pad]\r\n\r\n[tabs name=weights]\r\n\r\n[tab name=FAQ]\r\n\r\n[h3]How do weights work?[/h3]\r\nThe weighting system allows you to give a weight value to attributes that matter to you and applies your ratings to items in your search results. Each weight value is multiplied by an item\'s stat points and then added together to get the item\'s total score. This score is used to sort the results and display the highest scoring items.\r\n\r\nIf you decide that spell damage is worth twice as much as spell crit, you could add the weights as 2 and 1, 100 and 50, or any other numbers with the same ratio.\r\n\r\nPlease note that weights only work for [url=/?items=4]Armor[/url], [url=/?items=2]Weapons[/url], [url=/?items=3]Gems[/url] and [url=/?items=0]Consumables[/url]. \r\n[h3]What is the difference between weights and equivalency?[/h3]\r\nThe equivalency of two attributes describes how much one equals the other. You may find equivalency ratings that say something like 1 agility = 1.5 strength. This is [b]not[/b] the same as weight values; in fact, it\'s the exact opposite! Equivalency describes the ratio of the stats to each other, which can be used to derive the stat weights. In this example, an appropriate set of weights might be agility 3 and strength 2; this works out to agility being [i]1.5 times as valuable[/i] as strength. \r\n[h3]Is there a way to save a template that I have created?[/h3]\r\nThere sure is! You can save your stat weighting scales by going to the \'Preset\' dropdown menu, selecting \'custom,\' and then filling in your own weights. After you\'ve modified them to your liking, you can hit \'Save\' to give them a name so they can be used for future searches as well.\r\n\r\nWeights also carry over from one item list to another if you use the database menu, so going from a [url=/?items=2&filter=wt=51:48:49;wtv=83:67:58]weighted list of weapons[/url] to the [url=/?items=4&filter=wt=51:48:49;wtv=83:67:58]cloth armor listing[/url] will also maintain your current weight scale. \r\n[h3]Is it better to match sockets and gain the socket bonus, or use the best gems?[/h3]\r\nThe weighting system answers this for you automatically. It compares the score of matching gems plus the score of the socket bonus, to the score of the best gems it could put in that item. It will automatically put in the gems that result in the highest net rating, taking socket bonuses into account. When the socket colors are matched, the socket bonus text will be listed below the gems for each item. \r\n\r\n[h3]What are the default weight presets based on?[/h3]\r\nWe\'ve done a great deal of research, tracking down equivalence points for all of the classes. We\'d like to thank all of the hard-working theorycrafters at [url=http://elitistjerks.com/f47/t21302-theorycrafting_think_tank/]Elitist Jerks[/url], [url=http://forums.tkasomething.com/showthread.php?t=9542]TKA Something[/url], [url=http://shadowpanther.net/aep.htm]Shadow Panther[/url], [url=http://druid.wikispaces.com/Healing+Gear+List]The Druid Wiki[/url], [url=http://www.emmerald.net/]Emmerald[/url], [url=http://www.lootrank.com/wow/templates.asp]Lootrank[/url], [url=http://pawnmod.trenchrats.com/index.php]Pawn Mod[/url], and [url=http://www.codeplex.com/Rawr]Rawr[/url], as well as a host of threads on the World of Warcraft forums. They provided the inspiration for the weighted search and a starting point for our preset values.\r\n\r\n[/tab]\r\n\r\n[tab name="Helpful tips"]\r\n\r\n[ul]\r\n[li]You can help us [b]improve[/b] our presets! Email your suggestions to [feedback].[/li]\r\n[li]Don\'t weight stats that your character is [b]already capped on[/b] (e.g. Hit rating). Be sure to tweak the presets as needed![/li]\r\n[li]You can adjust a preset by clicking on the \'show details\' button.[/li]\r\n[li]Once you have generated a weighting you like, you can bookmark that page. Then, if you browse around on other pages using the menus at the top, your weight scale will be applied to that page as well.[/li]\r\n[/ul]\r\n\r\n[/tab]\r\n\r\n[tab name=Why?]\r\n\r\n[h3]Why does it give a higher score to 2H weapons over 1H weapons, when using a 1H + OH is better?[/h3]\r\nThe scores are based off the stat weights of the item by itself. Two-handers rank higher because by themselves they do have better stats than a one-hander with nothing else in the off hand. If you add up the scores of a main hand and off hand item, the total score is what you should use to compare to that of a two-hander. Wowhead does not assume a score for your offhand item, as there is no way of knowing what you have or can obtain for that slot unless you do a weighted search for it. \r\n[h3]Why does the preset list X as more important than Y?[/h3]\r\nSome attributes come in unusual value ranges on items, which affects their equivalency to other stats. It does not mean that your should focus on or ignore that stat, but that a single point of it is worth more or less compared to other stats. Stats with high number ranges (armor, weapon damage, penetration, etc) will require smaller weight values, while stats with low number ranges (mana regeneration) will require much larger weight values.\r\n\r\nIn essence, giving mana regeneration a score of 100 and healing a score of 25 does [b]not[/b] say that mana regeneration is more important than healing, simply that each point of mana regeneration is the equivalent of 4 points of healing.\r\n[h3]Why don\'t you have a preset for PvP/Tier 6 Raiding/...? Why doesn\'t your preset give a stat value for X?[/h3]\r\nIf you would like to suggest changes to the existing presets or new presets for other specs or situations, please do so to [feedback]. \r\n[h3]Why doesn\'t the preset limit the items to X, Y, and Z?[/h3]\r\nThe weight presets are for sorting; filters are for limiting the search results. If you want to restrict the items you see, use the appropriate tool - the filter options. The only limit applied by the weight scales is that it will not display items with a score of 0 or less. You should continue to use the existing filtering system if you want to see items of a specific type, slot, source, speed, etc.\r\n[h3]Why does it suggest the gems it does for the sockets?[/h3]\r\nThe suggested gems are based on your weights. If you would like to see a different gem in the sockets, try increasing the weight of the appropriate stat. If you feel the weights in the presets need to be adjusted, please let us know at [feedback].\r\n\r\n[/tab]\r\n\r\n[/tabs]', NULL), + (-13, 2, 0, '[menu tab=2 path=2,13,2]\r\n\r\nWowhead thrives on user contributions! Quest data, database comments, forum posts - you name it, we love it! One of our favorite methods of contribution is via uploaded [b]screenshots[/b], images depicting various items, NPCs or quest details in the World of Warcraft. Users can submit screenshots to any database page which will then be reviewed by our staff and, upon approval, added to a database page! Taking and uploading screenshots is easy!\r\n\r\n[small]The information below is graciously provided by [url=http://us.blizzard.com/support/article.xml?locale=en_US&articleId=21048]Blizzard Support[/url].[/small]\r\n[h3]Taking Screenshots on Windows[/h3]\r\n[ul]\r\n[li]While in the game, press the Print Screen key on your keyboard.[/li]\r\n[li]You should see a "Screen Captured" message.[/li]\r\n[li]The screenshot will appear as a .JPG file in the Screenshots folder, in your main World of Warcraft directory.[/li]\r\n[li]You should be able to double click on the screenshot files to view the screenshots in Windows default image viewer.[/li]\r\n[/ul]\r\n\r\n[b]Extra notes for Windows Vista users[/b]\r\n[ul]\r\n[li]Due to extra security on the system the screenshots will be saved to the following folder:C:\\\\users\\\\*your user name*\\\\AppData\\\\Local\\\\VirtualStore\\\\Program Files\\\\World of Warcraft\\\\Screenshots[/li]\r\n[li]You may also have to turn on the ability to view hidden files as the AppData folder may be hidden.\r\n[ul]\r\n[li]Click the Start/Window button, select Control Panel, Appearance and Personalization, Folder Options.[/li]\r\n[li]Next click on the View tab, under the Advanced settings, click Show hidden files and folders, and click OK to finish.[/li]\r\n[/ul][/li]\r\n[/ul]\r\n\r\n[h3]Taking Screenshots on Mac[/h3]\r\n[ul]\r\n[li]Players can take a screenshot in-game using the keyboard key bound to the Print Screen functionality.[/li]\r\n[li]If you have a keyboard with an F13 key, press the key to take an in-game screenshot. Players without an F13 key on the keyboard can change the default Screen Shot key in the Key Bindings menu.[/li]\r\n[li]You should see a "Screen Captured" message.[/li]\r\n[li]The screenshot will appear as a JPEG file in the Screenshots folder, in your main World of Warcraft folder.[/li]\r\n[/ul]\r\n\r\nRemember to turn off your in-game UI using the Alt+Z (or ⌘+V) command! Upon taking your screenshot, you can then go in and use an image editor (such as the free program [url=http://www.getpaint.net]Paint.NET[/url]) to crop your image for faster upload. You can select specific sections of a screenshot to upload (if you are featuring a particular piece of armor, for example) and save the file, then simply upload your pre-cropped image directly to Wowhead! If not, you can easily crop your screenshot after uploading but before submitting using our handy tool.\r\n\r\nTo submit a screenshot to Wowhead, simply navigate to the database entry for which you\'ve taken a screenshot and navigate to the \'Contribute\' section. Select the \'Submit a screenshot\' tab and click \'Choose file\' to locate the file on your system. Remember that only PNG and JPG file types are accepted! Once you have selected the screenshot simply click "Submit" and you\'re on your way! You will then be able to crop the image if necessary before your image is finally submitted for review. Upon approval (which may take up to 72 hours) your screenshot will then be featured on the database page, as well as in a \'Screenshots\' tab in your user profile!\r\n\r\n\r\n[h2]Quality Tips[/h2]\r\n\r\n[screenshot url=static/images/help/screenshots/hinterlands.jpg thumb=static/images/help/screenshots/hinterlands2.jpg float=right]The Hinterlands[/screenshot]A good screenshot is like a miniature piece of art. It should showcase the main object, but take into account the details around it. The same 7 elements of art design come into play here, Line, Shape, Form, Space, Texture, Light & Color. We\'ll touch on several of these and how to make use of the in game settings and mechanics to enhance your pictures.\r\n\r\nTurn your resolution and color sampling as high as your computer can handle. Turn on all the image effects and details, but turn down the weather effects to the lowest setting. In general you want all your glow and spell effects maxed to really show the environment to its fullest potential (they actually help with the lighting too!) You may find a shot that you need to play with these settings to enhance, sometimes turning down environmental detail is helpful to remove extra grasses.\r\n\r\nWorld of Warcraft actually has an internal setting for screenshot quality, and by default that quality is set to [b]3/10[/b]. You can turn this up, though, in order to take higher quality screenshots. In order to do so, type this command into your chatbox:\r\n\r\n[code]/console screenshotQuality 10[/code]\r\n\r\nMost of the time taking the pictures from 1st person view works best, so zoom all the way in so that you\'re looking through your character\'s eyes. Occasionally the object might be too big (large NPCs especially) to use this view - if this is the case get as close to them as you can without having your body in the shot and swing the camera around to get the angle that you\'re looking for.\r\n\r\nPay attention to the light - a well lit picture is 10 times better than a dark one. You may even want to do a little color correcting before uploading - increase the brightness and contrast a touch. For instance - it\'s a lot easier to take pictures in sunny Stormwind than deep in the mountains of torch lit Ironforge. Daytime pictures also turn out better than night.\r\n\r\n[h3]Featuring Armor[/h3]\r\n\r\n[screenshot url=static/images/help/screenshots/armor.jpg thumb=static/images/help/screenshots/armor2.jpg float=right]Dreamwalker Spaulders[/screenshot]We want to see the armor! Not Joe Schmoe in the armor. In general you want close ups of the piece itself (except for full set pictures). Don\'t be afraid to submit a 4 inch picture of one glove. Once\'s it\'s cropped and loaded and shrunk down to the thumbnail it will look great!\r\n\r\nUse your best judgment when cropping armor pics, but remember - we want to see details of the armor - not the person or a far away image. Of course, this also applies to weapons or any other piece of equipment!\r\n\r\n[h3]Featuring NPCs[/h3]\r\n\r\n[screenshot url=static/images/help/screenshots/npc.jpg thumb=static/images/help/screenshots/npc2.jpg float=right]Cairne Bloodhoof [/screenshot]Full body shots should be the norm. If you can\'t get a good full shot (e.g. they\'re standing behind a counter) get the waist up shot. There\'s no need to include the on-screen text and titles of NPCs. The website already lists those, so just get in close and take a great shot of the NPC itself.\r\n\r\nGet down on their level - you may need to "/sit" or even "/sleep" to get a good view of something low to the ground (scorpions, boots, spiders, etc.)\r\n\r\nWhen capturing moving NPCs, try to get as much a head on front shot as you can, being willing to take a few hits while you take picture of a mob attacking you can make for a great shot. If you don\'t want to get your hands dirty, sitting in place for a while and waiting for it to path in front of you is often easier and faster than running around it trying to get your shot.\r\n\r\nTalking to friendly NPCs will usually make them face you - you can then spin around and get the best background for your picture. You may also catch them in an interesting motion or gesture.', NULL), + (-13, 6, 0, '[menu tab=2 path=2,13,6]Can\'t find the answer you were looking for? Just [url=/?aboutus#contact]contact us[/url], or post on our [url=/?forums&board=1]forums[/url]!\r\n\r\n[pad]\r\n\r\n[tabs name=profiler]\r\n\r\n[tab name="Browsing characters"]\r\n\r\n[div float=right align=right][img src=static/images/help/profiler/menu.gif]\r\n[small]Navigating the menu to your battlegroup and realm.[/small][/div]Wowhead maintains a database of [i]millions[/i] of [url=http://www.wowarmory.com/]Armory[/url] characters, guilds, and arena teams that have been imported by our users. You can browse through this extensive list by visiting the main [url=/?profiles]profiles[/url] page and selecting a region, battlegroup, or realm from the menus at the top.\r\n\r\nThis will give you an unfiltered look at the players and guilds in the area you selected, with the most recently updated characters displayed first. You can also enter your characters name in the box at the top to jump directly to that character.\r\n\r\n[h3]Finding My Characters[/h3]\r\n\r\nTo find your own characters, you have two options:\r\n[ul]\r\n[li]Use the breadcrumb listings at the top to browse to your region, battlegroup, and realm. When you do this, a box will appear in the listing at the top of the page. Enter your character\'s name in this box to be taken directly to your character. You can use the "Claim Character", which is located under the Manage Character button, to save a character to your [url=/user=fewyn#characters]user page[/url] for later viewing.[/li]\r\n[li]If you\'re uploading data using the [url=/client]Wowhead Client[/url], any character you log in on will be automatically linked to your user page as soon as you upload data. Once that\'s done, you can view your characters directly from your user page.[/li]\r\n[/ul]\r\n\r\n[i]Tip: Claimed characters can be made public or private as you choose—so you only show off the characters people want you to see! Basic information for the profiles will remain public, just as it is in the Armory—but any connection to your account will be hidden.[/i]\r\n\r\n[h3]Filters[/h3]\r\nBut that\'s not the only way to find a character! You can also search Wowhead profiles using our robust filter system, just the same way that you can search items, NPCs, or spells in game. Characters and guilds can be filtered by name, region, and realm to limit the number of displayed results.\r\n\r\nAdditionally, characters can be filtered by faction, level, race, and class – as well as a number of other unique and useful criteria. For example:\r\n\r\n[ul]\r\n[li][div float=right align=right][img src=static/images/help/profiler/filters.gif]\r\n[small]Searching for characters that match your criteria.[/small][/div]Let\'s see [url=/?profiles=us.draenor&filter=cl=8;ra=11;cr=35;crs=0;crv=450]all the Draenei mages on my server that have their tailoring maxed out[/url].[/li]\r\n[li]Hmm... I wonder if anyone is [url=/?profiles=eu&filter=na=Malgayne]using my name on European servers[/url]?[/li]\r\n[li]How do I compare to [url=/?profiles=us.draenor&filter=cl=2;minle=80;maxle=80;cr=7;crs=1;crv=50]other Retribution-specced paladins on my server[/url]?[/li]\r\n[li]How many [url=/?profiles&filter=cr=23;crs=0;crv=871]Bloodsail Admirals[/url] are there out there?[/li]\r\n[li]Who got caught wearing a [url=/?profiles&filter=cr=21;crs=0;crv=22279]Lovely Black Dress[/url]?[/li]\r\n[li]How many people on my server and faction [url=/?profiles=us.sentinels&filter=si=2;cr=23;crs=0;crv=2904]completed Heroic Ulduar[/url]?[/li]\r\n[/ul]\r\n\r\nWe\'ll be adding more filters as time goes on, so feel free to experiment – and let us know if you think of other ideas!\r\n\r\n[pad][pad][pad]\r\n\r\n[h3]Guild and Arena Team Rosters[/h3]\r\nWhen you click on a character\'s guild or arena team, you will be directed to a roster view listing all the characters that belong to it. The roster view displays additional information, including guild ranks and personal arena team ratings. You can further filter this information using the [b]Create a filter[/b] link, should you want to find characters matching specific criteria. Now its easy to find all of the crafters in your guild!\r\n\r\n[h3][img src=static/images/help/profiler/queue.gif float=right]Resync Queue[/h3]\r\nWhen a character resync is requested, it is added to the queue. The queue is used to make sure everyone\'s characters are updated and processed in the order they were submitted, without overloading the [url=http://us.battle.net/wow/en/]Battle.net Armory\'s API[/url] with requests. Whenever you access a character that does not exist in our database or has not been updated in more than 1 hour, it will automatically be added to the queue.\r\n\r\n[/tab]\r\n\r\n[tab name="General usage"]\r\n\r\nThe profiler has a wealth of information it can display about characters and custom profiles, so it can seem daunting at first! Each of the sections are broken down in detail below.\r\n[h3]Basic Profile Information[/h3]\r\nAt the top of a profile you will see an expanded header with vital information about the profile itself. All profiles have an icon and the character\'s race, class and level; Armory characters display a link to the character\'s guild under the name, while custom profiles display a description set by the user that created it. A link to [b]Edit[/b] this information appears on the bottom line, allowing you to update a profile you created or make a new custom profile from an existing one.\r\n\r\n[ul]\r\n[li][img src=static/images/help/profiler/edit.gif float=right][b]Name [/b]– Give your profile a name! Names must start with a letter, and can only contain letters, numbers, and spaces.[/li]\r\n[li][b]Level[/b] – Select a level for your profile. Profiles must be at least level 10 (55 for Death Knights) and no more than level 85.[/li]\r\n[li][b]Race[/b] – Ever wonder what you\'d look like as a tauren instead of an orc? Choose any race for your profile, and the character model with automatically be updated.[/li]\r\n[li][b]Class[/b] – You can select any class you like, regardless of racial restrictions. See what your stats would be if you were a draenei druid![/li]\r\n[li][b]Gender[/b] – Select male or female to set your character\'s gender.[/li]\r\n[li][b]Icon[/b] – Icons are automatically generated for Armory characters and in game class/race combinations, but you can change the icon to any you like.[/li]\r\n[li][b]Description[/b] – Enter a tag line or brief description for the profile so you and others know what it is about.[/li]\r\n[li][b]Visibility[/b] – Public profiles will be visible on your user page and anyone can view a public profile. Private ones will not be displayed or visible to others.[/li]\r\n[/ul]\r\n[i]Note: If you edit a character in any way, it will become a custom profile. The reputations, achievements, and raid progress information will be removed.[/i]\r\n\r\n[h3]Managing Profiles[/h3]\r\nIn the upper right are a number of useful buttons for managing profiles without having to go back to your user page. Each of the buttons have several options that can be used to manage the character\'s page you are currently on and include the following options.\r\n\r\n[ul]\r\n[li][b]Custom Profile[/b]\r\n[ul][li][b]New[/b] – This is a quick link to creating a new, blank profile from scratch. It will open in a new window so you do not lose your current profile. This option is always available.[/li]\r\n[li][b]Save[/b] – Save any changes you have made to this profile. This option is only available for logged in users on profiles they own.[/li]\r\n[li][b]Save as[/b] – This will let you save your current changes under a new name. It is extremely useful for making copies of profiles! This option is only available for logged in users.[/li][/ul][/li]\r\n[li][b]Manage Character[/b]\r\n[ul][li][b]Resync[/b] – Request that the character be updated from the armory; it will be added to the queue. This option is only available on Armory character pages.[/li]\r\n[li][b]Claim character[/b] – Adds an Armory character to your user page. This is a good thing to do with all your alts. This option is only available for logged in users on Armory character pages.[/li]\r\n[li][b]Remove[/b] - Removes the character from your user page. Use this if you no longer play the character or have long since deleted it.[/li]\r\n[li][b]Pin/Unpin[/b] - Pin one of your characters so you can perform personalized searches throughout the database for missing or completed quests, achievements, recipes and more![/li]\r\n[/ul][/li]\r\n[/ul]\r\n\r\n[h3]From the User Page[/h3]\r\n[img src=static/images/help/profiler/userpage.gif float=right]All of your claimed Armory characters and custom profiles are listed in one convenient place on your user page. From the [b]Characters[/b] tab you can remove one or more claimed characters. The [b]Profiles[/b] tab allows you to create a new profile, delete profiles, or change the visibility settings of profiles. Your private profiles will not be visible to anyone else.\r\n\r\n[i]Tip: When you are logged in, all of your characters and custom profiles can be accessed from the [b]My profiles[/b] menu at the top right of any page![/i][pad]\r\n[h3]Saving Your Work[/h3]\r\nAny profile can be edited, even if you don\'t own it, but you\'ll probably want to save your work when you\'re done! You must have an account with us in order to save a profile. Once you\'ve created an account, you can bookmark any number of Armory characters and save up to 10 custom profiles. Premium users will be able to create even more, so upgrade if 10 just isn\'t enough! You can use the red buttons to save a profile from its page, and manage your existing profiles and characters from your user page. \r\n\r\n[/tab]\r\n\r\n[tab name="Inventory and talents"]\r\n[img src=static/images/help/profiler/character.jpg height=300 float=right]The main tab for a profile is the character inventory, which includes a lot of the same information you would see by looking at your character pane in game. This tab is broken up into four key sections - the character view, quick facts box, statistics, and gear summary.\r\n\r\n[h3]Character View[/h3]\r\nThe first thing you\'ll notice, of course, is your character – as rendered by our custom built modelviewer, in all it\'s three-dimensional glory. You can turn the character with your mouse, and zoom in and out using the A and Z keys, just like the modelviewer elsewhere in the site. [b]We even pull your face, hair, and skin color information from the Armory![/b]\r\n\r\nOn either side of the character are inventory icons which you can right click on for a menu of options:\r\n\r\n[i]Tip: You can remove a gem or enchant by clicking None in the picker window or by right clicking on it in the gear summary.[/i]\r\n\r\n[ul]\r\n[li][img src=static/images/help/profiler/itemmenu.gif float=right][b]Equip... / Replace...[/b] – Selecting this option will give you a quick search box in which you can type an item\'s name. Click on the item or hit return to equip it.\r\nUnequip – Unequips the item, of course. :)[/li]\r\n[li][b]Add / Replace enchant...[/b] – The spell icon on the left shows if the item is enchanted. This opens a customized picker window with all enchants available for the item slot.[/li]\r\n[li][b]Add / Replace gem...[/b] – The icon on the left shows the socket color or socketed gem. Like the enchants, this opens a picker window with valid gems for the socket.[/li]\r\n[li][b]Extra socket[/b] – The check mark on the left indicates if a blacksmithing socket has been added to this item. Click to toggle on or off.[/li]\r\n[li][b]Clear Enhancements[/b] - This will remove all reforges, enchantments, gems and extra sockets from an item. Useful if you want to start fresh with an item.[/li]\r\n[li][b]Display on character[/b] – The checkmark on the left indicates if the item is displayed on the model. Click to toggle on or off – it works for more than just cloaks and helms![/li]\r\n[li][b]Compare[/b] – Adds the item to the [url=/?compare]item comparison tool[/url] and opens it in a new window to compare with other items.[/li]\r\n[li][b]Find upgrades[/b] – Uses our [url=/?help=stat-weighting]weighted search[/url] to find upgrades based on your talent spec.[/li]\r\n[li][b]Who wears this?[/b] – Creates a filtered list of other Armory characters who are also wearing the item.[/li]\r\n[/ul]\r\n\r\n[i]Tip: Items that can take enchantments but have no enchantment, or which have empty sockets, will even have a little notification in the tooltip![/i]\r\n\r\n[img src=static/images/help/profiler/quickfacts.gif float=right][h3]Quick Facts Box[/h3]\r\nOn the right hand side is a handy Quick Facts box that displays basic, defining information about a profile. This box is chock full of useful information, including talent spec, achievement points, and professions.\r\n\r\n[i]Tip: Any raid icon that\'s ringed in [color=c4]gold[/color] is a raid that the character has cleared![/i]\r\n[h3]Statistics[/h3]\r\nYou\'ll also notice that all of a profile\'s statistics are laid out beneath the character view. This is also all information you can get from the Armory (and then some), but we lay it out in a nice, convenient page so you can view it all at once – no more messing with drop down menus. You can also click on a statistic and expand it so you can see its tooltip information right there on the page—or click on the header to expand all the related statistics. Your statistics are updated as you edit any part of a profile, including race, class, level, items, enhancements, or talents – all in real time! [b]Statistic modifications from glyphs and buffs are not presently supported, but will be in the future.[/b]\r\n\r\n[i]Note: These statistics are calculated manually – they are not pulled from the Armory. Statistics calculations are still in beta and will ironed out as we go.[/i]\r\n\r\n[img src=static/images/help/profiler/statistics.gif float=center]\r\n\r\n[h3]Gear Summary[/h3]\r\n[div float=right align=right][img src=static/images/help/profiler/gearsummary.gif]\r\n[small]A warning message is displayed for missing enhancements.[/small][/div]Last on the character inventory tab, but not least, is the gear summary. This is a personalized list of all items worn by the character, with convenient column headers and in line filtering options. Use it to see where most of a character\'s items come from, what is the best and worst piece, and whether or not there are missing gems and enchants. Just in case the empty icons aren\'t clear enough, a warning appears at the top of the list if a character is missing gems, enchants, or blacksmith sockets. This [color=q10]warning[/color] is based on the professions of the character if it is an Armory profile, and otherwise shows you everything missing on custom profiles.\r\n\r\nThe gems and enchants can also be edited from within the gear summary, and have a few additional options not available in the character view. You can remove or replace an enhancement from here, and you can find upgrades using our [url=/?help=stat-weighting]weighted search[/url] – just like items!\r\n\r\n[h3]Talents[/h3]\r\nThe talents tab includes an inline version of our [url=/?talent]talent calculator[/url] with a full display of a character\'s talents. It is locked by default, but you can unlock it to begin editing talents, just as you would normally. There are two extra features in the Profiler\'s talent calculator: you can store and swap between two specs for each character, and export the current talent build to the calculator to link to your friends. When you change your talents (or swap between specs) your gear score and statistics will be updates real time!\r\n\r\n[/tab]\r\n\r\n[tab name="Other tabs"]\r\n\r\n[h3]Reputation[/h3]\r\nThe reputation tab displays the complete faction information of an Armory character, with collapsible headers for each section. Its much easier to read than the tiny faction pane in game! Of course, you can link directly to the faction\'s page to get more information about that faction. \r\n[h3][img src=static/images/help/profiler/achievements.gif float=right]Achievements[/h3]\r\nThe achievements tab lists an Armory character\'s progress in each of the main achievement categories, and has a filterable list of achievements including date completed. All of the normal column and list filters are available, along with some new ones! You can filter the list by earned, in progress or complete achievements – complete are displayed by default – or click on any of the category progress bars to only display achievements from that category.\r\n\r\n[/tab]\r\n\r\n[tab name=Completion_Tracker]\r\n\r\n[img src=static/images/help/profiler/quests.jpg float=right width=450]Thanks to some fancy features in the [url=/client]Wowhead Client[/url] and Blizzard\'s [url=http://us.battle.net/wow/en/forum/2626217/]Community Platform API[/url], you can use the Profiler\'s [b]Completion Tracker[/b] feature to keep track of your quests, achievements, pets, mounts, recipes, and more!\r\n\r\n[h3]Getting Started[/h3]\r\n\r\nIn order to start tracking your completion data, all you need to do is visit your character\'s page on the profiler and resync it. This will automatically collect data about your character\'s completed achievements, companion pets, mounts, quests, recipes, reputations and titles.\r\n\r\n[h3][img src=static/images/help/profiler/completion.jpg float=right]Tracking Your Completion Data[/h3]\r\n\r\nOnce you\'ve got your data up on the site, it will be available in the form of five new tabs: [b]mounts[/b], [b]companions[/b], [b]recipes[/b], [b]quests[/b], and [b]titles[/b].\r\n\r\nIf you open the mounts, companions, or titles tabs, you\'ll immediately be greeted by a list of all the entries you\'ve already completed. You can cycle through the different tabs to see the ones you already have, the ones you still have yet to collect, a complete list, or a list of just the ones you\'ve "excluded" (more on that shortly). You can also use the "Search within results" box to search the list based on a keyword, just like you can with other search results in the database.\r\n\r\nThe recipe, and quest tabs, like the Achievements tab, contain more entries—so you\'ll be presented with a box like the one shown above. From there, all you have to do is click one of the progress bars to see the complete tabbed list in each category.\r\n\r\n[h3]Exclusions[/h3]\r\n\r\nWhen you\'re trying to make sure we check off every quest, achievement, or mount on our list, everyone knows that there are some that you just don\'t want to bother with. To that end, we\'ve created [b]exclusions[/b].\r\n\r\n[img src=static/images/help/profiler/exclusions.jpg float=right]Using exclusions, you can flag certain quests, mounts, achievements, recipes, pets, or titles that "don\'t count" toward your completion total. When you exclude (for example) a quest, that quest no longer appears in "incomplete" listings, and the total number of quests in that category is reduced by one.\r\n\r\n[b]For example:[/b] There are 632 quests in the "Eastern Kingdoms" category. If I were to decide that [quest=367] is for noobs and I don\'t want to count it, then all I have to do is put a check in the box next to the quest and click "Exclude". After I do so, the Eastern Kingdoms progress bar will only show [i]631[/i] quests total—the remaining quest will appear in the "Excluded" tab but won\'t be counted for anything else.\r\n\r\nIf you want to re-include a quest, just go to the "Excluded" tab and then use the checkboxes to restore as many as you like. You can do the same thing for achievements, titles, mounts, pets, or recipes.\r\n\r\nIf you [b]complete[/b] a quest that you have excluded, it will show in the progress bar as a [b]+1[/b]. Example: If there are 31 quests in the "Miscellaneous" category, and I\'ve completed 20 quests and excluded 1, the progress bar will show [b]20/30[/b]. If I have completed [i]the quest that I excluded[/i], then the progress bar will show [b]20(+1)/30[/b]. If I then go on to complete ALL the quests in that category (including the one I excluded), the progress bar will show [b]30(+1)/30[/b].\r\n\r\n[b]Exclusion Manager[/b]\r\nThe companions and mounts tabs let you manage your exclusions en masse with the Exclusion Manager. Just click the "Manage Exclusions" button on top of the tabs to see a list of convenient categories you might want to exclude. There\'s also a "reset all" button here to let you wipe all of your exclusions and start over.\r\n\r\n[b]Note:[/b] The Exclusion Manager is currently only available for companions and mounts.\r\n\r\n[i]Tip: Exclusions are tied to your account, not to a particular character. This is so even when you look at someone else\'s character, you\'re judging them by [/i]your[i] completion standards, not anyone else\'s![/i] \r\n\r\n[/tab]\r\n\r\n[tab name=Calculations]\r\n\r\nMost of the information we display is pretty straightforward. A lot of it, particularly the stats on items, is readily available in our database and on various tooltips. There are some new numbers on profile pages that you may ask, what does this number mean? How was it calculated?\r\n[h3]Base Statistics[/h3]\r\nA character\'s five base statistics are determined primarily by his or her class and level. This base amount has a modifier applied to it depending on the character\'s race. We gathered an extensive amount of data from the armory to come up with these base numbers, using untalented individuals of every race, class, and level combination. Because racial modifiers are consistent, we are able to create statistics for "fake" race and class combos using the data we already know. However, the Armory does not give data on characters below level 10 or Death Knights below level 55, so we have no statistic information for these profiles. To simplify things, we have set a minimum level for custom profiles based on the available statistics.\r\n[h3]Gear Score[/h3]\r\nOkay, so a lot of sites have gear scores. Most of them (ours included) are based around the [url=http://www.wowwiki.com/Item_level]item budget[/url] Blizzard uses to determine how much of each stat can be on an item. This budget is calculated using the item\'s level, quality, and slot, and we use the budget as the item\'s gear score. You can view a complete breakdown of an item\'s gear score by mousing over it in the [url=/?help=profiler#profiler-inventory-and-talents]gear summary[/url] at the bottom of the character tab. You can view a breakdown of a profile\'s total gear score by mousing over it in the Quick Facts box, also on the character tab.\r\n\r\nEach gear score is color coded based on the item levels of the gear in reference to the character level. [b][color=q0]Grey[/color][/b] for poor, [b][color=q1]White[/color][/b] for common, [b][color=q2]Green[/color][/b] for uncommon, [b][color=q3]Blue[/color][/b] for rare, [b][color=q4]Purple[/color][/b] for epic and [b][color=q5]Orange[/color][/b] for legendary. For example, a level 70 character wearing high item-level, raiding epics from [zone=3606] and [zone=3959] will have a purple-colored gearscore, as their items are considerably "epic" quality for their level. However, the same character at 80, if wearing this same gear, will have the gearscore colored blue as the items are of lower-than-optimal quality for their level.\r\n\r\nThe value of an empty socket was generated using the gear score of appropriate gems for the item in question, and subtracted from the item\'s score. This allows us to score unsocketed items lower than an item without sockets of the same level, quality, and slot. Items with better than expected gems will receive higher scores, and items with lower quality gems (or no gems at all) will receive lower scores.\r\n\r\nThe values of enchants are based off of the level of the enchantment. Endgame enchantments are 20 points, profession perks are 40 points, etc. The numbers go down from there.\r\n\r\nYou may notice that some profiles have different gear scores for the same item. There is an extreme difference in budget between a two-handed or one-handed weapon, which causes a discrepancy in scores between characters who should be fairly equal according to the level of their gear. To address this, the gear score of weapons has been normalized so that a character with appropriate weapon choices has the equivalent score of two two-handed weapons. Appropriate weapons are determined by your class and spec; for example, an enhancement shaman should dual wield one handed weapons, a protection warrior should have a one-hander and shield, etc. For classes which the melee weapons don\'t really matter – like hunters or spellcasters – anything they can use is considered appropriate.\r\n\r\n[i]Note: Gear score does not take into account the stats of the item. It is a measurement of quality of gear, not whether the stats on the gear are suited to the character\'s spec.[/i]\r\n\r\n[h3]Guild Scores[/h3]\r\nGuild gear scores and achievement points are derived using a weighted average of all of the known characters in that guild. Guilds with at least 25 level 80 players receive full benefit of the top 25 characters\' gear scores, while guilds with at least 10 level 80 characters receive a slight penalty, at least 1 level 80 a moderate penalty, and no level 80 characters a severe penalty. This is to prevent small guilds and bank alts from appearing to have higher scores than legitimate raiding guilds. Instead of being based on level, achievement point averages are based around 1,500 points, but the same penalties apply.\r\n\r\n[/tab]\r\n\r\n[/tabs]', NULL), + (-13, 4, 0, '[menu tab=2 path=2,13,4]Can\'t find the answer you were looking for? Just [url=/?aboutus#contact]contact us[/url], or post on our [url=/?forums&board=1]forums[/url]! \r\n\r\n[toc]\r\n\r\n[h2]General Usage[/h2]\r\n[ul]\r\n[li][screenshot url=static/images/help/talent-calculator/glyphs.jpg thumb=static/images/help/talent-calculator/glyphs2.jpg width=268 height=218 float=right][/screenshot][b]Selecting a class[/b] - Easily select a class\' talent tree by chosing from the class icon at the top, or from the dropdown menu. Clicking on a class\' name at the top left of the calculator will open that class\' page here on Wowhead, providing even more detailed information![/li] \r\n[li][b]Adding or removing talent points[/b] - To add points in a talent simply click the appropriate talent. To remove points, you can either right-click (or Shift+click) the talent.[/li]\r\n[li][b]Adding glyphs[/b] - Click on an empty glyph slot to open a picker window from which you can make your selection. To remove a glyph, simply right-click (or Shift+click) that glyph.[/li]\r\n[li][b]Linking to a build[/b] – Simply copy the auto-updating URL from your browser\'s address bar.[/li]\r\n[/ul]\r\n\r\n[h2]Tools + Options[/h2]\r\n[ul]\r\n[li][b]Reset all[/b] - Resets all talents across all trees.[/li]\r\n[li][img src=static/images/help/talent-calculator/options.jpg float=right][b]Reset tree[/b] - Clicking the red X at the top right corner of a talent tree will reset all talents in that particular tree. Other trees will not be reset.[/li]\r\n[li][b]Lock / Unlock[/b] - Locks or unlocks the talent build, preventing (or allowing) changes to be made. Linking to a build will automatically lock talents.[/li]\r\n[li][b]Import[/b] – Displays a pop-up text window where you can enter the URL of a talent build made with [url=http://www.wowarmory.com/talent-calc.xml]Blizzard\'s talent calculator[/url]. Be sure that you first select the "Link to this build" option in the Blizzard talent calculator so that the URL will be properly formatted for importing.[/li]\r\n[li][b]Print[/b] - Opens up a new, printer-friendly page with a textual representation of your chosen talents. Nice if you want to paste the talents you\'ve chosen somewhere, and would prefer it written out.[/li]\r\n[li][b]Link[/b] - Locks your chosen talents and creates a link to your build. Use this option to easily create a URL to share your build with others![/li]\r\n[/ul]\r\n\r\n[h2]Useful Tips[/h2]\r\n\r\n[ul]\r\n[li]When the calculator is locked, you can click talents and glyphs to view their corresponding spell or item page.[/li]\r\n[li]If you\'re building a third-party application, you can link to our talent calculator by using Blizzard-style URLs such as:\r\n[code]http://www.wowhead.com/talent#hunter-512002015051122431005311500053052002300100000000000000000000000000000000000000000[/code][/li]\r\n[/ul]', NULL), + (-13, 1, 0, '[menu tab=2 path=2,13,1]\r\n\r\n[url=item=35350][img src=static/images/help/modelviewer/ss-viewin3d.gif float=right][/url]Wowhead now has a model viewer that will let you see the items and NPCs in the game in full 3D!\r\n\r\nYou can use the dropdown menus to select which character model you want to display armor pieces on, and the model viewer will remember your choice.\r\n\r\nThere are two different versions of the model viewer available, one written in Flash, and the other one written in Java. Wowhead should remember which version you used last time, and will automatically open that model viewer the next time you click on the "View in 3D" button.\r\n\r\nIf you have any issues, please report them [url=/?forums&topic=202524]here[/url]!\r\n\r\n[i]Tip: You can close the box by clicking anywhere outside of the box.[/i]\r\n\r\n[h2]Modes[/h2]\r\n\r\n[tabs name=mode]\r\n\r\n[tab name=Flash]\r\n\r\n[url=item=34092][img src=static/images/help/modelviewer/ss-flash.png float=right][/url]The [b]Flash[/b] viewer is simple, quick to load, and should work on nearly all browsers. The Flash viewer is the default viewer, and all models will automatically load in the Flash Viewer unless you specify otherwise.\r\n\r\nIt requires the latest version of [url=http://www.adobe.com/go/BONRN]Flash[/url] to be installed on your computer.\r\n\r\n[h3]Controls[/h3]\r\n[ul]\r\n[li][b]Rotate[/b] – Click and drag / arrow keys[/li]\r\n[li][b]Zoom[/b] – Mousewheel / A & Z keys[/li]\r\n[/ul]\r\n\r\n[h3]Features[/h3]\r\n[ul]\r\n[li]Motion blur[/li]\r\n[li]Full screen mode[/li]\r\n[/ul]\r\n\r\n[/tab]\r\n\r\n[tab name=Java]\r\n\r\n[url=/?item=35350][img src=static/images/help/modelviewer/ss-java.png float=right][/url]The Java viewer is slower to initialize than the Flash Viewer, but once it\'s initialized it renders in [b]much greater[/b] detail. Most browsers will only need to initialize it once, and subsequent loads will be much faster. Some browsers may ask you to accept a security certificate when you initialize the viewer.\r\n\r\nIt requires the latest version of [url=http://jdl.sun.com/webapps/getjava/BrowserRedirect?locale=en&host=www.java.com]Java[/url] to be installed on your computer.\r\n\r\n[h3]Controls[/h3]\r\n[ul]\r\n[li][b]Rotate[/b] – Click and drag[/li]\r\n[li][b]Zoom[/b] – Mousewheel[/li]\r\n[li][b]Move[/b] – Right-click and drag[/li]\r\n[/ul]\r\n\r\n[h3]Features[/h3]\r\n[ul]\r\n[li]3D acceleration[/li]\r\n[li]Animations on NPCs, character models, small pets, and mounts[/li]\r\n[/ul]\r\n\r\n[/tab]\r\n\r\n[/tabs]\r\n', NULL), + (-10, 0, 0, '[menu tab=2 path=2,10]\r\n\r\n[div float=right align=right][url=http://wow.joystiq.com/2010/04/14/breakfast-topic-using-irl-irl/][img src=static/images/help/tooltips/ss-wowcom.png][/url]\r\n[small]Tooltips in action on [url=http://wow.joystiq.com/2010/04/14/breakfast-topic-using-irl-irl/]WoW Insider[/url][/small][/div]\r\n\r\nIt\'s never been easier to add tooltips to your site.\r\n\r\n[ol]\r\n[li]Add this piece of HTML code in the section of your page:\r\n[code][/code][/li]\r\n[li]You are done![/li]\r\n[/ol]\r\n\r\nLinks found on your site will now sport a [b]tooltip[/b] and an [b]icon[/b]. The following pages are supported: achievement, profile, item, npc, object, spell, quest. Icons show up by default, you can customize the colors of your links, and easily rename them!\r\n\r\nYou can check out this [url=STATIC_URL/widgets/power/demo.html]working demo[/url], and see how easy it is!\r\n\r\n[h2]Related[/h2]\r\n\r\n[tabs name=Related]\r\n\r\n[tab name="Advanced usage"]\r\n\r\nOnce you have the [/code]\r\n[/tab]\r\n\r\n[tab name="XML feeds"]\r\n\r\n[h3]Items[/h3]\r\nAlso available are our item XML feeds. Every item in the database has a corresponding XML feed. You can reach those feeds either by ID or by name. For example:\r\n\r\n[ul]\r\n[li]By ID: HOST_URL?item=52021&xml[/li]\r\n[li]By name: HOST_URL?item=iceblade%20arrow&xml[/li]\r\n[/ul]\r\n\r\n[/tab]\r\n\r\n[tab name="Other resources"]\r\n\r\nInterested in using our script in your forum? Check out [url=http://wowhead.com/forums&topic=3464]this thread[/url] for information on implementing it on many popular forum systems (phpBB, vBulletin, etc.) or check out the handy guides written by our users:\r\n\r\n[ul]\r\n[li][url=http://wowhead.com/forums&topic=3464#p37094]vBulletin[/url][/li]\r\n[li]phpBB: [url=http://wowhead.com/forums&topic=3464#p37492]2.x.x[/url] - [url=http://wowhead.com/forums&topic=3464.6#p58403]2.x.x Mod Version[/url] | [url=http://wowhead.com/forums&topic=14347&p=126922]3.0[/url] [small]by craCkpot[/small] - [url=http://wowhead.com/forums&topic=3464#p37204]3.0[/url] [small]by marcimi[/small] - [url=http://wowhead.com/forums&topic=3464.3#p42858]3.0 Mod Version[/url][/li]\r\n[li][url=http://wowhead.com/forums&topic=3464#p37618]Simple Machines Forum (SMF)[/url][/li]\r\n[li][url=http://wowhead.com/forums&topic=3464.3&p=4080#p40631]Invision Power Board (IPB)[/url][/li]\r\n[li][url=http://wowhead.com/forums&topic=3464.3&p=42952#p42952]WordPress Blog[/url] ([url=http://wowhead.com/forums&topic=3464.4#p43652]Plugin Version[/url])[/li]\r\n[li][url=http://wowhead.com/forums&topic=3464.7&p=63338#p61443]PHP Nuke-Evolution[/url][/li]\r\n[li][url=http://wowhead.com/forums&topic=3464.3#p43232]MyBB[/url][/li]\r\n[li][url=http://wowhead.com/forums&topic=3464.6#p48648]TikiWiki[/url][/li]\r\n[li][url=http://wowhead.com/forums&topic=3464.6#p49640]YaBB[/url][/li]\r\n[li][url=http://wowhead.com/forums&topic=3464.5#p46801]Drupal[/url][/li]\r\n[li][url=http://wowhead.com/forums&topic=3464.3#p42456]PunBB[/url][/li]\r\n[li][url=http://wowhead.com/forums&topic=10938]Dojo[/url][/li]\r\n[/ul]\r\n\r\n[/tab]\r\n\r\n[/tabs]', NULL), + (-16, 0, 0, '[menu tab=2 path=2,16]\r\n\r\nThe code below will produce an iframe that contains the Wowhead logo and a search box.\r\n\r\n[code]\r\n[/code]\r\n\r\n[h3]Parameters[/h3]\r\n\r\n[ul]\r\n[li][b]wowhead_searchbox_format[/b] – String that specifies how big the iframe should be. The following values can be used:\r\n[pad]\r\n[table width=100%]\r\n[tr]\r\n[td width=20% align=center valign=top]\r\n"160x200"\r\n[img src=STATIC_URL/images/help/searchbox/preview-160x200.png]\r\n[/td]\r\n[td width=20% align=center valign=top]\r\n"120x200"\r\n[img src=STATIC_URL/images/help/searchbox/preview-120x200.png]\r\n[/td]\r\n[td width=20% align=center valign=top]\r\n"160x120"\r\n[img src=STATIC_URL/images/help/searchbox/preview-160x120.png]\r\n[/td]\r\n[td width=20% align=center valign=top]\r\n"150x120"\r\n[img src=STATIC_URL/images/help/searchbox/preview-150x120.png]\r\n[/td]\r\n[td width=20% align=center valign=top]\r\n"120x120"\r\n[img src=STATIC_URL/images/help/searchbox/preview-120x120.png]\r\n[/td]\r\n[/tr]\r\n[/table]\r\n[/li]\r\n[/ul]\r\n\r\n[h3]Tips[/h3]\r\n\r\n[ul]\r\n[li]You can style the iframe (e.g. adding a border) by using the following class name in your CSS code:\r\n[code].aowow-searchbox { ... }[/code][/li]\r\n[/ul]', NULL), + (-8, 0, 0, '[menu tab=2 path=2,8]\r\n\r\n[div float=right align=right][img src=STATIC_URL/images/help/searchplugins/ss-searchsuggestions.png]\r\n[small]Also features search suggestions![/small]\r\n[/div]\r\n\r\nSearch plugins make it easy to search Wowhead right from your browser!\r\n\r\n[toc h3=false]\r\n\r\n[h2][img src=STATIC_URL/images/help/searchplugins/firefox.gif border=0 margin=5 float=left][img src=STATIC_URL/images/help/searchplugins/ie.gif border=0 float=left]Firefox / Internet Explorer[/h2]\r\n\r\n[div clear=left][/div]Click on the button below to install the Wowhead search plugin in your browser.\r\n\r\n[pad]\r\n\r\n[script]\r\nfunction addPlugin()\r\n{\r\n try {\r\n if(!$.browser.msie && !$.browser.mozilla) {\r\n throw(\'FAIL\');\r\n }\r\n\r\n loc = g_locale.id ? \'-\' + g_locale.name.substr(0,2) : \'\';\r\n window.external.AddSearchProvider(\'STATIC_URL/download/searchplugins/aowow\' + loc + \'.xml\');\r\n }\r\n catch(e)\r\n {\r\n alert(\'This feature is only for Firefox 2+ and Internet Explorer 7+.\');\r\n }\r\n}\r\n[/script]\r\n\r\n[html]Install pluginInstall plugin[/html]\r\n\r\n[div clear=left][/div][pad]\r\n\r\n[h2][img src=STATIC_URL/images/help/searchplugins/opera.gif border=0 float=left]Opera[/h2]\r\n\r\n[div clear=left][/div]\r\n\r\n[ul]\r\n[li]Right-click on the search box on the [url=/]homepage[/url].[/li]\r\n[li]Select "Create Search" in the menu.[/li]\r\n[li]Fill the form as follows:\r\n[pad]\r\n[img src=STATIC_URL/images/help/searchplugins/ss-opera.png border=0]\r\n[pad][/li]\r\n[li]Save your changes, and you\'ll be able to perform Wowhead searches by typing "wh" followed by the search terms in the address bar (e.g. wh sword).[/li]\r\n[/ul]\r\n', NULL), + (-3, 0, 0, '[small]no questions have been asked yet[/small]\r\n\r\nbesides .. yes, i\'m insane.', NULL), + (-7, 0, 0, '[small]this page for example[/small]', NULL), + (0, 0, 0, '[h3]This is [s]Sparta![/s] [u]Aowow[/u][/h3]\r\n\r\nA project for private servers to sensibly display the vast amount of data a private server contains.\r\n\r\nBuilt with TrinityCore in my neck, but i\'m trying to get away from that .. some time.\r\nWith it\'s own data structure it shouldn\'t be too hard to write a converter for MaNGOS\r\n\r\nThe expected version is 3.3.5 (12340), everything else will get messy.', NULL); + +REPLACE INTO `aowow_announcements` (`id`, `page`, `name`, `style`, `mode`, `status`, `text_loc0`, `text_loc2`, `text_loc3`, `text_loc6`, `text_loc8`) VALUES + (4, 'compare', 'Help: Item Comparison Tool', 'padding-left: 55px; background-image: url(static/images/announcements/help-small.png); background-position: 10px center', 1, 1, 'First time? - Don\'t be shy! Just check out our [url=?help=item-comparison]Help page[/url]!', 'Première visite? - Ne soyez pas intimidé! Vous n\'avez qu\'à lire notre [url=?help=item-comparison]page d\'aide[/url] !', 'Euer erstes Mal? Nur keine falsche Scheu! Schaut einfach auf unsere [url=?help=item-comparison]Hilfeseite[/url]!', '¿Tu primera vez? ¡No seas vergonzoso! !Mira nuestra [url=?help=item-comparison]página de ayuda[/url]!', 'Впервые? Не стесняйтесь посетить нашу [url=?help=item-comparison]справочную страницу[/url]!'), + (3, 'profile', 'Quick Help: Profiler', 'padding-left: 80px; background-image: url(static/images/announcements/help-large.gif); background-position: 10px center', 1, 1, '[h3]First Time?[/h3]\n\nThe [b]Profiler[/b] lets you [span class=tip title="e.g. See how\'d you look as a different race!"]edit your character[/span], find gear upgrades, check your gear score, and more!\n\n[ul]\n[li][b]Right-click[/b] slots to change items, add gems/enchants, or find upgrades.[/li]\n[li]Use the [b]Claim character[/b] button to add your own characters to your [url=?user]user page[/url].[/li]\n[li]Save a modified character to your Wowhead account by using the [b]Save as[/b] button.[/li]\n[li][b]Statistics[/b] will update in real time as you make tweaks.[/li]\n[/ul]\n\nFor more information, check out our extensive [b][url=?help=profiler]help page[/url][/b]!', '', '', '', ''); diff --git a/static/css/global.css b/static/css/global.css index 67e6b9f6..52924d72 100644 --- a/static/css/global.css +++ b/static/css/global.css @@ -50,6 +50,7 @@ pre.code line-height: normal; font-family: 'Bitstream Vera Sans Mono','Lucida Console','Courier New', Monaco, Courier, monospace; overflow: auto; + white-space:pre-wrap; } div.quote @@ -950,6 +951,13 @@ span.menu-buttons span.hassubmenu { } /* end note */ +.tabs, .text ul.tabs, ul.tabs +{ + margin: 0; + padding: 0; + list-style-type: none; +} + .tabs li { float: left; @@ -957,9 +965,20 @@ span.menu-buttons span.hassubmenu { height: 30px; } +.tabs li a div, .tabs li a b +{ + color: #FFD100; +} + +.tabs li a.selected div, .tabs li a:hover div, .tabs li a.selected b, .tabs li a:hover b +{ + color: white; +} + .tabs a { float: left; + font-size: 13px; position: relative; display: block; height: 29px; @@ -969,6 +988,18 @@ span.menu-buttons span.hassubmenu { border-bottom: 1px solid #282828; } +.tabs a:hover +{ + background-color: #383838; + border-bottom: 1px solid #303030; +} + +.tabs a.selected, .tabs a.selected:hover +{ + background-color: #404040; + border-bottom: 1px solid #404040; +} + .tabs b { padding: 0 5px; @@ -1012,13 +1043,15 @@ span.menu-buttons span.hassubmenu { .tabs-level ul { position: absolute; - left: 0; + left: 0 !important; + margin: 0px !important; + padding-left: 0px !important; } .tabbed-contents { border: 1px solid #404040; - border-top-width: 3px; + border-top-width: 2px; background-color: #141414; padding: 8px; clear: both; @@ -3230,13 +3263,13 @@ a.captcha:hover div.captcha-center { - width: 318px; - margin: 0 auto; + width: 318px; + margin: 0 auto; } #recaptcha_instructions_image { - color: #cccccc; + color: #cccccc; } h1.h1-icon diff --git a/static/download/searchplugins/aowow.xml b/static/download/searchplugins/aowow.xml new file mode 100644 index 00000000..6cbe630b --- /dev/null +++ b/static/download/searchplugins/aowow.xml @@ -0,0 +1,19 @@ + + + +Aowow +Aowowo Search Plugin + + + + +http://aowow.dyndns.org/static/images/logos/favicon.ico +http://aowow.dyndns.org/static/images/icons/favicon.gif + + \ No newline at end of file diff --git a/static/images/help/profiler/completion.jpg b/static/images/help/profiler/completion.jpg new file mode 100644 index 00000000..7147a482 Binary files /dev/null and b/static/images/help/profiler/completion.jpg differ diff --git a/static/images/help/profiler/completion2.jpg b/static/images/help/profiler/completion2.jpg new file mode 100644 index 00000000..28f67bc6 Binary files /dev/null and b/static/images/help/profiler/completion2.jpg differ diff --git a/static/images/help/profiler/exclusions.jpg b/static/images/help/profiler/exclusions.jpg new file mode 100644 index 00000000..a7bb2276 Binary files /dev/null and b/static/images/help/profiler/exclusions.jpg differ diff --git a/static/images/help/profiler/exclusions2.jpg b/static/images/help/profiler/exclusions2.jpg new file mode 100644 index 00000000..7d5e1bc7 Binary files /dev/null and b/static/images/help/profiler/exclusions2.jpg differ diff --git a/static/images/help/profiler/quests.jpg b/static/images/help/profiler/quests.jpg new file mode 100644 index 00000000..db427106 Binary files /dev/null and b/static/images/help/profiler/quests.jpg differ diff --git a/static/images/help/profiler/quests2.jpg b/static/images/help/profiler/quests2.jpg new file mode 100644 index 00000000..83e9fb68 Binary files /dev/null and b/static/images/help/profiler/quests2.jpg differ diff --git a/static/images/help/screenshots/armor.jpg b/static/images/help/screenshots/armor.jpg new file mode 100644 index 00000000..3a10155e Binary files /dev/null and b/static/images/help/screenshots/armor.jpg differ diff --git a/static/images/help/screenshots/armor2.jpg b/static/images/help/screenshots/armor2.jpg new file mode 100644 index 00000000..3843f3ce Binary files /dev/null and b/static/images/help/screenshots/armor2.jpg differ diff --git a/static/images/help/screenshots/hinterlands.jpg b/static/images/help/screenshots/hinterlands.jpg new file mode 100644 index 00000000..d2d47f64 Binary files /dev/null and b/static/images/help/screenshots/hinterlands.jpg differ diff --git a/static/images/help/screenshots/hinterlands2.jpg b/static/images/help/screenshots/hinterlands2.jpg new file mode 100644 index 00000000..c7953a8c Binary files /dev/null and b/static/images/help/screenshots/hinterlands2.jpg differ diff --git a/static/images/help/screenshots/npc.jpg b/static/images/help/screenshots/npc.jpg new file mode 100644 index 00000000..333d3b76 Binary files /dev/null and b/static/images/help/screenshots/npc.jpg differ diff --git a/static/images/help/screenshots/npc2.jpg b/static/images/help/screenshots/npc2.jpg new file mode 100644 index 00000000..5528424e Binary files /dev/null and b/static/images/help/screenshots/npc2.jpg differ diff --git a/static/images/help/searchbox/preview-120x120.png b/static/images/help/searchbox/preview-120x120.png new file mode 100644 index 00000000..00e06747 Binary files /dev/null and b/static/images/help/searchbox/preview-120x120.png differ diff --git a/static/images/help/searchbox/preview-120x200.png b/static/images/help/searchbox/preview-120x200.png new file mode 100644 index 00000000..f7b0f2c2 Binary files /dev/null and b/static/images/help/searchbox/preview-120x200.png differ diff --git a/static/images/help/searchbox/preview-150x120.png b/static/images/help/searchbox/preview-150x120.png new file mode 100644 index 00000000..efd610da Binary files /dev/null and b/static/images/help/searchbox/preview-150x120.png differ diff --git a/static/images/help/searchbox/preview-160x120.png b/static/images/help/searchbox/preview-160x120.png new file mode 100644 index 00000000..52341d70 Binary files /dev/null and b/static/images/help/searchbox/preview-160x120.png differ diff --git a/static/images/help/searchbox/preview-160x200.png b/static/images/help/searchbox/preview-160x200.png new file mode 100644 index 00000000..b65c1e17 Binary files /dev/null and b/static/images/help/searchbox/preview-160x200.png differ diff --git a/static/images/help/searchplugins/firefox.gif b/static/images/help/searchplugins/firefox.gif new file mode 100644 index 00000000..b0f69e3a Binary files /dev/null and b/static/images/help/searchplugins/firefox.gif differ diff --git a/static/images/help/searchplugins/ie.gif b/static/images/help/searchplugins/ie.gif new file mode 100644 index 00000000..8399d3bb Binary files /dev/null and b/static/images/help/searchplugins/ie.gif differ diff --git a/static/images/help/searchplugins/opera.gif b/static/images/help/searchplugins/opera.gif new file mode 100644 index 00000000..d058152e Binary files /dev/null and b/static/images/help/searchplugins/opera.gif differ diff --git a/static/images/help/searchplugins/ss-opera.png b/static/images/help/searchplugins/ss-opera.png new file mode 100644 index 00000000..7e67140f Binary files /dev/null and b/static/images/help/searchplugins/ss-opera.png differ diff --git a/static/images/help/searchplugins/ss-searchsuggestions.png b/static/images/help/searchplugins/ss-searchsuggestions.png new file mode 100644 index 00000000..d3e17ae2 Binary files /dev/null and b/static/images/help/searchplugins/ss-searchsuggestions.png differ diff --git a/static/images/help/talent-calculator/glyphs.jpg b/static/images/help/talent-calculator/glyphs.jpg new file mode 100644 index 00000000..e4ea0fe4 Binary files /dev/null and b/static/images/help/talent-calculator/glyphs.jpg differ diff --git a/static/images/help/talent-calculator/glyphs2.jpg b/static/images/help/talent-calculator/glyphs2.jpg new file mode 100644 index 00000000..5279f699 Binary files /dev/null and b/static/images/help/talent-calculator/glyphs2.jpg differ diff --git a/static/images/help/talent-calculator/options.jpg b/static/images/help/talent-calculator/options.jpg new file mode 100644 index 00000000..a84a2b08 Binary files /dev/null and b/static/images/help/talent-calculator/options.jpg differ diff --git a/static/images/help/tooltips/ss-wowcom.png b/static/images/help/tooltips/ss-wowcom.png new file mode 100644 index 00000000..54cd3186 Binary files /dev/null and b/static/images/help/tooltips/ss-wowcom.png differ diff --git a/static/images/logos/medium.gif b/static/images/logos/medium.gif new file mode 100644 index 00000000..920a3a44 Binary files /dev/null and b/static/images/logos/medium.gif differ diff --git a/static/js/Markup.js b/static/js/Markup.js index 3bebafd9..f6b08e1f 100644 --- a/static/js/Markup.js +++ b/static/js/Markup.js @@ -950,7 +950,7 @@ var Markup = { else if(attr.id) str += ' src="' + g_staticUrl + '/uploads/screenshots/' + (attr.size ? attr.size : 'normal') + '/' + attr.id + '.jpg"'; else if(attr.icon) - str += ' src="' + g_staticUrl + '/images/icons/wow/' + (attr.size ? attr.size : 'large') + '/' + attr.icon + '.jpg"'; + str += ' src="' + g_staticUrl + '/images/wow/icons/' + (attr.size ? attr.size : 'large') + '/' + attr.icon + '.jpg"'; else if(attr.blog) { if(g_blogimages[attr.blog]) @@ -1338,7 +1338,7 @@ var Markup = { toHtml: function(attr) { var path = attr.path.split(','); - PageTemplate.set({activeTab: attr.tab, breadcrumb: path}); + // sarjuuk: nyi :( PageTemplate.set({activeTab: attr.tab, breadcrumb: path}); } }, minibox: diff --git a/static/js/global.js b/static/js/global.js index 51aad29b..3a400d4a 100644 --- a/static/js/global.js +++ b/static/js/global.js @@ -390,7 +390,7 @@ function g_createHeader(c) { ]); break; case 2: - Menu.addButtons(b, Menu.explode(mn_more)); + Menu.addButtons(b, Menu.implode(mn_more)); break; case 5: pr_initTopBarSearch(); @@ -17428,7 +17428,7 @@ var ScreenshotViewer = new function() { container.style.visiblity = 'visible'; }, 150); - loadingImage = new Ima$WH.ge(); + loadingImage = new Image(); loadingImage.onload = (function(screen, timer) { clearTimeout(timer); screen.width = this.width; diff --git a/static/js/locale_dede.js b/static/js/locale_dede.js index 5f956624..21d85881 100644 --- a/static/js/locale_dede.js +++ b/static/js/locale_dede.js @@ -866,7 +866,7 @@ var mn_community = [ [5,"Twitter-Seite","http://twitter.com",null,{tinyIcon:"static/images/icons/twitter.gif"}] ]; var mn_more = [ - [,"Alles über Wowhead"], + [,"Alles über AoWoW"], [0,"Über uns & Kontakt","?aboutus"], [3,"FAQ","?faq"], [13,"Hilfe",,[ @@ -880,8 +880,9 @@ var mn_more = [ ]], [7,"Was gibt's Neues?","?whats-new"], [,"Tolle Sachen"], - [10,"Tooltips","?tooltips"], + [16,"Suchbox","?searchbox"], [8,"Such-Plugins","?searchplugins"], + [10,"Tooltips","?tooltips"] ]; var mn_path = [ [0,"Datenbank",,mn_database], diff --git a/static/js/locale_enus.js b/static/js/locale_enus.js index cd49ed97..a4bc7a34 100644 --- a/static/js/locale_enus.js +++ b/static/js/locale_enus.js @@ -912,7 +912,7 @@ var mn_community = [ [5,"Twitter Page","http://twitter.com",null,{tinyIcon:"static/images/icons/twitter.gif"}] ]; var mn_more = [ - [,"All About Wowhead"], + [,"All About AoWoW"], [0,"About Us & Contact","?aboutus"], [3,"FAQ","?faq"], [13,"Help",,[ @@ -926,8 +926,9 @@ var mn_more = [ ]], [7,"What's New","?whats-new"], [,"Goodies"], - [10,"Tooltips","?tooltips"], - [8,"Search Plugins (FF, IE7, ...)","?searchplugins"] + [16, "Search Box","?searchbox"], + [8,"Search Plugins (FF, IE7, ...)","?searchplugins"], + [10,"Tooltips","?tooltips"] ]; var mn_path = [ [0,"Database",,mn_database], diff --git a/static/js/locale_eses.js b/static/js/locale_eses.js index a1abb27f..367fa810 100644 --- a/static/js/locale_eses.js +++ b/static/js/locale_eses.js @@ -866,7 +866,7 @@ var mn_community = [ [5,"Página de Twitter","http://twitter.com",null,{icon:"static/images/icons/twitter.gif"}] ]; var mn_more = [ - [,"Todo sobre Wowhead"], + [,"Todo sobre AoWoW"], [0,"Acerca de nosotros","?aboutus"], [3,"Preguntas frecuentes","?faq"], [13,"Ayuda",,[ @@ -880,8 +880,9 @@ var mn_more = [ ]], [7,"Novedades","?whats-new"], [,"Extras para tu sitio"], + [16, "Caja de búsqueda", "?searchbox"], [8,"Extensiones de búsqueda","?searchplugins"], - [10,"Tooltips","?tooltips"], + [10,"Tooltips","?tooltips"] ]; var mn_path = [ [0,"Base de datos",,mn_database], diff --git a/static/js/locale_frfr.js b/static/js/locale_frfr.js index b25cadc6..01bfe83d 100644 --- a/static/js/locale_frfr.js +++ b/static/js/locale_frfr.js @@ -866,7 +866,7 @@ var mn_community = [ [5,"Page Twitter","http://twitter.com",null,{icon:"static/images/icons/twitter.gif"}] ]; var mn_more = [ - [,"Tout sur Wowhead"], + [,"Tout sur AoWoW"], [0,"À propos / contact","?aboutus"], [3,"FAQ","?faq"], [13,"Aide",,[ @@ -880,6 +880,7 @@ var mn_more = [ ]], [7,"Quoi de neuf?","?whats-new"], [,"Extras pour votre site"], + [16,"Boîte de recherche", "?searchbox"], [8,"Plug-ins de recherche","?searchplugins"], [10,"Tooltips","?tooltips"] ]; diff --git a/static/js/locale_ruru.js b/static/js/locale_ruru.js index c5115f06..1c43710e 100644 --- a/static/js/locale_ruru.js +++ b/static/js/locale_ruru.js @@ -866,7 +866,7 @@ var mn_community = [ [5,"Twitter","http://twitter.com",null,{icon:"static/images/icons/twitter.gif"}] ]; var mn_more = [ - [,"О Wowhead"], + [,"О AoWoW"], [0,"Контакты","?aboutus"], [3,"ЧаВо","?faq"], [13,"Справка",,[ @@ -881,6 +881,7 @@ var mn_more = [ [7,"Новости","?whats-new"], [,"Для вашего сайта"], [8,"Дополнения для браузеров","?searchplugins"], + [16,"Окно поиска","?searchbox"], [10,"Всплывающие подсказки","?tooltips"] ]; var mn_path = [ diff --git a/power/aowowPower.js b/static/widgets/power.js similarity index 67% rename from power/aowowPower.js rename to static/widgets/power.js index bac407a5..3db0ed47 100644 --- a/power/aowowPower.js +++ b/static/widgets/power.js @@ -1,16 +1,15 @@ if (typeof $WH == "undefined") { - $WH = { - wowheadRemote: true - } + $WH = { wowheadRemote: true }; /* custom */ for (i in document.scripts) { if (!document.scripts[i].src) continue; - var match = document.scripts[i].src.match(/(.*)\/power\/aowowPower.js/i); + var match = document.scripts[i].src.match(/(https?:\/\/[^\/]+)((\/[\w\d-_%]+)*)\/widgets\/power\.js/i); if (match) { - var g_host = match[1]; + var g_host = match[1]; + var g_staticUrl = match[1] + match[2]; break; } } @@ -20,21 +19,23 @@ if (typeof $WowheadPower == "undefined") { var $WowheadPower = new function () { var isRemote = $WH.wowheadRemote; var - opt = { - applyto: 3 - }, + opt = { applyto: 3 }, head = document.getElementsByTagName("head")[0], + whcss, currentType, currentId, currentLocale, currentDomain, currentParams, currentA, + cursorX, cursorY, + mode = 0, - t, y, ag, A, Z, ab = 1, + eventAttached = false, + npcs = {}, objects = {}, items = {}, @@ -42,70 +43,120 @@ if (typeof $WowheadPower == "undefined") { spells = {}, achievements = {}, profiles = {}, + showLogo = 1, - STATUS_NONE = 0, + + STATUS_NONE = 0, STATUS_QUERYING = 1, - STATUS_ERROR = 2, + STATUS_ERROR = 2, STATUS_NOTFOUND = 3, - STATUS_OK = 4, - STATUS_SCALES = 5, - TYPE_NPC = 1, - TYPE_OBJECT = 2, - TYPE_ITEM = 3, - TYPE_QUEST = 5, - TYPE_SPELL = 6, + STATUS_OK = 4, + STATUS_SCALES = 5, + + SCALES_NONE = 0, + SCALES_LOADED = 1, + SCALES_QUERYING = 2, + + TYPE_NPC = 1, + TYPE_OBJECT = 2, + TYPE_ITEM = 3, + TYPE_QUEST = 5, + TYPE_SPELL = 6, TYPE_ACHIEVEMENT = 10, - TYPE_PROFILE = 100, + TYPE_PROFILE = 100, + CURSOR_HSPACE = 15, CURSOR_VSPACE = 15, + _LANG = { loading: "Loading...", noresponse: "No response from server :(", achievementcomplete: "Achievement earned by $1 on $2/$3/$4" }, LOOKUPS = { - 1 : [npcs, "npc", "NPC"], - 2 : [objects, "object", "Object"], - 3 : [items, "item", "Item"], - 5 : [quests, "quest", "Quest"], - 6 : [spells, "spell", "Spell"], - 10 : [achievements, "achievement", "Achievement"], - 100 : [profiles, "profile", "Profile"] + 1: [npcs, "npc", "NPC" ], + 2: [objects, "object", "Object" ], + 3: [items, "item", "Item" ], + 5: [quests, "quest", "Quest" ], + 6: [spells, "spell", "Spell" ], + 10: [achievements, "achievement", "Achievement"], + 100: [profiles, "profile", "Profile" ] }, SCALES = { - 3 : { - url: "?data=item-scaling" - } + 3: { url: "?data=item-scaling" } }, LOCALES = { - 0 : "enus", - 2 : "frfr", - 3 : "dede", - 6 : "eses", - 8 : "ruru" + 0: "enus", + 2: "frfr", + 3: "dede", + 6: "eses", + 8: "ruru" }, REDIRECTS = { wotlk: "www", - ptr: "www" + ptr: "www" }; if (isRemote) { - var Locale = { - id: 0, - name: "enus" - }; + var Locale = { id: 0, name: "enus" }; } function init() { if (isRemote) { var script = document.createElement("script"); - // script.src = "http://static.wowhead.com/js/basic.js?4"; + // script.src = (document.location.protocol != "https:" ? "http:": document.location.protocol) + "//wowjs.zamimg.com/js/basic.js?5"; script.src = g_host + "/static/js/basic.js"; head.appendChild(script); } else { attachEvent(); } + + for (var type in SCALES) { + for (var localeId in LOCALES) { + SCALES[type][localeId] = SCALES_NONE + } + } + } + + function initCSS() { + if (typeof aowow_tooltips == "undefined") { + return; + } + + if (!("hide" in aowow_tooltips)) { + return; + } + + if (typeof whcss != "undefined") { + return; + } + + if (!document.styleSheets) { + return + } + + var style = document.createElement("style"); + style.type = "text/css"; + head.appendChild(style); + + if (!window.createPopup) { + head.appendChild(document.createTextNode("")); + } + + whcss = document.styleSheets[document.styleSheets.length - 1]; + for (var k in aowow_tooltips.hide) { + if (!aowow_tooltips.hide[k]) { + continue; + } + + if (whcss.insertRule) { + whcss.insertRule(".wowhead-tooltip .whtt-" + k + "{display : none}", whcss.cssRules.length); + } + else if (whcss.addRule) { + whcss.addRule(".wowhead-tooltip .whtt-" + k, "display : none", -1); + } + } } function attachEvent() { @@ -117,11 +168,19 @@ if (typeof $WowheadPower == "undefined") { $WH.aE(document, "mouseover", onMouseOver); } + function onDOMReady(func) { + if (typeof jQuery != "undefined") { + jQuery(func); + return + } + /in/.test(document.readyState) ? setTimeout(onDOMReady.bind(null, func), 9) : func(); + } + this.init = function () { if (isRemote) { $WH.ae(head, $WH.ce("link", { type: "text/css", - // href: "http://static.wowhead.com/css/basic.css?4", + // href: (document.location.protocol != "https:" ? "http:": document.location.protocol) + "//wowcss.zamimg.com/css/basic.css?5", href: g_host + "/static/css/basic.css", rel: "stylesheet" })); @@ -145,6 +204,17 @@ if (typeof $WowheadPower == "undefined") { } } attachEvent(); + + onDOMReady(function () { + if (typeof aowow_tooltips != "undefined") { + for (var i = 0; i < document.links.length; i++) { + var link = document.links[i]; + scanElement(link); + } + + initCSS(); + } + }); }; function updateCursorPos(e) { @@ -158,10 +228,6 @@ if (typeof $WowheadPower == "undefined") { return -2323; } - if (!t.href.length) { - return; - } - if (!t.href.length && !t.rel) { return; } @@ -195,14 +261,20 @@ if (typeof $WowheadPower == "undefined") { else if (k == "when") { params[k] = new Date(parseInt(v)); } + else if (k == "premium") { + params[k] = true; + } + else if (k == "text") { + params[k] = true; + } }; if (opt.applyto & 1) { i1 = 2; i2 = 3; - if (t.href.indexOf("http://") == 0) { + if (t.href.indexOf("http://") == 0 || t.href.indexOf("https://") == 0) { i0 = 1; - // url = t.href.match(/^http:\/\/(.+?)?\.?wowhead\.com\/\?(item|quest|spell|achievement|npc|object)=([0-9]+)/); + // url = t.href.match(/^https?:\/\/(.+?)?\.?wowhead\.com(?:\:\d+)?\/\??(item|quest|spell|achievement|npc|object)=([0-9]+)/); url = t.href.match(/^http:\/\/(.*)\/\??(item|quest|spell|achievement|npc|object)=([0-9]+)/); if (url == null) { // url = t.href.match(/^http:\/\/(.+?)?\.?wowhead\.com\/\?(profile)=([^&#]+)/) @@ -249,10 +321,8 @@ if (typeof $WowheadPower == "undefined") { if (i == 0) { delete params.gems; } - else { - if (i < params.gems.length) { - params.gems = params.gems.slice(0, i); - } + else if (i < params.gems.length) { + params.gems = params.gems.slice(0, i); } } @@ -266,6 +336,7 @@ if (typeof $WowheadPower == "undefined") { domain = params.domain; } else if (i0 && url[i0]) { + // domain = url[i0]; domain = url[i0].split(".")[0]; } @@ -296,7 +367,7 @@ if (typeof $WowheadPower == "undefined") { return; } - mode = ((t.parentNode.className.indexOf("icon") == 0 && t.parentNode.nodeName == "DIV") ? 1 : 0); + mode = t.parentNode.className.indexOf("icon") == 0 && t.parentNode.nodeName == "DIV" ? 1 : 0; if (!t.onmouseout) { if (mode == 0) { t.onmousemove = onMouseMove; @@ -312,11 +383,46 @@ if (typeof $WowheadPower == "undefined") { type = $WH.g_getIdFromTypeName(url[i1]), typeId = url[i2]; - if (type == TYPE_PROFILE) { - locale = 0; + display(type, typeId, locale, params); + + if (e || typeof aowow_tooltips == "undefined") { + return; } - display(type, typeId, locale, params); + var data = LOOKUPS[type][0][getFullId(typeId, params)]; + + var timeout = function (t) { + if (data.status[locale] != STATUS_OK && data.status[locale] != STATUS_NOTFOUND) { + window.setTimeout(function () { + timeout(t); + }, 5); + + return; + } + + if (aowow_tooltips.renamelinks) { + eval("name = data.name_" + LOCALES[locale]); + if (name) { + t.innerHTML = '' + name + ''; + } + } + + if (aowow_tooltips.iconizelinks && (type == TYPE_ITEM || type == TYPE_ACHIEVEMENT || type == TYPE_SPELL) && data.icon) { + // t.children[0].style.marginLeft = "18px"; + t.className += " icontinyl"; + t.style.paddingLeft = "18px !important"; + t.style.verticalAlign = "center"; + // t.style.background = "url(" + (document.location.protocol != "https:" ? "http:": document.location.protocol) + "//wowimg.zamimg.com/images/wow/icons/tiny/" + data.icon.toLocaleLowerCase() + ".gif) left center no-repeat" + t.style.background = "url(" + g_host + "/static/images/wow/icons/tiny/" + data.icon.toLocaleLowerCase() + ".gif) left center no-repeat" + } + + if (aowow_tooltips.colorlinks) { + if (type == TYPE_ITEM) { + t.className += " q" + data.quality; + } + } + }; + timeout(t); } } @@ -325,7 +431,8 @@ if (typeof $WowheadPower == "undefined") { var t = e._target; var i = 0; while (t != null && i < 5 && scanElement(t, e) == -2323) { - t = t.parentNode; ++i + t = t.parentNode; + ++i; } } @@ -342,7 +449,25 @@ if (typeof $WowheadPower == "undefined") { } function getTooltipField(locale, n) { - return (currentParams && currentParams.buff ? "buff" : "tooltip") + (n ? n : "") + "_" + LOCALES[locale]; + var prefix = "tooltip"; + + if (currentParams && currentParams.buff) { + prefix = "buff"; + } + + if (currentParams && currentParams.text) { + prefix = "text"; + } + + if (currentParams && currentParams.premium) { + prefix = "tooltip_premium"; + } + + return prefix + (n ? n : "") + "_" + LOCALES[locale]; + } + + function getIconField() { + return (currentParams && currentParams.text) ? "text_icon" : "icon"; } function getSpellsField(locale) { @@ -361,7 +486,7 @@ if (typeof $WowheadPower == "undefined") { } if (arr[id].response == null) { - arr[id].response = {} + arr[id].response = {}; } if (arr[id].status[locale] == null) { @@ -384,7 +509,7 @@ if (typeof $WowheadPower == "undefined") { var arr = LOOKUPS[type][0]; if (arr[fullId].status[locale] == STATUS_OK || arr[fullId].status[locale] == STATUS_NOTFOUND) { - showTooltip(arr[fullId][getTooltipField(locale)], arr[fullId].icon, arr[fullId].map, arr[fullId][getSpellsField(locale)], arr[fullId][getTooltipField(locale, 2)]); + showTooltip(arr[fullId][getTooltipField(locale)], arr[fullId][getIconField()], arr[fullId].map, arr[fullId][getSpellsField(locale)], arr[fullId][getTooltipField(locale, 2)]); } else if (arr[fullId].status[locale] == STATUS_QUERYING || arr[fullId].status[locale] == STATUS_SCALES) { showTooltip(_LANG.loading); @@ -412,15 +537,15 @@ if (typeof $WowheadPower == "undefined") { var p = ""; for (var i in params) { - if (i != "rand" && i != "ench" && i != "gems" && i != "sock") { + if (i != "rand" && i != "ench" && i != "gems" && i != "sock" && i != "lvl") { continue; } if (typeof params[i] == "object") { p += "&" + i + "=" + params[i].join(":"); } - else if (i == "sock") { - p += "&sock"; + else if (params[i] === true) { + p += "&" + i; } else { p += "&" + i + "=" + params[i]; @@ -428,14 +553,16 @@ if (typeof $WowheadPower == "undefined") { } // var url = "http://" + $WH.g_getDomainFromLocale(locale) + ".wowhead.com" - // url += "ajax.php?" + LOOKUPS[type][1] + "=" + id + "&power" + p; + // var url = (document.location.protocol != "https:" ? "http:": document.location.protocol) + "//" + localeDomain + ".wowhead.com"; var localeDomain = $WH.g_getDomainFromLocale(locale), url = g_host + "/"; + // $WH.g_ajaxIshRequest(url + "?" + LOOKUPS[type][1] + "=" + id + "&power" + p); $WH.g_ajaxIshRequest(url + "?" + LOOKUPS[type][1] + "=" + id + "&domain=" + localeDomain + "&power" + p); - if (SCALES[type] && !SCALES[type][locale]) { + if (SCALES[type] && SCALES[type][locale] == SCALES_NONE) { $WH.g_ajaxIshRequest(url + SCALES[type].url); + SCALES[type][locale] = SCALES_QUERYING; } } @@ -444,6 +571,7 @@ if (typeof $WowheadPower == "undefined") { html = currentA._fixTooltip(html, currentType, currentId, currentA); } + initCSS(); var notFound = false; if (!html) { html = LOOKUPS[currentType][2] + " not found :("; @@ -455,9 +583,9 @@ if (typeof $WowheadPower == "undefined") { if (currentParams.pcs && currentParams.pcs.length) { var n = 0; for (var i = 0, len = currentParams.pcs.length; i < len; ++i) { - var ak; - if (ak = html.match(new RegExp("(.+?)'))) { - html = html.replace(ak[0], '' + (($WH.isset("g_items") && g_items[currentParams.pcs[i]]) ? g_items[currentParams.pcs[i]]["name_" + LOCALES[currentLocale]] : ak[4]) + ""); + var m; + if (m = html.match(new RegExp("(.+?)'))) { + html = html.replace(m[0], '' + (($WH.isset("g_items") && g_items[currentParams.pcs[i]]) ? g_items[currentParams.pcs[i]]["name_" + LOCALES[currentLocale]] : m[4]) + ""); ++n; } } @@ -532,17 +660,17 @@ if (typeof $WowheadPower == "undefined") { } function getFullId(id, params) { - return id + (params.rand ? "r" + params.rand: "") + (params.ench ? "e" + params.ench: "") + (params.gems ? "g" + params.gems.join(",") : "") + (params.sock ? "s": ""); + return id + (params.rand ? "r" + params.rand : "") + (params.ench ? "e" + params.ench : "") + (params.gems ? "g" + params.gems.join(",") : "") + (params.sock ? "s" : ""); } this.loadScales = function (type, locale) { var arr = LOOKUPS[type][0]; for (var i in LOCALES) { if (locale == i || (!locale && !isNaN(i))) { - SCALES[type][i] = 1; + SCALES[type][i] = SCALES_LOADED; for (var id in arr) { if (arr[id].status[i] == STATUS_SCALES && arr[id].response[i]) { - arr[id].response[i]() + arr[id].response[i](); } } } @@ -553,10 +681,10 @@ if (typeof $WowheadPower == "undefined") { var arr = LOOKUPS[type][0]; initElement(type, id, locale); - if (SCALES[type] && !SCALES[type][locale]) { + if (SCALES[type] && SCALES[type][locale] != SCALES_LOADED) { arr[id].status[locale] = STATUS_SCALES; arr[id].response[locale] = this.register.bind(this, type, id, locale, json); - return + return; } if (arr[id].timer) { @@ -571,10 +699,10 @@ if (typeof $WowheadPower == "undefined") { zoom: 3, zoomable: false, buttons: false - }) + }); } arr[id].map.update(json.map); - delete json.map + delete json.map; } $WH.cO(arr[id], json); @@ -621,6 +749,10 @@ if (typeof $WowheadPower == "undefined") { this.register(TYPE_PROFILE, id, locale, json); }; + this.displayTooltip = function (type, id, locale, params) { + display(type, id, locale, params); + }; + this.request = function (type, id, locale, params) { if (!params) { params = {}; @@ -658,6 +790,35 @@ if (typeof $WowheadPower == "undefined") { this.getStatus(TYPE_SPELL, id, locale); }; + this.refreshLinks = function () { + if (typeof aowow_tooltips != "undefined") { + for (var i = 0; i < document.links.length; i++) { + var link = document.links[i]; + var node = link.parentNode; + var isTooltipChild = false; + + while (node != null) { + if ((" " + node.className + " ").replace(/[\n\t]/g, " ").indexOf(" wowhead-tooltip ") > -1) { + isTooltipChild = true; + break; + } + node = node.parentNode + } + + if (!isTooltipChild) { + scanElement(link); + } + } + } + + this.hideTooltip(); + }; + + this.setParent = function (newParent) { + $WH.Tooltip.reset(); + $WH.Tooltip.prepare(newParent); + }; + if (isRemote) { this.set = function (foo) { $WH.cO(opt, foo); diff --git a/static/widgets/power/demo.html b/static/widgets/power/demo.html new file mode 100644 index 00000000..d405db25 --- /dev/null +++ b/static/widgets/power/demo.html @@ -0,0 +1,114 @@ + + + +'Powered by Wowhead' Demo + + + + + + + + + + + + +

'Powered by Wowhead' Demo
« Return to the site

+ +
+ +Items

+ +Skyshatter Cover
+Lightbringer Faceguard

+ +Repurposed Lava Dredger (Level 42 scaling)

+ +Abacus of Violent Odds (Custom URL)
+Atiesh, Greatstaff of the Guardian (Level 80 conversions)
+Felstalker Bracers (Enchant, gem, set bonus)
+Dark Band of Agility (Random enchantment, enchant)
+Surestrike Goggles v2.0 (Enchant, gems)

+ +
+ +Spells

+Swiftmend
+Shadow Word: Pain
+Blacksmithing: Bulwark of the Ancient Kings

+ +Mark of the Wild (Buff)

+ +
+ +Quests

+Zalazane
+Wanted: Arcatraz Sentinels
+An Apexis Relic
+Kalynna's Request

+ +
+ +Achievements

+'Tis the Season
+100 Fish (Earned)

+ +
+ +Profiles

+Drekdarok
+DPS

+ +Drekdarok (Custom URL)
+DPS (Custom URL)
+
+ +Custom

+Hai to you!

+ +
+ +Image Map

+ + +Sun +Mercury +Venus + + + +
+ +
+Localized links (requires your site to use UTF-8 encoding)

+ +Deutsch: Skyshatter Cover
+Français: Skyshatter Cover
+Español: Skyshatter Cover
+Русский: Skyshatter Cover
+
+ +
+ +
+ +
+Item #30301
+Item #99999 +
+ +Item #30319 +Item #22589 +Item #8171 +Item #6479! + + + diff --git a/static/widgets/power/power.css b/static/widgets/power/power.css new file mode 100644 index 00000000..89ded4b8 --- /dev/null +++ b/static/widgets/power/power.css @@ -0,0 +1,161 @@ +.wowhead-tooltip { + position:absolute; + left:0; + top:0; + z-index:100000006; +} + +.wowhead-tooltip table { + border-spacing:0; + border-collapse:collapse; + margin:0; +} + +.wowhead-tooltip table, .wowhead-tooltip td, .wowhead-tooltip th, .wowhead-tooltip tbody { + border:0!important; +} + +.wowhead-tooltip tr { + background:transparent!important; + border:0!important; +} + +.wowhead-tooltip td, .wowhead-tooltip th { + background:transparent url(../../images/tooltip.png); + font-family:Verdana, sans-serif; + font-size:12px; + line-height:17px; + color:white; +} + +.wowhead-tooltip th { + padding:3px; + border:0; + height:auto; + vertical-align:top; +} + +.wowhead-tooltip td { + padding:8px 4px 1px 9px; + text-align:left; + vertical-align:top; +} + +.wowhead-tooltip b { + font-size:14px; + line-height:19px; + font-weight:normal; +} + +.wowhead-tooltip div.indent { + padding-left:.6em; +} + +.wowhead-tooltip td th, .wowhead-tooltip td td { + background:none; +} + +.wowhead-tooltip td th { + padding:0 0 0 4em; + text-align:right; + font-weight:normal; +} + +.wowhead-tooltip td td { + padding:0; + text-align:left; +} + +.wowhead-tooltip p { + position:absolute; + left:-44px; + top:-1px; + width:44px; + height:44px; + background:4px 4px no-repeat; + margin:0; + padding:0; +} + +.wowhead-tooltip p div { + width:44px; + height:44px; + background-image:url(../../images/icon_border_medium.png); +} + +.wowhead-tooltip a { + text-decoration:none!important; +} + +.wowhead-tooltip-powered { + background:url(../../images/powered.png) no-repeat; + width:53px; + height:33px; + position:absolute; + right:-56px; + top:2px; +} + +a.moneyitem, a.moneysocketmeta, a.moneysocketred, a.moneysocketyellow, a.moneysocketblue, a.moneysocketprismatic { + text-decoration:none!important; + border-bottom:1px solid transparent; +} + +a.moneyitem:hover, a.moneysocketmeta:hover, a.moneysocketred:hover, a.moneysocketyellow:hover, a.moneysocketblue:hover, a.moneysocketprismatic:hover { + border-bottom:1px solid white; +} + +.moneyitem, .moneygold, .moneysilver, .moneycopper, .moneyalliance, .moneyhorde, .moneyarena, .moneyachievement, .moneysocketmeta, .moneysocketred, .moneysocketyellow, .moneysocketblue, .moneysocketprismatic { + color:white; + background:no-repeat right center; +} + +.moneyitem { padding-right:18px; } +.moneygold { padding-right:15px; background-image:url(../../images/money-gold.gif); } +.moneysilver { padding-right:15px; background-image:url(../../images/money-silver.gif); } +.moneycopper { padding-right:15px; background-image:url(../../images/money-copper.gif); } +.moneyalliance { padding-right:12px; background-image:url(../../images/money-alliance.gif); } +.moneyhorde { padding-right:17px; background-image:url(../../images/money-horde.gif); } +.moneyarena { padding-right:18px; background-image:url(../../images/money-arena.gif); } +.moneyachievement { padding-right:13px; background-image:url(../../images/money-achievement.gif); } +.moneysocketmeta { padding-right:18px; background-image:url(../../images/socket-meta.gif); } +.moneysocketred { padding-right:18px; background-image:url(../../images/socket-red.gif); } +.moneysocketyellow { padding-right:18px; background-image:url(../../images/socket-yellow.gif); } +.moneysocketblue { padding-right:18px; background-image:url(../../images/socket-blue.gif); } +.moneysocketprismatic { padding-right:18px; background-image:url(../../images/socket-prismatic.gif); } + +.socket-meta { padding-left:26px; background:url(../../images/socket-meta.gif) no-repeat left center; } +.socket-red { padding-left:26px; background:url(../../images/socket-red.gif) no-repeat left center; } +.socket-yellow { padding-left:26px; background:url(../../images/socket-yellow.gif) no-repeat left center; } +.socket-blue { padding-left:26px; background:url(../../images/socket-blue.gif) no-repeat left center; } +.socket-prismatic { padding-left:26px; background:url(../../images/socket-prismatic.gif) no-repeat left center; } + + .q { color:#ffd100!important; } + + .q0, .q0 a { color:#9d9d9d!important; } + .q1, .q1 a { color:#ffffff!important; } + .q2, .q2 a { color:#1eff00!important; } + .q3, .q3 a { color:#0070dd!important; } + .q4, .q4 a { color:#a335ee!important; } + .q5, .q5 a { color:#ff8000!important; } + .q6, .q6 a { color:#e5cc80!important; } + .q7, .q7 a { color:#e5cc80!important; } + .q8, .q8 a { color:#ffff98!important; } + .q9, .q9 a { color:#71d5ff!important; } +.q10, .q10 a { color:#ff0000!important; } + +.r1 { color:#FF8040!important; } +.r2 { color:#FFFF00!important; } +.r3 { color:#40BF40!important; } +.r4 { color:#808080!important; } + + .c1, .c1 a { color:#C69B6D!important; } + .c2, .c2 a { color:#F48CBA!important; } + .c3, .c3 a { color:#AAD372!important; } + .c4, .c4 a { color:#FFF468!important; } + .c5, .c5 a { color:#FFFFFF!important; } + .c6, .c6 a { color:#C41E3B!important; } + .c7, .c7 a { color:#2359FF!important; } + .c8, .c8 a { color:#68CCEF!important; } + .c9, .c9 a { color:#9382C9!important; } +.c11, .c11 a { color:#FF7C0A!important; } diff --git a/static/widgets/power/power_ie.css b/static/widgets/power/power_ie.css new file mode 100644 index 00000000..42f5d602 --- /dev/null +++ b/static/widgets/power/power_ie.css @@ -0,0 +1,3 @@ +.wowhead-tooltip th { + height: 8px; +} diff --git a/static/widgets/power/power_ie6.css b/static/widgets/power/power_ie6.css new file mode 100644 index 00000000..1c45efe2 --- /dev/null +++ b/static/widgets/power/power_ie6.css @@ -0,0 +1,11 @@ +.wowhead-tooltip td, .wowhead-tooltip th { + background-image:url(../../images/tooltip.gif); +} +.wowhead-tooltip p div { + background:none; + filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='../../images/icon_border_medium.png'); +} +.wowhead-tooltip-powered { + background:none; + filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='../../images/powered.png'); +} diff --git a/static/widgets/searchbox.js b/static/widgets/searchbox.js new file mode 100644 index 00000000..c3da70df --- /dev/null +++ b/static/widgets/searchbox.js @@ -0,0 +1,56 @@ +(function () { + function create(w, h) { + var + scripts = document.getElementsByTagName('SCRIPT'), + body; + + /* sarjuuk: workaround to avoid hardcoding the url of the body */ + if (scripts && scripts.length > 0) { + for (var i in scripts) { + if (!scripts[i].src) { + continue; + } + + var m = scripts[i].src.match(/(.*)\/widgets\/searchbox\.js$/); + if (!m) { + continue; + } + + body = m[1] + '/widgets/searchbox/searchbox.html'; + break; + } + } + /* end */ + + var buff = '