Понятный быстрый поиск [DLE 9.x — 10.x]

Понятный быстрый поиск [DLE 9.x — 10.x]

Название: Понятный быстрый поиск
Автор: D0Gmatist
CMS: DLE
Описание:
В стандартном быстром поиске нет полезной вещи как транслит. Бывает что ввожу английскими буквами русское слова, дабы поиск смог понять что я от него хочу. Я нашёл для себя решение и решил поделиться с Вами.
 Скриншоты

открываем /engine/ajax/search.php
///////находим строчку

 
$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);
}

///////Далее находим строчку:

$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 '%{$query}%' OR full_story LIKE '%{$query}%' OR xfields LIKE '%{$query}%' OR title LIKE '%{$query}%') 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 '%{$query}%' OR full_story LIKE '%{$query}%' OR xfields LIKE '%{$query}%' OR title LIKE '%{$query}%' OR short_story LIKE '%{$queryT}%' OR full_story LIKE '%{$queryT}%' OR xfields LIKE '%{$queryT}%' OR title LIKE '%{$queryT}%') ORDER by date DESC LIMIT 5");

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

Новость отредактировал: Gameer

Причина: Фикс для быстрого поиска.