Все для DataLife Engine / DLE хаки / Хак для DLE / Хак DLE Понятный быстрый поиск

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


Хак для DLE Понятный быстрый поиск - это улучшение сделает возможным распознавание любых введенных букв при поиске, даже если вы пишите при неправильной раскладке клавиатуры. Вероятно многие пользователи движка DataLife Engine сталкивался с тем, что в быстром поиске на сайте DLE при неправильной раскладке языка клавиатуры вместо ожидаемого результата вы получали кракозябры в поисковой строке или отсутствие результата.

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

Хак для ДЛЕ Понятный быстрый поиск установка в 5 секунд, всего две вставки

открываем /engine/ajax/search.php

____находим строчку
 if( $query == "" ) die(); $buffer = "";
}


____ниже нее вставляем
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);

}


____находим строчку
(short_story LIKE '%{$query}%' OR full_story LIKE '%{$query}%' OR xfields LIKE '%{$query}%' OR title LIKE '%{$query}%')
указана начальная часть строки

____заменяем на этот код
(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}%')
}



Все готово ...


На днях пользователь reanimator692 для DLE 9.5-10 прислал ещё один рабочий вариант с алфавитом кириллицы и латиницы 08.09.2014

Версия DataLife Engine: 9.x - 10.x на свежей версии DLe 10.1
Дополнил: vitnet, Sander

Будет добавлять +1 запрос в БД, если по русскому языку не будет найден результат, так как будет происходить проверка по транслиту.
Автор: NaN Дополнил: vitnet, Sander скачать в текстовом файле исходники установки

Hak-dlya-DLE-Ponyatnyy-bystryy-poisk.rar [81,74 Kb] (cкачиваний: 175)
  • 80

Комментарии 6

reanimator692 от 27 июня 2018 15:33
На 12.1 тоже работает,с небольшим изменением...

    $en = translit_en($query);
    $ru = translit_ru($query);
    $db->query("SELECT id, short_story, title, date, alt_name, category FROM " . PREFIX . "_post LEFT JOIN " . PREFIX . "_post_extras ON (" . PREFIX . "_post.id=" . PREFIX . "_post_extras.news_id)  WHERE " . PREFIX . "_post.approve=1 AND " . PREFIX . "_post_extras.disable_search=0".$this_date.$where_category." AND (short_story LIKE '%{$query}%' OR full_story LIKE '%{$query}%' OR xfields LIKE '%{$query}%' OR title LIKE '%{$query}%' OR short_story LIKE '%{$en}%' OR full_story LIKE '%{$en}%' OR title LIKE '%{$en}%' OR short_story LIKE '%{$ru}%' OR full_story LIKE '%{$ru}%' OR title LIKE '%{$ru}%') ORDER by date DESC LIMIT 5");
Artemy от 1 февраля 2016 11:40
Интересная работа рост бесплатное. Все подробности есть на сайте дле
Ilya от 14 декабря 2015 11:00
Интересная работа Все подробно
Vikvor от 8 февраля 2015 12:41
Здравствуйте.
Подскажите пожалуйста как к поиску то title добавить поиск по одному дополнительному полю?
dle9.com от 20 ноября 2014 06:59
Цитата: zoldiar
Спасибо получилось четко, вот только без этой первой строки $queryT = translitEnRu($query);

На здоровье,
а версия дле движка какая ?
zoldiar от 20 ноября 2014 06:34
Спасибо получилось четко, вот только без этой первой строки $queryT = translitEnRu($query);
Добавить комментарий

Оставить комментарий

    • bowtiesmilelaughingblushsmileyrelaxedsmirk
      heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
      winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
      worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
      expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
      disappointedconfoundedfearfulcold_sweatperseverecrysob
      joyastonishedscreamtired_faceangryragetriumph
      sleepyyummasksunglassesdizzy_faceimpsmiling_imp
      neutral_faceno_mouthinnocent