break; // TODO /*ACHIEVEMENT_CRITERIA_TYPE_REACH_SKILL_LEVEL: ACHIEVEMENT_CRITERIA_TYPE_LEARN_SKILL_LEVEL: break;*/ // Добавляем иконку и ссылку на ачив // TODO /*ACHIEVEMENT_CRITERIA_TYPE_REACH_SKILL_LEVEL: ACHIEVEMENT_CRITERIA_TYPE_LEARN_SKILL_LEVEL: break;*/ // Добавляем иконку и ссылку на ачив case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_ACHIEVEMENT: $tmp['link'] = array('href' => '?achievement=' . $row['value1'], 'text' => $row['name']); $tmp['icon'] = $iconId; $achievement['icons'][] = array('itr' => $iconId++, 'type' => 'g_achievements', 'id' => $row['value1']); allachievementsinfo($row['value1']); break; // Добавляем ссылку на зону // Добавляем ссылку на зону case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUESTS_IN_ZONE: case ACHIEVEMENT_CRITERIA_TYPE_HONORABLE_KILL_AT_AREA: $tmp['link'] = array('href' => '?zone=' . $row['value1'], 'text' => $row['name']); break; // Добавляем ссылку на квест // Добавляем ссылку на квест case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUEST: $tmp['link'] = array('href' => '?quest=' . $row['value1'], 'text' => $row['name']); break; // Добавляем иконку и ссылку на спелл // Добавляем иконку и ссылку на спелл case ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET:
function ParseTextLinks($text) { if (!preg_match_all('/(\\[(achievement|item|quest|spell)=(\\d+)\\])/', $text, $matches)) { return; } $types = $matches[2]; $ids = $matches[3]; foreach ($types as $i => $type) { $id = $ids[$i]; switch ($type) { case 'achievement': require_once 'includes/allachievements.php'; allachievementsinfo($id); break; case 'item': require_once 'includes/allitems.php'; allitemsinfo($id); break; case 'quest': require_once 'includes/allquests.php'; allquestinfo($id); break; case 'spell': require_once 'includes/allspells.php'; allspellsinfo($id); break; } } }
if (!($quest = load_cache(QUEST_TOOLTIP, $id))) { require_once 'includes/allquests.php'; $quest = GetDBQuestInfo($id, QUEST_DATAFLAG_AJAXTOOLTIP); $quest['tooltip'] = GetQuestTooltip($quest); save_cache(QUEST_TOOLTIP, $id, $quest); } $x .= '$WowheadPower.registerQuest(' . $id . ', ' . $_SESSION['locale'] . ',{'; if ($quest['name']) { $x .= 'name_' . $locales[$_SESSION['locale']] . ': \'' . ajax_str_normalize($quest['name']) . '\','; } if ($quest['tooltip']) { $x .= 'tooltip_' . $locales[$_SESSION['locale']] . ': \'' . ajax_str_normalize($quest['tooltip']) . '\''; } $x .= '});'; break; case 'achievement': if (!($achievement = load_cache(ACHIEVEMENT_TOOLTIP, $id))) { require_once 'includes/allachievements.php'; $achievement = allachievementsinfo($id, 1); save_cache(ACHIEVEMENT_TOOLTIP, $id, $achievement); } $x .= '$WowheadPower.registerAchievement(' . $id . ', ' . $_SESSION['locale'] . ',{'; $x .= 'name_' . $locales[$_SESSION['locale']] . ': \'' . ajax_str_normalize($achievement['name']) . '\','; $x .= 'icon:\'' . $achievement['icon'] . '\','; $x .= 'tooltip_' . $locales[$_SESSION['locale']] . ':\'' . ajax_str_normalize($achievement['tooltip']) . '\''; $x .= '});'; break; default: break; } echo $x;