Чтобы вывести список товаров подкатегорий в родительской категории нужно сделать следующие доработки

Для отображения товаров подкатегорий по желанию пользователя нужно добавить в файл модели внутри класса функцию, файл /administrator/components/com_virtuemart/models/product.php

 function CategTree($catid, &$catchild){ $db = JFactory::getDBO(); $query = 'SELECT `category_child_id` FROM `#__virtuemart_category_categories` WHERE `category_parent_id`='.$catid; $db->setQuery($query); $db->query(); $rows = $db->loadRowList(); if (empty($rows)) { return; } else { foreach($rows as $row) { array_push($catchild, $row[0]); $cat = $row[0]; $this->CategTree($cat, $catchild); } } } 

Затем меняем код (строки 313-316 VM 2.9.9e)

 if ($virtuemart_category_id > 0) { $joinCategory = TRUE; $where[] = ' `pc`.`virtuemart_category_id` = ' . $virtuemart_category_id; } 

На код

 if ($virtuemart_category_id > 0) { $joinCategory = TRUE; $subcat = JRequest::getCmd('subcat', '0'); if ($subcat==0) { $where[] = ' `pc`.`virtuemart_category_id` = ' . $virtuemart_category_id; } else { $catchild = array(); $this->CategTree($virtuemart_category_id, $catchild); $wh = ' `pc`.`virtuemart_category_id` IN('.$virtuemart_category_id; foreach ($catchild as &$cat){ $wh .= ', '.$cat; } $wh .= ')'; $where[] = $wh; } } 

Далее в макете категории например после заголовка h1 (строка 102) файл components/com_virtuemart/views/category/tmpl/default.php

 <h1><?php echo $this->category->category_name; ?></h1> <?php // Добавляем код <?php if (!empty($this->category->haschildren)) { ?> <script type="text/javascript"> function subcat() { var i=window.top.location.href; sc = document.getElementById('subcat'); if (sc.checked) { if(-1 < i.indexOf('?')) { window.top.location.href=i+'&subcat=1'; } else { window.top.location.href=i+'?subcat=1'; } } else { i=i.replace(/\?subcat=1/g,''); i=i.replace(/\&subcat=1/g,''); window.top.location.href=i; } } </script> <?php $subcat = JRequest::getCmd('subcat', '0');?> <input <?php if ($subcat>0) echo 'checked="checked"'; else echo 'unchecked="unchecked"'; ?> id="subcat" name="Name" type="checkbox" value="" onchange="subcat()"> Показать подкатегории. <?php } ?> 

Результат можно увидеть здесь

Добавить комментарий


Защитный код
Обновить