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


Живой поиск (с картинками)


  • Вы не можете ответить в тему
Сообщений в теме: 205

#181 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 18 December 2013 - 08:02 PM

Я таки решил неспешно переписать все это счастье под встроенный в jquery-ui виджет autocomplete, который является развитием использованной мною JS-либы от Zaefferer. Он закрыл проект где-то в в 2010 году с напутствием "оно теперь есть в jquery-ui, вот инструкция по миграции, а вот ссылка на ресурс jquery-ui/autocomplete".

Кто-нибудь пользовал ее? Кроме необходимости отсыла данных в JSON вместо "plaintext с разделителями" и местами поменявшегося синтаксиса option какие-то тараканы есть?
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#182 Dbus

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 1116 сообщений
Репутация: 174
Мастер
  • ГородОдесса

Отправлено 18 December 2013 - 08:05 PM

А я вот все собираюсь под бутстрап переписать, да времени как обычно нет :)
  • 0
502 Bad Gateway

#183 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 18 December 2013 - 08:18 PM

А я вот все собираюсь под бутстрап переписать, да времени как обычно нет

Ну, "живой поиск" (мой вопрос) и бутстрап несколько перпендикулярны :).
А если это намек на "времени нет", то таки да - тоже нет :). Но "живой поиск" переписать под другую JS-либу и шаблон под бутстрап - совершенно разные задачи по трудоемкости. Я вот за переписывание дефолтового (хотя бы его) шаблона под бутстрап даже браться боюсь. Хотя мои сайты (аж два!) на нем построенные, увы, на мелких планшетах и прочих гаджетах выглядят душераздирающе.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#184 Dbus

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 1116 сообщений
Репутация: 174
Мастер
  • ГородОдесса

Отправлено 18 December 2013 - 08:22 PM

Отчего ж перпендикулярны, в бутстрапе есть скрипты и автокомплит один из них.
Я сейчас о js составляющей, а не о верстке.
  • 0
502 Bad Gateway

#185 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 18 December 2013 - 08:45 PM

Я сейчас о js составляющей, а не о верстке.

А. Извини. Я до JS-составляющей пока не добрался. См. выше. Страшно браться :).

PS. Но мысль интересная. В бутстрапе свой автокомплит? Встроенный? Совсем свой, не похожий на?
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#186 Dbus

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 1116 сообщений
Репутация: 174
Мастер
  • ГородОдесса

Отправлено 18 December 2013 - 08:51 PM

Каюсь, но не вникал :)
Знаю только что есть.
Может в период праздничного безделья найду время на него :)
  • 0
502 Bad Gateway

#187 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 20 December 2013 - 05:44 PM

Я таки решил неспешно переписать все это счастье под встроенный в jquery-ui виджет autocomplete

Переписал.

Главные изменения относительно предыдущей версии на jquery.autocomplete от Joern Zaefferer, где последние изменения были:

update:
1. переход по клику на товар из списка происходит не в "результаты поиска", а сразу в подробное описание кликаемого товара.
2. если найдено товаров больше, чем задано показывать в списке, то в списке появляется пункт "Это первые X из YYY. Показать все?"
3. цена показывается в текущей выбранной валюте
4. "подсвечивается" жирным текстом в названиях строка поиска

Все это сохранилось. Кроме того:
1. вхождения поиска подсвечиваются не только жирным, но и красным.
2. при onclick на строке поиска если там что-то есть происходит поиск
3. строка поиска сохраняется при переходе к выбранному товару и... см. п.2
Т.е. стало немного удобнее, но как-то оно от лукавого...

Вообще трындец, конечно. Даже на английском документация убога (это мягко), а необходимость отслеживания "в jquery-ui 1.8-1.9 было так, а в 1.10 уже совсем по другому" вселяет здоровый оптимизьм по поводу будущего :).

Короче, см. сайт в подписи. Про просвечивание движков фильтра через список найденного я знаю. И про то, что это z-index тоже знаю :). Только вот изменение z-index у элементов списка ничего не дает и это меня удивляет. Пока не понимаю.

Но если смотреть в общем, то этот переход, несомненно, офигенно добавил ВОЗМОЖНОЙ функциональности в модуле.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#188 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 21 December 2013 - 05:21 PM

Только вот изменение z-index у элементов списка ничего не дает и это меня удивляет. Пока не понимаю.

О! http://bugs.jqueryui.com/ticket/5238
Помогло!
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#189 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 22 December 2013 - 05:05 PM

Новый "живой поиск".

http://vsupport.club...e-от-jquery-ui/
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#190 GiantCherry

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 75 сообщений
Репутация: 1
Начинающий
  • ГородСанкт-Петербург

Отправлено 03 October 2014 - 03:59 PM

подскажите, как заставить модуль искать по мета тегам: title, keywords, description в описании товара?
  • 0

#191 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 03 October 2014 - 07:39 PM

подскажите, как заставить модуль искать по мета тегам: title, keywords, description в описании товара

Если речь именно о давно протухшем модуле из этой темы (я уже два раза выкладывал аналогичные, но более новые и интересные), то заменить в файле devsearch.php блок

$filter = "";
foreach (explode(" ",$q) as $word)
$filter .= "t1.name like '%$word%' AND ";

формирующий поиск по имени товара на любой другой поиск. Например, по title, keywords и description.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#192 GiantCherry

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 75 сообщений
Репутация: 1
Начинающий
  • ГородСанкт-Петербург

Отправлено 05 October 2014 - 05:51 PM

подскажите, как заставить модуль искать по мета тегам: title, keywords, description в описании товара

Если речь именно о давно протухшем модуле из этой темы (я уже два раза выкладывал аналогичные, но более новые и интересные), то заменить в файле devsearch.php блок

$filter = "";
foreach (explode(" ",$q) as $word)
$filter .= "t1.name like '%$word%' AND ";

формирующий поиск по имени товара на любой другой поиск. Например, по title, keywords и description.


Спасибо за ответ. т.е. нужно сделать примерно так: "t1.name, t1.keywords, t1.description, t1.title like '%$word%' AND ";

Поясните пожалуйста, почему данный модуль Вы считаете протухшим? Чем лучше другие реализации? Речь идет о реализации, которая выложена выше?

__________________________________
заменил t1.name на t1.meta_keywords
поиск работает.

пробую перечислить через запятую t1.name, t1.meta_keywords поиск также не работает

какой правильный синтаксис при поиске по нескольким полям?

разобрался, если кому интересно нужно вот так:
$filter .= "t1.name OR t1.meta_keywords like '%$word%' AND ";
  • 0

#193 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 05 October 2014 - 09:36 PM

Поясните пожалуйста, почему данный модуль Вы считаете протухшим?

Как минимум, потому, что я их автор и мне виднее :).

Чем лучше другие реализации?

В шапке "другой реализации" написано, чем он отличается в корне.
А из удобного для пользователя:
1. переход по энтеру сразу в товар, а не в список товаров.
2. подсветка строки поиска в выпадающем списке.
3. Последний элемент выпадающего списка "найдено XX, показать все?" если список найденных больше некого заданного количества товаров.
4. еще какие-то полезности - я всех просто не помню.

разобрался, если кому интересно нужно вот так: $filter .= "t1.name OR t1.meta_keywords like '%$word%' AND ";

Это неверно.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#194 GiantCherry

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 75 сообщений
Репутация: 1
Начинающий
  • ГородСанкт-Петербург

Отправлено 06 October 2014 - 07:37 AM

Поясните пожалуйста, почему данный модуль Вы считаете протухшим?

Как минимум, потому, что я их автор и мне виднее :).

Чем лучше другие реализации?

В шапке "другой реализации" написано, чем он отличается в корне.
А из удобного для пользователя:
1. переход по энтеру сразу в товар, а не в список товаров.
2. подсветка строки поиска в выпадающем списке.
3. Последний элемент выпадающего списка "найдено XX, показать все?" если список найденных больше некого заданного количества товаров.
4. еще какие-то полезности - я всех просто не помню.

разобрался, если кому интересно нужно вот так: $filter .= "t1.name OR t1.meta_keywords like '%$word%' AND ";

Это неверно.


Почему неверно??? У меня работает. Стал бы я писать, если бы не работало.

Меня полностью устраивает данная реализация, работает как надо (правда я не очень понял как работает код). Если хотите посмотреть как работает, я думаю Вы мой сайт знаете, либо легко вычислите.
  • 0

#195 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 06 October 2014 - 12:08 PM

Почему неверно???

Потому, что не будет искать по названию товара (name)

Стал бы я писать, если бы не работало.

Хм... Пишете же.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#196 GiantCherry

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 75 сообщений
Репутация: 1
Начинающий
  • ГородСанкт-Петербург

Отправлено 07 October 2014 - 11:27 AM

Почему неверно???

Потому, что не будет искать по названию товара (name)

Стал бы я писать, если бы не работало.

Хм... Пишете же.


Действительно не ищет. Оказывается название было продублировано в meta_keywords.

Подскажите пожалуйста, как надо сделать, чтоб искал сразу по нескольким полям.

Как сделать так, чтобы поиск выдавал результат по части слова? К примеру: АВТОМОБИЛЬ находился при запросе МОБИ, и т.п. Т.е. чтобы искалось не только по кусочку начала слова, но и по любой части слова. Сумбурно, но как смог, так объяснил.
  • 0

#197 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 08 October 2014 - 03:54 PM

как надо сделать, чтоб искал сразу по нескольким полям.


#$filter = "";
#foreach (explode(" ",$q) as $word)
# $filter .= "t1.name like '%$word%' AND ";

foreach (explode(" ",$q) as $word)
{
$name[] = "LOWER(name) LIKE '%".xToText(strtolower($word))."%'";
$meta[] = "LOWER(meta_keywords) LIKE '%".xToText(strtolower($word))."%'";
}
$filter = '('.implode(' AND ',$name).' OR '.implode(' AND ',$meta).') AND ';

Как сделать так, чтобы поиск выдавал результат по части слова?

Это не надо как-то отдельно делать, это и так работает при нормальном запросе.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#198 GiantCherry

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 75 сообщений
Репутация: 1
Начинающий
  • ГородСанкт-Петербург

Отправлено 09 October 2014 - 05:46 PM

Спасибо большое. Проверил, так работает.

Поясните, зачем Вы закоментировали начальную инициализацию переменной $filter, по смыслу предыдущей реализации этого делать не надо??
  • 0

#199 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 09 October 2014 - 07:21 PM

Поясните, зачем Вы закоментировали начальную инициализацию переменной $filter, по смыслу предыдущей реализации этого делать не надо??

Потому, что "$filter .=" и "$filter =" это две большие разницы.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#200 GiantCherry

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 75 сообщений
Репутация: 1
Начинающий
  • ГородСанкт-Петербург

Отправлено 17 October 2014 - 07:51 PM

Поясните, зачем Вы закоментировали начальную инициализацию переменной $filter, по смыслу предыдущей реализации этого делать не надо??

Потому, что "$filter .=" и "$filter =" это две большие разницы.


Я понимаю, что это две большие разницы. Я спрашивал про: #$filter = "";
начальную инициализацию переменной.
  • 0