Привет.
Хочу показать Вам работающую версию доработки 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 ';
}
Вот и все. Осталось сохранить файл и обновить страничку.


