Перейти к содержимому


Фото
- - - - -

Проблема в работе поиска


  • Чтобы отвечать, сперва войдите на форум
21 ответов в теме

#1 snagovskiy

snagovskiy
  • Пользователь
  • 47 сообщений

Опубликовано 10.03.2018 - 00:03

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

 

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

 

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

 

iphone 6 16gb http://demo.simplacm...s/iphone-6-16gb

и

iphone 6s 16gb http://demo.simplacm.../iphone-6s-16gb

 

Пишу в строке поиска: iphone 6 16gb

и попадаю на страницу результатов поиска http://demo.simplacm...d=iphone 6 16gb

 

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



#2 cmssmarty

cmssmarty
  • Пользователь
  • 19 сообщений
  • Дизайн, Верстка
  • Версия CMS:2.x
  • Откуда:Россия

Опубликовано 10.03.2018 - 00:36

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

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



#3 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 586 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 10.03.2018 - 00:47

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

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

#4 cmssmarty

cmssmarty
  • Пользователь
  • 19 сообщений
  • Дизайн, Верстка
  • Версия CMS:2.x
  • Откуда:Россия

Опубликовано 10.03.2018 - 00:55

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

 

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



#5 snagovskiy

snagovskiy
  • Пользователь
  • 47 сообщений

Опубликовано 10.03.2018 - 01:03

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

 

вот линк http://demo.simplacm... iPhone 4S 16Gb

 

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

 

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


Изменено: snagovskiy, 10.03.2018 - 01:08


#6 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 586 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 10.03.2018 - 01:21

Действительно айфоны которые я добавлял, испарились, но остались четверки
 
вот линк http://demo.simplacm... iPhone 4S 16Gb
 
Да и вообще, я добавил на демо сайт что бы показать что эта проблема не конкретно моего сайта или шаблона, а общая проблема движка.
 
Попробуйте на любом своем сайте на симпле, добавьте два товара iphone 6 16gb и iphone 6s 16gb, что бы увидеть эту проблему.

Да такая проблема есть, только что проверил.

#7 cmssmarty

cmssmarty
  • Пользователь
  • 19 сообщений
  • Дизайн, Верстка
  • Версия CMS:2.x
  • Откуда:Россия

Опубликовано 10.03.2018 - 01:21

...


Изменено: cmssmarty, 10.03.2018 - 01:22


#8 snagovskiy

snagovskiy
  • Пользователь
  • 47 сообщений

Опубликовано 10.03.2018 - 01:37

Да такая проблема есть, только что проверил.

 

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



#9 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 586 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 10.03.2018 - 01:40

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

Как вариант переделать немного скрипт поиска, убрать событие onselect и переделать вывод результатов в виде ссылок на товары.
Завтра если будет время распишу (00.40 на часах).

#10 snagovskiy

snagovskiy
  • Пользователь
  • 47 сообщений

Опубликовано 10.03.2018 - 01:42

Как вариант переделать немного скрипт поиска, убрать событие onselect и переделать вывод результатов в виде ссылок на товары.
Завтра если будет время распишу (00.40 на часах).

 

Оке спасибо Noxter



#11 DaVinci

DaVinci
  • Фрилансер
  • 863 сообщений
  • Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:SimplaDev.ru

Опубликовано 10.03.2018 - 15:39

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

 

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

 

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

 

iphone 6 16gb http://demo.simplacm...s/iphone-6-16gb

и

iphone 6s 16gb http://demo.simplacm.../iphone-6s-16gb

 

Пишу в строке поиска: iphone 6 16gb

и попадаю на страницу результатов поиска http://demo.simplacm...d=iphone 6 16gb

 

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

 

 

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

 

с технической точки зрения, с поиском все норм - вы искали iphone 6 16gb

 

в товаре Apple iPhone 4S 16Gb есть iPhone, 6, и 16gb

 

https://www.ozon.ru/...t=iphone 6 16gb в поиске так же есть те модели которые мы не предполагали увидеть 

 

в ProductsView.php закомментируйте код 

 

// Если искали товар и найден ровно один - перенаправляем на него
/*
if(!empty($keyword) && $products_count == 1)
	header('Location: '.$this->config->root_url.'/products/'.$p->url);
*/

Изменено: DaVinci, 10.03.2018 - 15:51


#12 Karabaska

Karabaska
  • Забаненый
  • 79 сообщений
  • Программирование
  • Версия CMS:2.x
  • Откуда:Херсон

Опубликовано 10.03.2018 - 16:18

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

 

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

На демо сайте
1. Создаю товар с названием 'X Y'.
2. Создаю товар с названием 'X Y Z'.
3. В живом поиска набираю 'X'. Появляется всплывающая подсказка, как и положено.
4. В живом поиска набираю 'X ' (с пробелом). Всплывающая подсказка меняется, как и положено.
5. В живом поиска набираю 'X Y'. Происходит переход по адресу http://demo.simplacm...ts?keyword=X Y. В результатах поиска как минимум два товара. Никакого перехода быть не должно.

 

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



#13 Karabaska

Karabaska
  • Забаненый
  • 79 сообщений
  • Программирование
  • Версия CMS:2.x
  • Откуда:Херсон

Опубликовано 10.03.2018 - 17:28

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



#14 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 586 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 10.03.2018 - 18:45

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

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

#15 Karabaska

Karabaska
  • Забаненый
  • 79 сообщений
  • Программирование
  • Версия CMS:2.x
  • Откуда:Херсон

Опубликовано 11.03.2018 - 09:22

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

 

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

 

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



#16 snagovskiy

snagovskiy
  • Пользователь
  • 47 сообщений

Опубликовано 13.03.2018 - 23:48

У меня получилось решить вопрос так: в 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 (приобретет регистр) и проявится собственно проблема - при нажатии на поисковую строку будет перезагружаться страница.


Изменено: snagovskiy, 13.03.2018 - 23:52


#17 Karabaska

Karabaska
  • Забаненый
  • 79 сообщений
  • Программирование
  • Версия CMS:2.x
  • Откуда:Херсон

Опубликовано 16.03.2018 - 09:32

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

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

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



#18 snagovskiy

snagovskiy
  • Пользователь
  • 47 сообщений

Опубликовано 22.03.2018 - 02:12

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

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

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

 

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



#19 snagovskiy

snagovskiy
  • Пользователь
  • 47 сообщений

Опубликовано 25.03.2018 - 19:40

Как вариант переделать немного скрипт поиска, убрать событие onselect и переделать вывод результатов в виде ссылок на товары.
Завтра если будет время распишу (00.40 на часах).

 

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



#20 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 586 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 25.03.2018 - 20:01

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/ который делал я с нуля, там можете проверить работу поиска.

Изменено: Noxter, 25.03.2018 - 20:06





0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых