snagovskiy Posted March 9, 2018 Report Share Posted March 9, 2018 Уважаемые господа, Подскажите пожалуйста как можно решить данную проблему Есть два товара iphone 6 16gb http://demo.simplacms.ru/products/iphone-6-16gbиiphone 6s 16gb http://demo.simplacms.ru/products/iphone-6s-16gb Пишу в строке поиска: iphone 6 16gbи попадаю на страницу результатов поиска http://demo.simplacms.ru/products?keyword=iphone+6+16gb а дальше если я нажимаю снова на строку поиска происходит обновление страницы и в поиск я больше ничего написать не могу... Quote Link to post Share on other sites
cmssmarty Posted March 9, 2018 Report Share Posted March 9, 2018 Тут нет iphone 6, тут есть iphone 4 А вообще данной проблемы на сайте http://demo.simplacms.ru/ я не наблюдаю, поиск работает корректно. Quote Link to post Share on other sites
Noxter Posted March 9, 2018 Report Share Posted March 9, 2018 Тут нет iphone 6, тут есть iphone 4 А вообще данной проблемы на сайте http://demo.simplacms.ru/ я не наблюдаю, поиск работает корректно.На демо сайте восстанавливается бекап спустя время, по этому там нет ифинов набитых ручками ТС. Quote Link to post Share on other sites
cmssmarty Posted March 9, 2018 Report Share Posted March 9, 2018 На демо сайте восстанавливается бекап спустя время, по этому там нет ифинов набитых ручками ТС. Нет, яблофон как раз то там и был еще один как и описывает ТС по мимо того, что в стандартной бд симплы. Но вы правы, видимо восстановился бекап и чьи-то косяки наделанные в шаблоне тоже восстановились, соответственно как и работа поиска. Quote Link to post Share on other sites
snagovskiy Posted March 9, 2018 Author Report Share Posted March 9, 2018 (edited) Действительно айфоны которые я добавлял, испарились, но остались четверки вот линк http://demo.simplacms.ru/products?keyword=Apple+iPhone+4S+16Gb Да и вообще, я добавил на демо сайт что бы показать что эта проблема не конкретно моего сайта или шаблона, а общая проблема движка. Попробуйте на любом своем сайте на симпле, добавьте два товара iphone 6 16gb и iphone 6s 16gb, что бы увидеть эту проблему. Edited March 9, 2018 by snagovskiy Quote Link to post Share on other sites
Noxter Posted March 9, 2018 Report Share Posted March 9, 2018 Действительно айфоны которые я добавлял, испарились, но остались четверки вот линк http://demo.simplacms.ru/products?keyword=Apple+iPhone+4S+16Gb Да и вообще, я добавил на демо сайт что бы показать что эта проблема не конкретно моего сайта или шаблона, а общая проблема движка. Попробуйте на любом своем сайте на симпле, добавьте два товара iphone 6 16gb и iphone 6s 16gb, что бы увидеть эту проблему.Да такая проблема есть, только что проверил. Quote Link to post Share on other sites
cmssmarty Posted March 9, 2018 Report Share Posted March 9, 2018 (edited) ... Edited March 9, 2018 by cmssmarty Quote Link to post Share on other sites
snagovskiy Posted March 9, 2018 Author Report Share Posted March 9, 2018 Да такая проблема есть, только что проверил. А как ее исправить то, есть идеи? Quote Link to post Share on other sites
Noxter Posted March 9, 2018 Report Share Posted March 9, 2018 А как ее исправить то, есть идеи?Как вариант переделать немного скрипт поиска, убрать событие onselect и переделать вывод результатов в виде ссылок на товары. Завтра если будет время распишу (00.40 на часах). Quote Link to post Share on other sites
snagovskiy Posted March 9, 2018 Author Report Share Posted March 9, 2018 Как вариант переделать немного скрипт поиска, убрать событие onselect и переделать вывод результатов в виде ссылок на товары.Завтра если будет время распишу (00.40 на часах). Оке спасибо Noxter Quote Link to post Share on other sites
DaVinci Posted March 10, 2018 Report Share Posted March 10, 2018 (edited) Уважаемые господа, Подскажите пожалуйста как можно решить данную проблему Есть два товара iphone 6 16gb http://demo.simplacms.ru/products/iphone-6-16gbиiphone 6s 16gb http://demo.simplacms.ru/products/iphone-6s-16gb Пишу в строке поиска: iphone 6 16gbи попадаю на страницу результатов поиска http://demo.simplacms.ru/products?keyword=iphone+6+16gb а дальше если я нажимаю снова на строку поиска происходит обновление страницы и в поиск я больше ничего написать не могу... по вашему запросу найден один товар, потому перебрасывает на него. с технической точки зрения, с поиском все норм - вы искали iphone 6 16gb в товаре Apple iPhone 4S 16Gb есть iPhone, 6, и 16gb https://www.ozon.ru/?context=search&text=iphone+6+16gb в поиске так же есть те модели которые мы не предполагали увидеть в ProductsView.php закомментируйте код // Если искали товар и найден ровно один - перенаправляем на него /* if(!empty($keyword) && $products_count == 1) header('Location: '.$this->config->root_url.'/products/'.$p->url); */ Edited March 10, 2018 by DaVinci Quote Link to post Share on other sites
Karabaska Posted March 10, 2018 Report Share Posted March 10, 2018 по вашему запросу найден один товар, потому перебрасывает на него. Нет, вопрос совсем не в этом. На демо сайте1. Создаю товар с названием 'X Y'.2. Создаю товар с названием 'X Y Z'.3. В живом поиска набираю 'X'. Появляется всплывающая подсказка, как и положено.4. В живом поиска набираю 'X ' (с пробелом). Всплывающая подсказка меняется, как и положено.5. В живом поиска набираю 'X Y'. Происходит переход по адресу http://demo.simplacms.ru/products?keyword=X+Y. В результатах поиска как минимум два товара. Никакого перехода быть не должно. Почему-то срабатывает событие onSelect в скрипте подсказки... Quote Link to post Share on other sites
Karabaska Posted March 10, 2018 Report Share Posted March 10, 2018 У меня получилось решить вопрос так: в index.tplпосле onSelect: function(suggestion){ $(".input_search").closest('form').submit(); },добавил transformResult: function(result, query) { var data = JSON.parse(result); $(".input_search").autocomplete('setOptions', {triggerSelectOnValidInput: data.suggestions.length == 1}); return data; }, P.S. Придумал не сам, нашел это в OKAY CMS. Quote Link to post Share on other sites
Noxter Posted March 10, 2018 Report Share Posted March 10, 2018 У меня получилось решить вопрос так: в index.tplпосле onSelect: function(suggestion){ $(".input_search").closest('form').submit(); },добавил transformResult: function(result, query) { var data = JSON.parse(result); $(".input_search").autocomplete('setOptions', {triggerSelectOnValidInput: data.suggestions.length == 1}); return data; }, P.S. Придумал не сам, нашел это в OKAY CMS.Хватит пиарить этот убогий "движок"! Quote Link to post Share on other sites
Karabaska Posted March 11, 2018 Report Share Posted March 11, 2018 Хватит пиарить этот убогий "движок"! Там лишь честно указан источник. Опять же, в теме пока никто лучшего решения не предложил. До сих пор лишь зашли два фрилансера, оба не сразу поняли вопрос, который, кстати, ТС поставил очень грамотно и точно. Один из двух счел нужным зачем-то сообщить свои планы "Завтра если будет время распишу". Завтра прошло. Надо полагать, времени не нашлось. Зато было время на самопиар - уже за 6 тыс постов наваял, из них 4 в этой теме ни о чем. Посмотрим дальше, сможет ли кто из специалистов предложить решение лучшее, или оставят простых пользователей с "убогим"... Quote Link to post Share on other sites
Noxter Posted March 11, 2018 Report Share Posted March 11, 2018 Там лишь честно указан источник. Опять же, в теме пока никто лучшего решения не предложил. До сих пор лишь зашли два фрилансера, оба не сразу поняли вопрос, который, кстати, ТС поставил очень грамотно и точно. Один из двух счел нужным зачем-то сообщить свои планы "Завтра если будет время распишу". Завтра прошло. Надо полагать, времени не нашлось. Зато было время на самопиар - уже за 6 тыс постов наваял, из них 4 в этой теме ни о чем. Посмотрим дальше, сможет ли кто из специалистов предложить решение лучшее, или оставят простых пользователей с "убогим"...Тебе гвоздь в голову нужно вбить, ты моральный урод. Quote Link to post Share on other sites
snagovskiy Posted March 13, 2018 Author Report Share Posted March 13, 2018 (edited) У меня получилось решить вопрос так: в index.tplпосле onSelect: function(suggestion){ $(".input_search").closest('form').submit(); },добавил transformResult: function(result, query) { var data = JSON.parse(result); $(".input_search").autocomplete('setOptions', {triggerSelectOnValidInput: data.suggestions.length == 1}); return data; }, P.S. Придумал не сам, нашел это в OKAY CMS. У меня это не заработало, тестил на своем шаблоне и на дефолтном,... Смотрите, проблема проявляется только если скрипт увидит полное соответствие запроса с названием товара и произведет автозамену... Например есть товар Apple iPhone 6 16Gb Silver и Apple iPhone 6s 16Gb Silverесли я пишу в поиске apple iphone 6 16gb, точного соответствия не будет, автозамена не сработает и при нажатии на строку поиска обновления страницы не произойдет. А если я напишу apple iphone 6 16gb silver, то произойдет автозамена, текст в поисковой строке изменится на Apple iPhone 6 16Gb Silver (приобретет регистр) и проявится собственно проблема - при нажатии на поисковую строку будет перезагружаться страница. Edited March 13, 2018 by snagovskiy Quote Link to post Share on other sites
Karabaska Posted March 16, 2018 Report Share Posted March 16, 2018 Пробуйте вместо serviceUrl:'ajax/search_products.php', minChars:1, noCache: false,вставить serviceUrl:'ajax/search_products.php', minChars:1, triggerSelectOnValidInput: false, noCache: false, Quote Link to post Share on other sites
snagovskiy Posted March 21, 2018 Author Report Share Posted March 21, 2018 Пробуйте вместо serviceUrl:'ajax/search_products.php', minChars:1, noCache: false,вставить serviceUrl:'ajax/search_products.php', minChars:1, triggerSelectOnValidInput: false, noCache: false, Попробовал, спасибо за совет, но не работает Quote Link to post Share on other sites
snagovskiy Posted March 25, 2018 Author Report Share Posted March 25, 2018 Как вариант переделать немного скрипт поиска, убрать событие onselect и переделать вывод результатов в виде ссылок на товары.Завтра если будет время распишу (00.40 на часах). Noxter найди время пожалуйста Quote Link to post Share on other sites
Noxter Posted March 25, 2018 Report Share Posted March 25, 2018 (edited) Noxter найди время пожалуйстаВремя есть всегда, его просто нужно выделить а не найти.Решения выше не подходят?Рабочий вариант на сайте клиента: $('.autocomplete').autocomplete({ serviceUrl:'ajax/search_products.php', minChars:1, noCache: false, formatResult: function(suggestion, currentValue){ var reEscape = new RegExp('(\\' + ['/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\'].join('|\\') + ')', 'g'); var pattern = '(' + currentValue.replace(reEscape, '\\$1') + ')'; return '<a href="products/'+suggestion.data.url+'">'+(suggestion.data.image?"<img align=absmiddle src='"+suggestion.data.image+"'> ":'') + suggestion.value.replace(new RegExp(pattern, 'gi'), '<strong>$1<\/strong>')+'</a>'; } }); Сайт клиента http://militarka.com/ который делал я с нуля, там можете проверить работу поиска. Edited March 25, 2018 by Noxter Quote Link to post Share on other sites
snagovskiy Posted March 28, 2018 Author Report Share Posted March 28, 2018 Noxter спасибо, но это то же не зарабатало у меня, отдает 404 ошибку при выборе товара из поиска..... Quote Link to post Share on other sites
Noxter Posted March 28, 2018 Report Share Posted March 28, 2018 Noxter спасибо, но это то же не зарабатало у меня, отдает 404 ошибку при выборе товара из поиска..... Как выглядит ссылка? Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.