Перейти к содержанию
Форум поддержки пользователей VamShop

Фильтры-фильтры


Рекомендуемые сообщения

Есть бокс "Фильтры". Он отображается, на сколько я понимаю, на странице определенной категории, вывод сделал, опираясь на данные из БД.

SQL-запрос: SELECT `products_parameters_id`, `products_parameters_name`, `products_parameters_titlesuff`, `categories_id` FROM `products_parameters` LIMIT 0, 30 ; 

[table]

[tr]

[td]products_parameters_id[/td]

[td]products_parameters_name[/td]

[td]products_parameters_titlesuff[/td]

[td]categories_id[/td]

[/tr]

[tr]

[td]12[/td]

[td]Кол-во подш-ов[/td]

[td][/td]

[td]82[/td]

[/tr]

[tr]

[td]13[/td]

[td]Емкость шпули[/td]

[td]м[/td]

[td]82[/td]

[/tr]

[tr]

[td]14[/td]

[td]вес[/td]

[td]гр[/td]

[td]82[/td]

[/tr]

[tr]

[td]15[/td]

[td]Передат-ое число[/td]

[td][/td]

[td]82[/td]

[/tr]

[tr]

[td]16[/td]

[td]Длина[/td]

[td]см[/td]

[td]153[/td]

[/tr]

[tr]

[td]17[/td]

[td]Вес[/td]

[td]г[/td]

[td]153[/td]

[/tr]

[tr]

[td]18[/td]

[td]Крючки[/td]

[td][/td]

[td]153[/td]

[/tr]

[tr]

[td]19[/td]

[td]Глубина[/td]

[td]м[/td]

[td]153[/td]

[/tr]

[tr]

[td]33[/td]

[td]Тест max[/td]

[td]г[/td]

[td]54[/td]

[/tr]

[tr]

[td]32[/td]

[td]Тест min[/td]

[td]г[/td]

[td]54[/td]

[/tr]

[tr]

[td]30[/td]

[td]Кол-во колец[/td]

[td][/td]

[td]54[/td]

[/tr]

[tr]

[td]29[/td]

[td]Вес[/td]

[td]г[/td]

[td]54[/td]

[/tr]

[tr]

[td]28[/td]

[td]Трансп[/td]

[td]см[/td]

[td]54[/td]

[/tr]

[tr]

[td]27[/td]

[td]Длина[/td]

[td]см[/td]

[td]54[/td]

[/tr]

[tr]

[td]31[/td]

[td]Кол-во секций[/td]

[td][/td]

[td]54[/td]

[/tr]

[/table]

из таблицы видно, что параметры с ID 27-33 относятся к категории 54.

Структура категорий в магазине следующая:

- Категория1, ID 54

---Категория1, ID 71

------Категория1, ID 81

------Категория2, ID 82

---Категория2, ID 72

------Категория1, ID 91

------Категория2, ID 92

---Категория3, ID 73

------Категория1, ID 101

------Категория2, ID 102

Вопрос, как лучше поступить, если задача состоит в том, чтобы выводить бокс фильтры в категориях с ID:

81, 82, 91, 92, 101, 102 ?

Если руками через админку (Каталог - Параметры), то проблема в том, что категории одинаково называются и в выпадающем списке нельзя понять кто её родитель, чтобы знать нужно ли этой категории те или иные параметры.

Возможно есть какой-то другой способ решения проблемы, пускай если необходимо запросы в БД послать или отредактировать файл-php...

Суть в том, что все "дети" категории 54 имеют одни и те же параметры\характеристики товаров и фильтры для них применяются одни и теже, а задавать фильтры можно только на конкретную, одну категорию. Как избавится от дубляжа, двойной работы, избытка (в идеале) или как решить задачу (оптимально, как минимум)? 

Ссылка на сообщение
Поделиться на другие сайты

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

Ссылка на сообщение
Поделиться на другие сайты

спасибо. колупаюсь :)

кстати, в файле /templates/шаблон/source/boxes/params_filters.php

есть 1 недочёт..

там где формируется url для выбора параметра в боксе фильтров, там указано явно амперсанд. (&q=) , но когда категория будет иметь seo-url работать фильтры не будут, потому что нужен будет знак вопросика :)

Ссылка на сообщение
Поделиться на другие сайты

или вы не внимательно прочитали или я полный плуг... :(

но когда категория будет иметь seo-url

seo-url заканчивается на .html...

site.com/category_name.html

выбрали фильтр и должно быть:

site.com/category_name.html?q=XXX

UPDATE:

я полный плуг)) не знаю как так, только сейчас обнаружил, что ф. vam_href_link решает проблему, что вставлять знак вопроса или амперсанд  :o

Ссылка на сообщение
Поделиться на другие сайты

строка 57:

		$blockItems[$i]['url'] = vam_href_link(FILENAME_DEFAULT, vam_category_link($categories_id, $categories['categories_name']) .'&q='.$set_query.$price_query);
и строка 87:
		$values[$j]['url'] = vam_href_link(FILENAME_DEFAULT, vam_category_link($categories_id, $categories['categories_name']) .'&q='.$set_query.$price_query);

думаю, нужна проверочка текущий URL SEO или НЕ SEO, если SEO то знак вопроса подставлять, в противном случае амперсанд.

ну, вам виднее, это лишь моё имхо :)

UPDATE:

ой, забыл, нужно ещё будет учесть paginaging (постраничную разбивку, потому что в таком случае, действительно даже в seo-url, параметр для фильтра будет вторым, а соответственно нужен будет амперсанд).

UPDATE2:

это сообщение можно удалить за ненадобностью.

Ссылка на сообщение
Поделиться на другие сайты

да, но есть идея как сделать так, чтобы всех устроило.

Я предлагаю изменить работу фильтров след. образом:

- добавить возможность задавать фильтры на группу категорий;

- при выборе параметра выводить результаты на странице не относящихся к категориям вообще, т.к. возможен вариант, что фильтр задан на группу категорий;

Конечно, это не просто реализовать, но таким образом, если бы фильтры работали, я думаю, что всем бы понравилось...

Ссылка на сообщение
Поделиться на другие сайты

я заметил, что магазин использует ф. разнообразные, например для определения есть ли у категории родители или дети, ф. генерации тега с атрибутами для картинки, полей формы, т.п. много чего, такое себе API.. Если бы у меня была документация, чтобы не городить огород, я бы попробовал переделать эти самые фильтры. Я понимаю, что у вас есть свои задачи и их не мало наверняка, по этому, обещаний никаких не требую.. Разве, что просьба, чтобы взяли на заметку, подумали как вообще концепция пригодна, если бы была реализована, вошла бы в след. версиях или нет...

Ссылка на сообщение
Поделиться на другие сайты

Ну да, есть фильтры, есть атрибуты товара, есть доп. поля товаров, есть доп. поля покупателей и т.д. и т.п.

Но сами фильтры в основном в тех файлах, что я выше указал +

/includes/modules/product_info.php - тут вывод на страницу карточки товара.

/includes/modules/default.php - там есть код фильтров для вывода их в список товара.

Ссылка на сообщение
Поделиться на другие сайты

в общем изменил работу фильтров след. образом:

- при открытии дочерних категорий (у которых первый родитель имеет параметры\фильтры) отображать фильтры в боксе тех товаров, которые есть в текущей открытой категории...

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

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...