Данный материал предоставлен сайтом ProWebber.cc исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Скачать бесплатно Понятный быстрый поиск.
Скачать бесплатно Понятный быстрый поиск.
В стандартном быстром поиске нет полезной вещи как транслит .. бывает что ввожу английскими буквами русское слова ... дабы поиск смог понять что я от него хочу .. я нашёл для себя решение и решил поделиться с Вами...
и так начнём...
открываем /engine/ajax/search.php
///////находим строчку
///////ниже дописываем
далее.......
///////находим строчку
///////ниже дописываем
готово ...
Увеличивается (если по русскому язику не даёт результата) +1 запрос в БД .. так как будет происходить проверка по транслиту
пример работы на http://kinomax.by
и так начнём...
открываем /engine/ajax/search.php
///////находим строчку
set_vars( "category", $cat_info );
$db->free();
}
$db->free();
}
///////ниже дописываем
function translitEnRu($string) {
$converter = array(
'`' => 'ё', 'q' => 'й', 'w' => 'ц', 'e' => 'у',
'r' => 'к', 't' => 'е', 'y' => 'н', 'u' => 'г',
'i' => 'ш', 'o' => 'щ', 'p' => 'з', '[' => 'х',
']' => 'ъ', 'a' => 'ф', 's' => 'ы', 'd' => 'в',
'f' => 'а', 'g' => 'п', 'h' => 'р', 'j' => 'о',
'k' => 'л', 'l' => 'д', ';' => 'ж', '\'' => 'э',
'z' => 'я', 'x' => 'ч', 'c' => 'с', 'v' => 'м',
'b' => 'и', 'n' => 'т', 'm' => 'ь', ',' => 'б',
'.' => 'ю',
'~' => 'Ё', 'Q' => 'Й', 'W' => 'Ц', 'E' => 'У',
'R' => 'К', 'T' => 'Е', 'Y' => 'Н', 'U' => 'Г',
'I' => 'Ш', 'O' => 'Щ', 'P' => 'З', '{' => 'Х',
'}' => 'Ъ', 'A' => 'Ф', 'S' => 'Ы', 'D' => 'В',
'F' => 'А', 'G' => 'П', 'H' => 'Р', 'J' => 'О',
'K' => 'Л', 'L' => 'Д', ':' => 'Ж', '"' => 'Э',
'Z' => 'Я', 'X' => 'Ч', 'C' => 'С', 'V' => 'М',
'B' => 'И', 'N' => 'Т', 'M' => 'Ь', '<' => 'Б',
'>' => 'Ю',
);
return strtr($string, $converter);
}
$converter = array(
'`' => 'ё', 'q' => 'й', 'w' => 'ц', 'e' => 'у',
'r' => 'к', 't' => 'е', 'y' => 'н', 'u' => 'г',
'i' => 'ш', 'o' => 'щ', 'p' => 'з', '[' => 'х',
']' => 'ъ', 'a' => 'ф', 's' => 'ы', 'd' => 'в',
'f' => 'а', 'g' => 'п', 'h' => 'р', 'j' => 'о',
'k' => 'л', 'l' => 'д', ';' => 'ж', '\'' => 'э',
'z' => 'я', 'x' => 'ч', 'c' => 'с', 'v' => 'м',
'b' => 'и', 'n' => 'т', 'm' => 'ь', ',' => 'б',
'.' => 'ю',
'~' => 'Ё', 'Q' => 'Й', 'W' => 'Ц', 'E' => 'У',
'R' => 'К', 'T' => 'Е', 'Y' => 'Н', 'U' => 'Г',
'I' => 'Ш', 'O' => 'Щ', 'P' => 'З', '{' => 'Х',
'}' => 'Ъ', 'A' => 'Ф', 'S' => 'Ы', 'D' => 'В',
'F' => 'А', 'G' => 'П', 'H' => 'Р', 'J' => 'О',
'K' => 'Л', 'L' => 'Д', ':' => 'Ж', '"' => 'Э',
'Z' => 'Я', 'X' => 'Ч', 'C' => 'С', 'V' => 'М',
'B' => 'И', 'N' => 'Т', 'M' => 'Ь', '<' => 'Б',
'>' => 'Ю',
);
return strtr($string, $converter);
}
далее.......
///////находим строчку
$db->query("SELECT id, short_story, title, date, alt_name, category FROM " . PREFIX . "_post WHERE " . PREFIX . "_post.approve=1"
указана начальная часть строки///////ниже дописываем
if (!$db->get_row()) {
$queryT = translitEnRu($query);
$db->query("SELECT id, short_story, title, date, alt_name, category FROM " . PREFIX . "_post WHERE " . PREFIX . "_post.approve=1".$this_date." AND (short_story LIKE '%{$queryT}%' OR full_story LIKE '%{$queryT}%' OR xfields LIKE '%{$queryT}%' OR title LIKE '%{$queryT}%') ORDER by date DESC LIMIT 5");
}
$queryT = translitEnRu($query);
$db->query("SELECT id, short_story, title, date, alt_name, category FROM " . PREFIX . "_post WHERE " . PREFIX . "_post.approve=1".$this_date." AND (short_story LIKE '%{$queryT}%' OR full_story LIKE '%{$queryT}%' OR xfields LIKE '%{$queryT}%' OR title LIKE '%{$queryT}%') ORDER by date DESC LIMIT 5");
}
готово ...
Увеличивается (если по русскому язику не даёт результата) +1 запрос в БД .. так как будет происходить проверка по транслиту
пример работы на http://kinomax.by
Предыдущая Следующая