Mike_AP Posted July 30, 2012 Share Posted July 30, 2012 Добрый день! Не получается получить в результатах поиска товары, в артикуле которых содержится поисковый запрос. Если целиком артикул вводить - ищет. В админке ищет по части слова, а на фронтфейсе - нет. Например: артикул TRA3024. Ищем "3024" - ничего не находим. Ищем "TRA3024" - находим искомый товар. При этом в админке всё спокойно ищется. Преста 1.4.2.5 Модуль поиска родной. Кто-нибуть сталкивался? Хелп! Link to comment Share on other sites More sharing options...
Mike_AP Posted July 30, 2012 Author Share Posted July 30, 2012 Решение нашлось. http://www.prestashop.com/forums/index.php?/topic/180406-search-fail-if-the-string-is-a-number/page__view__findpost__p__891316 Link to comment Share on other sites More sharing options...
Dimitri Yelquin Posted July 30, 2012 Share Posted July 30, 2012 Спасибо! Тоже решил улучшить свой фронт-оффис, скопировал выложенный Вами код, но раньше решил проверить, а как у меня ищет? Ввёл полслова "cock" и получил в выдаче все платья, в названии или в описании которых есть слово "cocktail". У меня версия 1.4.8.2. Кажется, у Вас эта же? Ещё версия 1.3.6 — более ранних не знаю — по полслову искала... Link to comment Share on other sites More sharing options...
Mike_AP Posted July 31, 2012 Author Share Posted July 31, 2012 С поиском начала слова нет никаких проблем. Но по Вашему запросу без предлагаемого переопределения класса не нашлось бы что-то типа "minicocktail". У меня 1.4.2.5 Link to comment Share on other sites More sharing options...
Mike_AP Posted July 31, 2012 Author Share Posted July 31, 2012 (edited) Вот тут у человека еще 1.4.8.2 и оверрайд не помог: http://www.prestashop.com/forums/topic/180406-search-fail-if-the-string-is-a-number/page__pid__891877#entry891877 но такое впечатление, что оригинальный Search.php не той версии, не могли бы Вы глянуть что у Вас в начале файла за Revision написано? Edited July 31, 2012 by Mike_AP (see edit history) Link to comment Share on other sites More sharing options...
Dimitri Yelquin Posted July 31, 2012 Share Posted July 31, 2012 В моей версии в папке "override/classes", о котором Вы говорили на английском форуме, нет файла "search". Есть в папке "classes". Он Вам нужен? Link to comment Share on other sites More sharing options...
Mike_AP Posted August 1, 2012 Author Share Posted August 1, 2012 Да, именно из classes. Link to comment Share on other sites More sharing options...
ferke21 Posted August 2, 2012 Share Posted August 2, 2012 Есть ещё один вариант, который у меня сработал. Берём оригинальный Search.php из каталога classes . Находим вот эти строки: 'PS_SEARCH_MINWORDLEN')) { $word = str_replace('%', '\\%', $word); $word = str_replace('_', '\\_', $word); Они гдето после 180 строк находятся. ********* После этих строк добавляем вот это: (добавляем, а не заменяем!!!!!) $word ='%'.$word.'%'; Должен выглядеть вот так: 'PS_SEARCH_MINWORDLEN')) { $word = str_replace('%', '\\%', $word); $word = str_replace('_', '\\_', $word); $word ='%'.$word.'%'; $intersectArray[] = 'SELECT id_product FROM '._DB_PREFIX_.'search_word sw LEFT JOIN '._DB_PREFIX_.'search_index si ON sw.id_word Удачи всем. Link to comment Share on other sites More sharing options...
Mike_AP Posted August 3, 2012 Author Share Posted August 3, 2012 Логично и проще намного чем весь класс переопределять. Спасибо! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now