• Автор:

    Flesha
  • Добавлено:

    дек 27, 2013
  • Комментариев:

    0
  • Просмотров:

    1494

Хак Понятный быстрый поиск

Хак Понятный быстрый поиск

В стандартном быстром поиске нет полезной вещи как транслит и бывает, что ввожу английскими буквами русское слова дабы поиск смог понять, что я от него хочу.

Установка:

1) открываем /engine/ajax/search.php и находим строчку:
    set_vars( "category", $cat_info );
$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);

}


2) Далее находим строчку:
$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");
}


Увеличивается (если по русскому языку не даёт результата) +1 запрос в БД, так как будет происходить проверка по транслиту.

Автор: D0Gmatist
Пример работы на kinomax.by
Версия DLE: 10.x
Вернуться
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.