Передо мной стояла задача создать каталог товаров для нескольких регионов.
В каждом регионе свой список товара и своя цена товара. Дополнительное условие, не отображать товар с ценой = 0.
Для этого я в документ товар добавил дополнительное обязательное поле «field_product_region».
в результате появилась БД content_type_product с полями nid vid и field_product_region_value
В файле template.php создал переменную сессии, определяющую выбранный регион
if (!isset($_SESSION['region_b'])){
$_SESSION['region_b'] =
77;
}
в файл моей темы (my_theme) template.php
скопировал из файла sites/all/modules/ubercart/uc_catalog/uc_catalog.module
функцию theme_uc_catalog_product_grid($products)
и назвал её my_theme_uc_catalog_product_grid($products)
в цикле это функции
foreach ($products as $nid) {
$product =
node_load($nid);
//Добавил переменную региона текущего товара
$product_region =
db_result(db_query('SELECT
field_product_region_value from content_type_product WHERE nid = %d',
$nid));
//и назначил проверку соответствия региона товара переменной региона сессии и чтобы цена была > 0
if ($product_region ==
$_SESSION['region_b'] &&
$product-
>sell_price > 0){
…
}
…
после этого обязательно сбросить весть caches
Так фильтруется отображения товара.
Теперь нужно фильтровать списки таксономии в панели каталога.
список таксономии создается в