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


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


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

#61 badisoft

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

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

Отправлено 02 April 2012 - 04:09 PM

Хе-хе.... Я гляжу, фраза "разбирайтесь сами либо платите деньги" творит чудеса. Не прошло и шести часов, как три вопроса из четырех решились самостоятельно :).

подскажите только с " вместо " (кавичок)

в каком месте происходит смена кавычки на &quote; ?
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#62 Степан

    Пользователь

  • Assistent vsupport.club
  • PipPip
  • 16 сообщений
Репутация: -1
Начинающий

Отправлено 02 April 2012 - 07:59 PM

при нажатии на вивод результата поиска, вод так Изображение
  • 0

#63 badisoft

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

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

Отправлено 05 April 2012 - 07:29 PM

при нажатии на вивод результата поиска, вод так

Ага, понял. Создал у себя "Товар "Тест"" - тоже подменяет кавычки на квоты. Попробую разобраться.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#64 badisoft

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

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

Отправлено 05 April 2012 - 08:10 PM

Попробую разобраться.

В head.tpl.html строку
  +row[0]+"' alt='"+row[1]+"' src='"+row[3]+"'></td><td>"+row[0]+"</td></tr><tr><td>"+row[2]+"</td></tr></table>";
заменить на
  +row[1]+"' src='"+row[3]+"'></td><td>"+row[1]+"</td></tr><tr><td>"+row[2]+"</td></tr></table>";
а в devsearch.php строку
{echo $row['name']."|".$row['product_code']."|".show_price($row['price'],1)." / ".show_price($row['price'],2)."|".($row['filename']?'/data/small/'.$row['filename']:'/data/empty.gif')."\n";}
заменить на
{echo html_entity_decode ($row['name'],ENT_QUOTES)."|".$row['name']."|".show_price($row['price'],1)." / ".show_price($row['price'],2)."|".($row['filename']?'/data/small/'.$row['filename']:'/data/empty.gif')."\n";}
заменив, естественно, номера валют (1 и 2) в функции show_price на свои.
  • 1
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#65 hed

    Пользователь

  • Заблокированные
  • PipPip
  • 12 сообщений
Репутация: -4
Начинающий

Отправлено 26 April 2012 - 05:25 PM

То, что вырезали, правильно. Но в третий раз подниму вопрос о поиске по свободному вхождению слов (в любом порядке, а не в строго определенном).
Надеюсь, это интересно не только мне.

#66 badisoft

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

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

Отправлено 26 April 2012 - 07:23 PM

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

#67 badisoft

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

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

Отправлено 26 April 2012 - 10:31 PM

сделать это совершенно не сложно

devsearch.php с этой фишкой:
<?php
header("Content-Type: text/html;charset=windows-1251");
require_once "core/config/connect.inc.php";
require_once "core/includes/database/".DBMS.".php";
require_once "core/functions/functions.php";
db_connect(DB_HOST,DB_USER,DB_PASS) or die (db_error());
db_select_db(DB_NAME) or die (db_error());
$q = xEscSQL (iconv('UTF-8','CP1251',$_GET["q"]));
#изменение раз
$filter = "";
foreach (str_word_count($q,1) as $word)
$filter .= "t1.name like '%$word%' AND ";
#конец изменения
$data = db_query("SELECT t1.product_code,t1.name,t1.price,t2.filename
FROM ".DB_PRFX."products t1
LEFT JOIN ".DB_PRFX."product_pictures t2 ON t1.default_picture = t2.photoID
#изменение два
# WHERE t1.name like '%$q%' AND t1.enabled = '1'
WHERE $filter t1.enabled = '1'
#конец изменения
LIMIT ".$_GET['limit']) or die( db_error() );
while( $row = db_fetch_assoc( $data ))
{echo html_entity_decode ($row['name'],ENT_QUOTES)."|".$row['name']."|".show_price($row['price'],1)." / ".show_price($row['price'],2)."|".($row['filename']?'/data/small/'.$row['filename']:'/data/empty.gif')."\n";}
db_disconnect();
?>

Один минус - функция str_word_count(), штатная PHP-функция создающая массив слов, присутствующих в строке прекрасно распознает слова с русскими буквами, но напрочь не признает за слова наборы цифр. Т.е. цифры игнорируются вообще. Другими словами, при наборе строки поиска "дрель 123 bosch" массив слов будет состоять из "дрель" и "bosch". А при строке "дрель WGH123 bosch" массив будет "дрель", "WGH" и "bosch". Но написать свою функцию разбора строки на слова врядли будет проблематично для читателей. А так да, идея предложена хорошая. Набирай хоть "дрель bosch", хоть "bosch дрель" - выборка будет одинакова.
  • 1
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#68 hed

    Пользователь

  • Заблокированные
  • PipPip
  • 12 сообщений
Репутация: -4
Начинающий

Отправлено 27 April 2012 - 04:29 PM

То, что с цифрами засада, это плохо. Потому как часто ищут по конкретной модели, а модели почти всегда с указанием цифр. :(

... а сама функция (файлик) autocomplete может быть другой (их вроде много всяких версий) для такого поиска, или нет и это никак не связано ?

#69 badisoft

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

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

Отправлено 27 April 2012 - 05:06 PM

То, что с цифрами засада, это плохо

Это не плохо и не хорошо, это особенность функции str_word_count().
Примените другую или напишите свою из трех строчек, не вижу проблемы.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#70 meta-s

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

  • Download User
  • PipPipPip
  • 33 сообщений
Репутация: 2
Начинающий

Отправлено 09 May 2012 - 03:18 PM

Ни в какую не хочет работать данный модуль.
Все меняю, однако никакой реакции сайта на изменения не наблюдаю. Даже в логах с ошибками ничего не проявляется
  • 0

#71 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 09 May 2012 - 03:22 PM

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


Или почистите кеш вручную, или Вы меняете что-то где-то не там.
Модуль 100% рабочий и рабочий просто обалденно )))
  • 0

#72 badisoft

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

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

Отправлено 09 May 2012 - 03:33 PM

Или почистите кеш вручную

В принципе, совет из этой же серии, но наглядно увидите:
На странице, где "не работает" посмотрите исходный HTML-код (это позволяют все браузеры) и убедитесь, что внесенные Вами в head.tpl.html изменения действительно присутствуют. Если их нет, значит ваш HTML берется откуда угодно (кэш браузера, кэш прокси по дороге, кэш вашего сайта) но точно не из файла, куда Вы внесли изменения :).

А, да, чуть не забыл. Подавляющее большинство проблем было с мешаниной кодировок UTF-8/cp1251. По английским словам в названии товара ищет?
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#73 meta-s

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

  • Download User
  • PipPipPip
  • 33 сообщений
Репутация: 2
Начинающий

Отправлено 10 May 2012 - 07:28 AM

Изменения в файлах через просмотр HTML видно. Все файлики залил как полагается. В принципе многие доработки на своем сайте http://meta-s.ru инсталлировал сам. Но данный модуль чуток "огрызается". IE8 версии выдает ошибку на вхождение в строку

$("#targetDiv").autocomplete(/"devsearch.php", {
"Объект не поддерживает это свойство или метод"
FireFOx просто глотает ошибку и идет дальше.
В итоге поиск работает как обычно...

Может ли быть такое, что проблема связана с тем, что модуль подключается из файла "block/search.tpl.html" а не прописан в файле index.tpl.html?
  • 0

#74 Dbus

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

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

Отправлено 10 May 2012 - 08:33 AM

$("#targetDiv").autocomplete(/"devsearch.php", {


откуда там слеш взялся ?

и если файл подключается из блока (хотя смысл этого не совсем понятен) то и пути к файлам переписывайте.
  • 0
502 Bad Gateway

#75 badisoft

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

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

Отправлено 10 May 2012 - 09:29 AM

откуда там слеш взялся ?

Слэш там нужен при применении моего ЧПУ, иначе нафиг не сдался (хотя и не мешает ничем), но стоять он должен внутри кавычек, а не перед ними. Думаю, что исходно дело не в слэше, это уже результат попыток исправить :). Хотя, конечно, надо либо убрать, либо поставить на место.

Если "Объект не поддерживает это свойство или метод", то дело, как мне думается, в том, что не загружаются по какой-то причине библиотеки jquery.autocomplete.pack.js и/или jquery.easing.1.3.js, в которых и находится "это свойство или метод".
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#76 meta-s

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

  • Download User
  • PipPipPip
  • 33 сообщений
Репутация: 2
Начинающий

Отправлено 10 May 2012 - 11:17 AM

откуда там слеш взялся ?

Слэш там нужен при применении моего ЧПУ, иначе нафиг не сдался (хотя и не мешает ничем), но стоять он должен внутри кавычек, а не перед ними. Думаю, что исходно дело не в слэше, это уже результат попыток исправить :). Хотя, конечно, надо либо убрать, либо поставить на место.

Если "Объект не поддерживает это свойство или метод", то дело, как мне думается, в том, что не загружаются по какой-то причине библиотеки jquery.autocomplete.pack.js и/или jquery.easing.1.3.js, в которых и находится "это свойство или метод".


Инструкции все пошагово взял с Вашего сайта. Файлы копировал. В них изначально изменений не вносил.

Они открываются
http://meta-s.ru/dat...utocomplete.css
http://meta-s.ru/dat...omplete.pack.js
http://meta-s.ru/dat...y.easing.1.3.js

файл devsearch.php в корне сайта из Вашего архива.
При попытке к нему обратить по прямому адресу выдает пустой документ. . .
Поиск вообще никаким образом не хочет работать с выпадающим списком. У кого нибудь есть еще предположения что не так работает?
  • 0

#77 badisoft

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

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

Отправлено 10 May 2012 - 11:37 AM

При попытке к нему обратить по прямому адресу выдает пустой документ. . .

Так и должно быть, ведь вы не передали devsearch-у никаких параметров.
посмотрите результат запроса с моего тестового сайта - http://cpu.badisoft....=bosch&limit=10
bosch - это сам запрос, 10 это максимальное количество ответов (чтобы не получить при удачном запросе выборку в пару тысяч товаров).
Если при таком запросе вы получаете что-то осмысленное (явный список товаров), значит что-то не так в ява-скриптах.
"bosch", естественно, надо сменить на каую-либо свою строку, которая точно найдется в названиях товаров.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#78 meta-s

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

  • Download User
  • PipPipPip
  • 33 сообщений
Репутация: 2
Начинающий

Отправлено 10 May 2012 - 11:40 AM

http://meta-s.ru/dev...?q=ЭБУ&limit=10 Запрос срабатывает... Можно Вашу icq? в личной переписке попробуем победить беду, за благодарность, само собой. :)
  • 0

#79 badisoft

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

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

Отправлено 10 May 2012 - 11:46 AM

Можно Вашу icq?

Это совершенно излишне. Если я могу ответить, то отвечу и здесь. А если не могу, то толку Вам от моего ICQ? Но здесь мой ответ, возможно, будет полезен не только Вам.

проверяйте, грузятся ли до вышеуказанных ява-библиотек библиотека jquery. Насколько помню, она нужна для работы автокомплита. И она должна грузиться ДО библиоте автоомплита.

PS. я Вам в личке уже писал нормальный путь - фтп-логин-пароль. Какой мне смысл тратить полчаса на беседу с Вами, если я без этой беседы исправлю за десять минут? :)
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#80 badisoft

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

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

Отправлено 10 May 2012 - 05:02 PM

Какой мне смысл тратить полчаса на беседу с Вами, если я без этой беседы исправлю за десять минут? :)


1. У Вас ява-скрипты НЕ ИЗ МОЕГО АРХИВА. Не знаю, влияет это на что-то или нет, но факт. Я их перезаписал своими, пока разбирался, так что если Ваши Вам чем-то дороги - восстанавливайте их из бэкапа.

2. у вас в файле index.tpl.html имя формы для поиска не такое, как в шаблоне default. В default оно formpoisk, а у Вас searchformblock. Возможно, дело в этом. Проверить не могу, т.к. вы дали довольно ограниченный ftp-доступ, без редактирования.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)