PDA

Zobacz pełną wersję : VirtueMart - produkty z podkategorii w kategoriach gównych



Talyn
30-07-2013, 16:14
Witam
Mam pewien problem z kategoriami VM2, ponieważ chciałem sobie ustawić produkty w podkategoriach.
Np.:
- koszulki
-- męskie
-- damskie

Domyślnie po kliknięciu na koszulki pojawiają się obrazki podkategorii, ale to mi akurat nie jest potrzebne, bo każdy może sobie kliknąć na nie w menu.
Chciałbym, aby klikając na koszulki pojawiały się jednocześnie produkty z obu podkategorii. A dopiero, gdy ktoś będzie chciał wybrać konkretnie męskie, to kliknie na nie.

W VM1.1.9 było takie rozwiązanie, trzeba było ręcznie zmienić kod. Ale do VM2 nie znalazłem.
Czy ktoś może wie, jak to zrobić?

Talyn
30-07-2013, 21:48
Mam już rozwiązanie:
szukamy w pliku administrator\components\com_virtuemart\models\pro duct.php
funkcji setKeyWord

Po niej wklejamy kod:


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);
}
}
}


Następnie szukamy wpisu:


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


Zastępujemy go:


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;
}


Następnie możemy z szablonu kategorii wyciąć wyświetlanie ikon podkategorii, o ile ich nie potrzebujemy.