Legosp Forum

Shop-Script "Legosp" => Разработка => Тема начата: nictboom от Сентября 12, 2011, 10:54:07 pm

Название: Фильтр в категориях
Отправлено: nictboom от Сентября 12, 2011, 10:54:07 pm
Возник вопрос: как реализовать идею при выборе категории , что бы появлялись параметры (доп.параметры) относящиеся к этой категории/товарам?
Для себя решил "косяво"(через доп. поля в базе).
Есть идеи?
У меня была идея:  добавить в PRODUCT_OPTIONS поле categoryID(или попроще), и потом при редактировании параметра, добавлять ID категории.
И при выборе категории, через условие, вылазиют параметры, те которые к ней(или товару) относятся.
как то так, если правильно объяснил...
Название: Re: Фильтр в категориях
Отправлено: nictboom от Сентября 13, 2011, 12:20:45 am
не slamm, эт понятно.
примером может служить любой солидный ресурс, в котором зайдя в категорию, ты видишь только фильтр относительно данной категории/товара.
У себя же я максимум решил добавив в категорию и в родительский доп.параметр "сводящее звено", хотя это тупенько.
Достаточно добавить в родительский доп.параметр помимо productID ещё и categoryID(именно при редактировании параметра, ...я не смог своять чёт фукнцию :( ) и условием отбирать в фильтре: {if $option.categoryID==$selected_category[0]}.."параметры относящиеся к данной категории"..{/if}
ps забыл добавить: фильтр по доп.парам. у меня выведен отдельно в блок.
вот мой, пример tehnoboom/com/ua (категории: кондиционеры и конвекторы)
Название: Re: Фильтр в категориях
Отправлено: nictboom от Сентября 13, 2011, 03:29:50 pm
я просто не знаю как вытянуть доп.параметры из таблицы PRODUCT_OPTIONS_TABLE для определённой категории/товара, не вижу привязки. для PRODUCT_OPTIONS_VAL_TABLE есть общее - productID.
Название: Re: Фильтр в категориях
Отправлено: nictboom от Сентября 16, 2011, 12:29:17 am
Серёга, спасибо за наводку. ;)
вроде получилось. всё же остаются вопросы.
вот пример рабочего exsearch.php(то что намутил):<?
if (!isset($_GET["search_expanded"]))
{
  $sql="SELECT po.optionID, po.`name` FROM ".PRODUCT_OPTIONS_TABLE." as po LEFT JOIN ".PRODUCT_OPTIONS_V_TABLE." as pov USING(optionID) LEFT JOIN ".PRODUCTS_TABLE." as p USING(productID) WHERE po.optionID=pov.optionID";
 $sql .=" and p.categoryID in (".$categoryID.") order by sort_order";
  $options = array();
  $q=db_query($sql);           
  while ($row = db_fetch_row($q))
     {
     $options[$row[0]]['name'] = $row[1];   
     $options[$row[0]]['variant'] = db_arAll("select * from ".PRODUCT_OPTIONS_VAL_TABLE." where optionID=".$row[0]." order by sort_order");   
     } 
         
  $smarty->assign("options_search", $options);
}

?>
но если глубина вложения категории 3-я (например: "климат.техника"->"конвекторы"->"airelec"), то выводит только для 3-ей родительской категории (например для "airelec"), то что позволяет код.
 а вот как сделать что бы и 2-й уровень категории(например "конвекторы")цепляло?..
тут наверное без добавления в базу поля никак..