Привет.
Хочу показать Вам работающую версию доработки viruemart2
Появилась задача вывести весь товар из подкатегорий в главную категорию магазина.
Итак
Ищем файл /administrator/components/com_virtuemart/models/product.php
Не забудьте сделать резервную копию этого файла!:)
Открываем product.php через текстовый редактор (я пользуюсь notepad++)
Ищем через поиск VirtueMartModelProduct и добавляем после кавычки { данный код
function untreeCat($vm_catid, &$ccont){
$db = JFactory::getDBO();
$query = 'SELECT `category_child_id` FROM `#__virtuemart_category_categories` WHERE `category_parent_id`="'.$vm_catid.'"';
$db->setQuery($query);
$db->query();
$rows = $db->loadRowList();
if (empty($rows)) {
return;
} else {
foreach($rows as $row) {
array_push($ccont, $row[0]);
$kat = $row[0];
$this->untreeCat($kat, $ccont);
}
}
}
у меня получилось так
class VirtueMartModelProduct extends VmModel { function untreeCat($vm_catid, &$ccont){ $db = JFactory::getDBO(); $query = 'SELECT `category_child_id` FROM `#__virtuemart_category_categories` WHERE `category_parent_id`="'.$vm_catid.'"'; $db->setQuery($query); ....
далее так же через поиск ищем if ($virtuemart_category_id > 0) { и заменяем всю конструкцию if ($virtuemart_category_id > 0) {
…..
…..
}
на данный код
if ($virtuemart_category_id > 0) { $joinCategory = true ; $catscont = array(); $this->untreeCat($virtuemart_category_id, $catscont); $qkat = ' `#__virtuemart_product_categories`.`virtuemart_category_id` IN('.$virtuemart_category_id; foreach ($catscont as &$kat){ $qkat .= ', '.$kat; } $qkat .= ')'; $where[] = $qkat; }
у меня получилось так
if ($virtuemart_category_id > 0) { $joinCategory = true ; $catscont = array(); $this->untreeCat($virtuemart_category_id, $catscont); $qkat = ' `pc`.`virtuemart_category_id` IN('.$virtuemart_category_id; foreach ($catscont as &$kat){ $qkat .= ', '.$kat; } $qkat .= ')'; $where[] = $qkat; } if ($isSite and !VmConfig::get('show_uncat_child_products',TRUE)) { $joinCategory = TRUE; $where[] = ' `pc`.`virtuemart_category_id` > 0 '; }
Вот и все. Осталось сохранить файл и обновить страничку.