Сложный Поиск
#1
Отправлено 21 Апрель 2011 - 01:07
Я планирую открыть интернет магазин Шины и Диски. Стандартным для такого интернет магазина является подбор товара по характеристикам шин/дисков, а также по модели автомобиля. Понятное дело, что для этого нужен отдельный модуль. Фронтенд думаю можно написать на js, но мне необходимо знать могу ли я как-то выбрать данные из базы, либо послав поисковый запрос из скрипта, либо настроив скриптом стандартный фильтр по характеристикам товаров, ну т.е. чтобы скрипт инициализировал существующий фильтр значениями (при этом желательно чтобы фильтр не отображался, т.е. использовался полностью мой ГУИ), или может быть есть какой-то другой способ? Как думаете такое возможно?
Обычное использование стандартных фильтров неудобно, т.к. похоже они видны только в категориях, т.е. я не могу расположить их в произвольном месте сайта. А также выбор по автомобилям обычным использованием стандартных фильтров не реализовать. Т.е. нужна какая-то надстройка.
#3
Отправлено 23 Апрель 2011 - 13:56
Я тут посидел, немного подумал и сделал надстройку на ДжаваСкрипте над вашей фильтрацией по товарам. Выкладываю код
Цитата
/* тут будут хранится соответствие названии характеристики её коду для передачи скрипту поиска*/
var Widthes = new Object();
var Profiles = new Object();
var Diameters = new Object();
/* Переносим параметры из БД в массив JavaScript */
function InitParameters(param, id, name)
{
if( param == "Ширина" )
Widthes[ id ] = name;
if( param == "Профиль" )
Profiles[ id ] = name;
if( param == "Диаметр" )
Diameters[ id ] = name;
}
/* Модифицируем форму поиска, актуализируем её необходимыми кодами-коммандами для скрипта поиска*/
function params(form, width, profile, diameter)
{
form["param1"].value = "1";
form["param1"].name = Widthes[width];
form["param2"].value = "1";
form["param2"].name = Profiles[profile];
form["param3"].value = "1";
form["param3"].name = Diameters[diameter];
form.submit();
}
</script>
<table>
<tr>
<td>
Подбор шин по автомобилю
По-умолчанию ищутся шины с размерами 205/605/R16
<form action="" method="get">
<!--Переносим параметры из БД в массив JavaScript -->
{% FOR filter_attr_list %}
{% FOR values %}
<script language="JavaScript">
InitParameters( "{filter_attr_list.NAME}", "{filter_attr_list.values.VALUE}", "form[filter][attr][{filter_attr_list.ID}][{filter_attr_list.values.ID}]");
</script>
{% ENDFOR %}
{% ENDFOR %}
<!-- Шаблон формы, будем изменён при вызове функции params -->
<input type="hidden" name="param1">
<input type="hidden" name="param2">
<input type="hidden" name="param3">
<!-- Пока что жёсткий вызов, потом добавлю тут код по выбору марки и модели автомобиля и поиску значений
параметров дисков и шин в базе данных -->
<input type="button" value="Test" onClick="params(this.form, '205', '65', 'R16');">
</form>
Т.е. я сначала сохраняю имена, коды и значения характеристик из БД в массив JavaScript. Потом, если мне надо найти шины с определёнными характеристиками, я в форму записываю коды-комманды характеристик, выбирая их из этих массивов. Тут ещё отсутствует код по определению какой модели автомобиля какие характеристики соответствуют, т.е. предпоследняя строчка моего кода будет заменяться на дополнительный код, который будет отвечать за выбор модели, марки и т.п. БД будет реализована как текстовый файл, который будет читаться и парситься на том же JavaScript.
Интересует ваше экспертное мнение насколько это надёжно. Из слабых мест тут, как мне кажется:
1) Жёсткое использование имён характеристик "Ширина", "Профиль", "Диаметр". Но думается, если я не буду менять это в настройках категорий всё будет работать нормально
2) Вы можете неожиданно поменять скрипт на стороне сервера и форма начнёт работать по-другому.
В общем что вы всё об этом думаете? Имеет это право на существование?
#4
Отправлено 23 Апрель 2011 - 19:59
Думаю что движок не будет глобально меняться включая шаблонизатор и структуру форм. так что скрипт ваш будет жить.
#5
Отправлено 06 Июнь 2011 - 18:39
#6
Отправлено 08 Июнь 2011 - 08:32
#7
Отправлено 12 Июнь 2011 - 10:38
ps: в модификациях рост указан у каждого товара, а девочка или мальчик разделено на уровне каталога разными папками. http://polosatyjkot.ru/goods/Жакет-1
Покопавшись, понял, что штатного фильтра пока хватит.
Получилось вот так: http://polosatyjkot....og/Весна-Лето-5
Сообщение отредактировал homelectric: 13 Июнь 2011 - 00:32
#8
Отправлено 16 Июль 2011 - 00:22
#9
Отправлено 16 Июль 2011 - 20:27
#10
Отправлено 23 Июль 2011 - 11:24
На данный момент фильтры у корневой категории (Санфаянс) назначены, но фильтр над папками подкатегорий не появляется.
#11
Отправлено 25 Июль 2011 - 17:31
rka11 (23 Июль 2011 - 11:24) писал:
На данный момент фильтры у корневой категории (Санфаянс) назначены, но фильтр над папками подкатегорий не появляется.
#12
Отправлено 07 Декабрь 2012 - 10:55
Как и вообще, есть ли возможность подобное поместить в моем шаблоне (сияние)?
Играриум.рф
#13
Отправлено 07 Декабрь 2012 - 11:12
ais-83 (07 Декабрь 2012 - 10:55) писал:
Как и вообще, есть ли возможность подобное поместить в моем шаблоне (сияние)?
Играриум.рф
Вы можете сделать еще один Каталог товаров с такими пунктами: подарок начальнику, другу, девушке и т.д.. Разместить это меню можно, в принципе, где угодно. В этих разделах также могут быть и одинаковые товары. Так как Вы хотите сделать фильтр с определенными и ограниченными параметрами, то я думаю, это будет лучше реалитизовать именно так.
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных