Понадобилось в выводе списка производителей вывести их количество товаров, а потом и вовсе скрыть производителей с 0 товаром. Сделал следующее - идем в файл /components/com_virtuemart/views/manufacturer/tmpl/default.php и после defined('_JEXEC') or die('Restricted access'); добавляем новую функцию:
function countManCat($cat_id=0) {
$db = JFactory::getDBO();
if ($cat_id > 0) {
$q = 'SELECT count(#__virtuemart_product_manufacturers.virtuemart_product_id) AS total
FROM `#__virtuemart_products`, `#__virtuemart_product_manufacturers`
WHERE `#__virtuemart_product_manufacturers`.`virtuemart_manufacturer_id` = '.(int)$cat_id.'
AND `#__virtuemart_products`.`virtuemart_product_id` = `#__virtuemart_product_manufacturers`.`virtuemart_product_id`
AND `#__virtuemart_products`.`published` = "1" ';
$db->setQuery($q);
$count = $db->loadResult();
} else $count=0 ;
return $count;
}
далее внутри цикла foreach ( $this->manufacturers as $manufacturer ) { находим
$manufacturerImage = $manufacturer->images[0]->displayMediaThumb("",false);
и после него добавляем вывод нашей функции:
$m_count = countManCat($manufacturer->virtuemart_manufacturer_id);
далее переменную $m_count можем использовать внутри вывода информации о производители или поставить в начале условие на вывод не пустых, пример:
if($m_count>0) {
?>
<li>
<a title="<?php echo ucwords(strtolower($manufacturer->mf_name)); ?>" href="<?php echo $manufacturerURL; ?>"><?php echo ucwords(strtolower($manufacturer->mf_name)); ?></a>
</li>
<?php
}
вот такие пироги 🙂

