Jump to content

Recommended Posts

Уважаемые господа,

 

Подскажите пожалуйста как можно решить данную проблему

 

Есть два товара

 

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

 

а дальше если я нажимаю снова на строку поиска происходит обновление страницы и в поиск я больше ничего написать не могу...

Link to post
Share on other sites

Тут нет iphone 6, тут есть iphone 4 :)

А вообще данной проблемы на сайте http://demo.simplacms.ru/ я не наблюдаю, поиск работает корректно.

На демо сайте восстанавливается бекап спустя время, по этому там нет ифинов набитых ручками ТС.
Link to post
Share on other sites

На демо сайте восстанавливается бекап спустя время, по этому там нет ифинов набитых ручками ТС.

 

Нет, яблофон как раз то там и был еще один как и описывает ТС по мимо того, что в стандартной бд симплы. Но вы правы, видимо восстановился бекап и чьи-то косяки наделанные в шаблоне тоже восстановились, соответственно как и работа поиска.

Link to post
Share on other sites

Действительно айфоны которые я добавлял, испарились, но остались четверки

 

вот линк http://demo.simplacms.ru/products?keyword=Apple+iPhone+4S+16Gb

 

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

 

Попробуйте на любом своем сайте на симпле, добавьте два товара iphone 6 16gb и iphone 6s 16gb, что бы увидеть эту проблему.

Edited by snagovskiy
Link to post
Share on other sites

Действительно айфоны которые я добавлял, испарились, но остались четверки

 

вот линк http://demo.simplacms.ru/products?keyword=Apple+iPhone+4S+16Gb

 

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

 

Попробуйте на любом своем сайте на симпле, добавьте два товара iphone 6 16gb и iphone 6s 16gb, что бы увидеть эту проблему.

Да такая проблема есть, только что проверил.
Link to post
Share on other sites

А как ее исправить то, есть идеи?

Как вариант переделать немного скрипт поиска, убрать событие onselect и переделать вывод результатов в виде ссылок на товары.

Завтра если будет время распишу (00.40 на часах).

Link to post
Share on other sites

Как вариант переделать немного скрипт поиска, убрать событие onselect и переделать вывод результатов в виде ссылок на товары.

Завтра если будет время распишу (00.40 на часах).

 

Оке спасибо Noxter

Link to post
Share on other sites

Уважаемые господа,

 

Подскажите пожалуйста как можно решить данную проблему

 

Есть два товара

 

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 by DaVinci
Link to post
Share on other sites

по вашему запросу найден один товар, потому перебрасывает на него.

 

Нет, вопрос совсем не в этом.

 

На демо сайте

1. Создаю товар с названием 'X Y'.

2. Создаю товар с названием 'X Y Z'.

3. В живом поиска набираю 'X'. Появляется всплывающая подсказка, как и положено.

4. В живом поиска набираю 'X ' (с пробелом). Всплывающая подсказка меняется, как и положено.

5. В живом поиска набираю 'X Y'. Происходит переход по адресу http://demo.simplacms.ru/products?keyword=X+Y. В результатах поиска как минимум два товара. Никакого перехода быть не должно.

 

Почему-то срабатывает событие onSelect в скрипте подсказки...

Link to post
Share on other sites

У меня получилось решить вопрос так: в 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.

Link to post
Share on other sites

У меня получилось решить вопрос так: в 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.

Хватит пиарить этот убогий "движок"!
Link to post
Share on other sites

Хватит пиарить этот убогий "движок"!

 

Там лишь честно указан источник.

 

Опять же, в теме пока никто лучшего решения не предложил. До сих пор лишь зашли два фрилансера, оба не сразу поняли вопрос, который, кстати, ТС поставил очень грамотно и точно. Один из двух счел нужным зачем-то сообщить свои планы "Завтра если будет время распишу". Завтра прошло. Надо полагать, времени не нашлось. Зато было время на самопиар - уже за 6 тыс постов наваял, из них 4 в этой теме ни о чем. Посмотрим дальше, сможет ли кто из специалистов предложить решение лучшее, или оставят простых пользователей с "убогим"...

Link to post
Share on other sites

Там лишь честно указан источник.

 

Опять же, в теме пока никто лучшего решения не предложил. До сих пор лишь зашли два фрилансера, оба не сразу поняли вопрос, который, кстати, ТС поставил очень грамотно и точно. Один из двух счел нужным зачем-то сообщить свои планы "Завтра если будет время распишу". Завтра прошло. Надо полагать, времени не нашлось. Зато было время на самопиар - уже за 6 тыс постов наваял, из них 4 в этой теме ни о чем. Посмотрим дальше, сможет ли кто из специалистов предложить решение лучшее, или оставят простых пользователей с "убогим"...

Тебе гвоздь в голову нужно вбить, ты моральный урод.
Link to post
Share on other sites

У меня получилось решить вопрос так: в 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 by snagovskiy
Link to post
Share on other sites

Пробуйте вместо

            serviceUrl:'ajax/search_products.php',
            minChars:1,
            noCache: false,
вставить

            serviceUrl:'ajax/search_products.php',
            minChars:1,
            triggerSelectOnValidInput: false,
            noCache: false,

Link to post
Share on other sites

Пробуйте вместо

            serviceUrl:'ajax/search_products.php',

            minChars:1,

            noCache: false,

вставить

            serviceUrl:'ajax/search_products.php',

            minChars:1,

            triggerSelectOnValidInput: false,

            noCache: false,

 

Попробовал, спасибо за совет, но не работает  :(

Link to post
Share on other sites

Как вариант переделать немного скрипт поиска, убрать событие onselect и переделать вывод результатов в виде ссылок на товары.

Завтра если будет время распишу (00.40 на часах).

 

Noxter найди время пожалуйста

Link to post
Share on other sites

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 by Noxter
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...