Модуль категорий virtuemart 2 mod_virtuemart_category выводит 2 уровня категорий.

Чтобы вывести категории третьего уровня, подредактируем немного шаблон вывода модуля mod_virtuemart_category. Так как в папке tmpl находятся 3 шаблона, то возьмем для примера какой-то один, например, all.php В реальности лучше не трогать файлы модуля в папке modules, а скопировать их в папку шаблона, чтобы при обновлении модуля наши изменения не затерлись. В папке шаблона, соответственно, это будет папка html/mod_virtuemart_category и в ней шаблоны вывода модуля.

Открываем файл шаблона и смотрим, что там нужно сделать. В цикле по категориям нужно получить массив категорий третьего уровня, потом с помощью цикла вывести его.

В цикле по подкатегориям:

foreach ($category->childs as $iChild => $child) {

получаем категории уже следующего третьего уровня так:

$childs2 = $cache->call( array( 'VirtueMartModelCategory', 'getChildCategoryList' ),$vendorId=1, $child->virtuemart_category_id );

Эту строку мы позаимствовали из ключевого файла модуля mod_virtuemart_category.php

А в новых версиях Virtuemart это будет

$childs2 = $categoryModel->getChildCategoryList($vendorId, $child->virtuemart_category_id) ;

В любом случае стоит самим посмотреть, образец кода в файле mod_virtuemart_category.php, может у вас другая версия VM..

Полученный массив категорий 3-го уровня выводим с помощью цикла:

foreach ($childs2 as $iChild2 => $ch){}

Код самого цикла копируем из цикла по категориям второго уровня. Мы сейчас, для примера, рассматриваем шаблон all.php, значит код цикла будет выглядеть как-то так

$caturl = JRoute::_('index.php?option=com_virtuemart&view=category&virtuemart_category_id='.$child2->virtuemart_category_id);
$cattext = $child2->category_name;

 

Комментарии   

#2 Николай 25.02.2015 08:34
Цитирую Тахир:
Приветствую автор. Не могли бы подробнее описать в каких файлах что надо менять. Заранее благодарю.

Ок, дополнил
#1 Тахир 25.02.2015 04:53
Приветствую автор. Не могли бы подробнее описать в каких файлах что надо менять. Заранее благодарю.

Чтобы сделать комментарий, нужно авторизоваться на сайте!