В стандарте на главной странице магазина Virtuemart2 выводит только корневый категории. Как вывести подкатегории? Покажу как вывести подкатегории первого уровня.
Открываем файл /components/com_virtuemart/views/virtuemart/view.html.php и после
$categoryChildren = $cache->call( array( 'VirtueMartModelCategory', 'getChildCategoryList' ),$vendorId, $categoryId );
добавляем
foreach ($categoryChildren as $category) {
$category->childs = $cache->call( array( 'VirtueMartModelCategory', 'getChildCategoryList' ),$vendorId, $category->virtuemart_category_id );
$categoryModel->addImages($category->childs,1);
}
Сохраняем, закрываем.
Далее идем в шаблон. Файл шаблона главной страницы находится в /components/com_virtuemart/views/virtuemart/tmpl
причем за вывод категорий отвечает default_categories.php Нам нужно скопировать этот файл в папку нашего шаблона файла по следующему пути - /templates/наш_шаблон/html/com_virtuemart/virtuemart
Открываем файл и перед
<?php $iCategory ++;
добавляем
<?php if ($category->childs ) { ?>
<div class="category floatleft<?php echo $category_cellwidth . $show_vertical_separator ?>" style="text-align: center;width:100%;">
<?php
foreach ($category->childs as $child) {
$caturl = JRoute::_('index.php?option=com_virtuemart&view=category&virtuemart_category_id='.$child->virtuemart_category_id);
$cattext = $child->category_name;
?>
<div style="display:block;float:left;">
<div class="spacer">
<h2>
<a href="/<?php echo $caturl ?>" title="<?php echo $child->category_name ?>">
<?php echo $child->category_name ?>
<br />
<?php
if (!empty($child->images)) {
echo $child->images[0]->displayMediaThumb("", false);
}
?>
</a>
</h2>
</div>
</div>
<?php } echo '</div>'; } ?>
правим верстку как нам нужно и наслаждаемся....
UPDATE.
В комментах Андрей предложил решение для VM 2.0.24c
в /components/com_virtuemart/views/virtuemart/view.html.php
$cache = JFactory::getCache('com_virtuemart','callback');
foreach ($categoryChildren as $category) {
$category->childs = $cache->call( array( 'VirtueMartModelCategory', 'getChildCategoryList' ),$vendorId, $category->virtuemart_category_id );
}