config_load($conf_file, 'search'); // Строка поиска: $nsearch = '%'.urldecode($podrazdel).'%'; $search_array = explode(' ', $nsearch); // Заголовок страницы $title = $search.' - '.$smarty->get_config_vars('name').' '.$smarty->get_config_vars('Search'); $tab = '0'; // Подключаемся к ДБ global $DB; global $allitems; global $allspells; global $npc_cols; global $spell_cols; // Массив всего найденного $found = array(); // Ищем вещи: if($_SESSION['locale']>0) { $tmp = $DB->select(' SELECT entry FROM locales_item WHERE name_loc?d LIKE ? ', $_SESSION['locale'], $nsearch ); foreach($tmp as $t) { $m[] = $t['entry']; } } $rows = $DB->select(' SELECT i.?# {, l.name_loc?d AS `name_loc`} FROM ?_icons a, item_template i {LEFT JOIN (locales_item l) ON l.entry=i.entry AND ?d} WHERE (i.name LIKE ? {OR i.entry IN (?a)}) AND a.id = i.displayid; ', $item_cols[3], ($m)? $_SESSION['locale']: DBSIMPLE_SKIP, ($m)? 1: DBSIMPLE_SKIP, $nsearch, ($m)? $m: DBSIMPLE_SKIP ); unset($m); unset($t); unset($tmp); foreach ($rows as $numRow=>$row) $found['item'][] = iteminfo2($row); // Ищем NPC: if($_SESSION['locale']>0) { $tmp = $DB->select(' SELECT entry FROM locales_creature WHERE name_loc?d LIKE ? OR subname_loc?d LIKE ? ', $_SESSION['locale'], $nsearch, $_SESSION['locale'], $nsearch ); foreach($tmp as $t) { $m[] = $t['entry']; } } $rows = $DB->select(' SELECT ?#, c.entry {, l.name_loc?d AS `name_loc`, l.subname_loc'.($_SESSION['locale']).' AS `subname_loc`} FROM ?_factiontemplate, creature_template c {LEFT JOIN (locales_creature l) ON l.entry=c.entry AND ?d} WHERE (name LIKE ? OR subname LIKE ? {OR c.entry IN (?a)}) AND factiontemplateID=faction_A ', $npc_cols[0], ($m)? $_SESSION['locale']: DBSIMPLE_SKIP, ($m)? 1: DBSIMPLE_SKIP, $nsearch, $nsearch, ($m)? $m: DBSIMPLE_SKIP ); unset($m); unset($t); unset($tmp); foreach ($rows as $numRow=>$row) $found['npc'][] = creatureinfo2($row); // Ищем объекты if($_SESSION['locale']>0) { $tmp = $DB->select(' SELECT entry FROM locales_gameobject WHERE name_loc?d LIKE ? ', $_SESSION['locale'], $nsearch ); foreach($tmp as $t) { $m[] = $t['entry']; } } $rows = $DB->select(' SELECT g.?# {, l.name_loc?d AS `name_loc`} FROM gameobject_template g {LEFT JOIN (locales_gameobject l) ON l.entry=g.entry AND ?d} WHERE name LIKE ? {OR g.entry IN (?a)} ', $object_cols[0], ($m)? $_SESSION['locale']: DBSIMPLE_SKIP, ($m)? 1: DBSIMPLE_SKIP, $nsearch, ($m)? $m: DBSIMPLE_SKIP ); unset($m); unset($t); unset($tmp); foreach ($rows as $numRow=>$row) $found['object'][] = objectinfo2($row); // Ищем квесты if($_SESSION['locale']>0) { $tmp = $DB->select(' SELECT entry FROM locales_quest WHERE Title_loc?d LIKE ? ', $_SESSION['locale'], $nsearch ); foreach($tmp as $t) { $m[] = $t['entry']; } } $rows = $DB->select(' SELECT * {, l.Title_loc?d AS `Title_loc`} FROM quest_template q {LEFT JOIN (locales_quest l) ON l.entry=q.entry AND ?d} WHERE Title LIKE ? {OR q.entry IN (?a)} ', ($m)? $_SESSION['locale']: DBSIMPLE_SKIP, ($m)? 1: DBSIMPLE_SKIP, $nsearch, ($m)? $m: DBSIMPLE_SKIP ); unset($m); unset($t); unset($tmp); foreach ($rows as $numRow=>$row) $found['quest'][] = GetQuestInfo($row, 0xFFFFFF); // Ищем наборы вещей $rows = $DB->select(' SELECT * FROM ?_itemset WHERE name LIKE ? ', $nsearch ); foreach ($rows as $numRow=>$row) $found['itemset'][] = itemsetinfo2($row); // Ищем спеллы $rows = $DB->select(' SELECT ?#, spellID FROM ?_spell s, ?_spellicons i WHERE s.spellname like ? AND i.id = s.spellicon ', $spell_cols[2], $nsearch ); foreach ($rows as $numRow=>$row) $found['spell'][] = spellinfo2($row); $keys = array_keys($found); if ((count($found)==1) and (count($found[$keys[0]])==1)) { header("Location: ?".$keys[0].'='.$found[$keys[0]][0]['entry']); } else { $smarty->assign('found', $found); // Если хоть одна информация о вещи найдена - передаём массив с информацией о вещях шаблонизатору if (isset($allitems)) $smarty->assign('allitems', $allitems); if (isset($allspells)) $smarty->assign('allspells', $allspells); // Параметры страницы $page = array(); // Номер вкладки меню $page['tab'] = 0; // Заголовок страницы $page['title'] = $search.' - '.$smarty->get_config_vars('Search'); $smarty->assign('page', $page); $smarty->assign('mysql', $DB->getStatistics()); $smarty->assign('search', $search); $smarty->display('search.tpl'); } ?>