Понадобилось в выводе списка производителей вывести их количество товаров, а потом и вовсе скрыть производителей с 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 }
вот такие пироги 🙂