Суть. Задался желанием создать фильтры для сортировки товаров по определенным полям из базы данных. К примеру есть поле product_name, у меня это поле не заполняется, а выбирается из выпадающего списка, (телевизор, ноутбук, стиральная машина, холодильник и т.д.) подскажите код модуля который будет давать возможность выбрать из выпадающего списка к примеру вывод всех товаров с таким именем. У меня есть модуль быстрого перехода к товару из категории в которой вы находитесь. Код следующий: <?php defined('_VALID_MOS') or die('Restricted access'); global $mosConfig_offset, $mosConfig_live_site, $Itemid; //setup Itemid $query = "SELECT id" . "\n FROM #__menu" . "\n WHERE type = 'components'" . "\n AND link LIKE '%com_virtuemart%'"; $database->setQuery($query); $Itemid = $database->loadResult(); $catid = $_GET['category_id']; if ( $catid != '' ) { $query = "SELECT a.product_id, a.product_name, a.product_sku, b.category_id FROM jos_vm_product AS a, jos_vm_product_category_xref AS b WHERE b.category_id = '". $catid ."' AND a.product_id = b.product_id AND a.product_publish = 'Y' ORDER BY a.product_name"; } $database->setQuery($query); $rows = $database->loadObjectList(); $c = count($rows); if( $c > 0 ) { ?> <br /> <select name="product" onchange="window.location=value;"> <option selected value="">Быстрый переход: выберите товар из списка <?php foreach ($rows as $row) { $link = sefRelToAbs('index.php?page=shop.product_details&flypage=shop.flypage&product_id='. $row->product_id .'&category_id='. $row->category_id .'&option=com_virtuemart&Itemid='. $Itemid); echo '<option value="'. $link .'">'. $row->product_name .' - '. $row->product_sku; } ?> </select> <?php } ?> Подсобите на примере научиться создавать необходимые фильтры.
$query = "SELECT distinct a.manufacturer_id,a.mf_name FROM #__{vm}_manufacturer AS a "; if (!empty( $category_id ) ) { $query .= ", #__{vm}_product_category_xref AS d, " . " #__{vm}_product AS b, " . " #__{vm}_product_mf_xref AS c " . " WHERE d.category_id='$category_id'" . " AND d.product_id = b.product_id AND b.product_publish='Y' " . " AND b.product_id = c.product_id AND c.manufacturer_id = a.manufacturer_id "; } $query .= "ORDER BY mf_name ASC"; $db = new ps_DB; $db->query( $query ); $res = $db->record; ?> <select class="inputbox" name="manufacturer_id" onchange="order.submit()"> <option value="">Выбрать производителя</option> <?php foreach ($res as $manufacturer) { $selected = ''; if( @$_REQUEST['manufacturer_id'] == $manufacturer->manufacturer_id ) { $selected = 'selected="selected"'; } echo "<option value=\"".$manufacturer->manufacturer_id ."\" $selected>". $manufacturer->mf_name ."</option>\n"; } ?> </select> отбор по производителю - подточи хоть под че.
К примеру у меня есть поле product_brands или product_country_production (поля создавались дополнительно) - напиши полный код который будет выводить выпадающим списком данные без учета категории в которой находишься. При выборе из списка выводятся все товары имеющие выбранный параметр. Добавлено через 1 час 47 минут Полный код должен так выглядеть? В этом случае список производителей выводиться, но при выборе производителя товары не выводятся.
я для 1.0.* в shop.browse.php код давал. Для 1.1.* не смотрел пока.но логика запроса впринципе одинакова.
morph, А кроме shop.browse.php, куда еще надо вносить изменения? И какие изменения вносить чтобы настроить фильтр по цене?
Если фильтрация по новым полям,или по специфичным,ты прав, правкой только файла где вывод отбора не обойтись(если передовать запрос прямо в shop.browse.php) - для этого в виртуе есть файлик shop_browse_queries.php где обрабатываются запросы - там добавлять нужные тебе. По поводу фильтра по цене-что именно должно там быть?-цена "от" и "до"? - 2 выхода: или добавлять свои инпуты и запрос в shop_browse_queries.php. или ... есть уже отбор))) - отбор по цене появляеться в расширенном выборе характеристик(когда созданы типы и по ним можно отбор делать: shop.parameter_search_form.php:
morph, спасибо, но если не сложно, что подправить в shop_browse_queries.php для работы фильтра по вновь созданному полю ? (И еще очень важно: я говорю о фильтре, а не сортировщике то есть товары не попавшие под условия выбора вообще не отображаются). __________________________ Joomla 1.0.15+Virtuemart1.0.15