Чтоб вывести картинку (логотип) производителя настроенный в админке, например в карточке товара - я сделал следующее :
В administrator\components\com_virtuemart\models\manufacturer.php добавил метод
public function getManufacturerSingle( $manufacturer_id ) {
$mainframe = JFactory::getApplication();
$where = array();
$where[] .= ' `m`.`virtuemart_manufacturer_id` = '. $manufacturer_id;
$where[] .= ' `m`.`published` = 1';
$whereString = '';
if (count($where) > 0) $whereString = ' WHERE '.implode(' AND ', $where) ;
$select = ' `m`.*,`#__virtuemart_manufacturers_'.VMLANG.'`.*, mc.`mf_category_name` ';
$joinedTables = 'FROM `#__virtuemart_manufacturers_'.VMLANG.'` JOIN `#__virtuemart_manufacturers` as m USING (`virtuemart_manufacturer_id`) ';
$joinedTables .= ' LEFT JOIN `#__virtuemart_manufacturercategories_'.VMLANG.'` AS mc on mc.`virtuemart_manufacturercategories_id`= `m`.`virtuemart_manufacturercategories_id` ';
$groupBy=' ';
$select .= ',mmex.virtuemart_media_id ';
$joinedTables .= 'LEFT JOIN `#__virtuemart_manufacturer_medias` as mmex ON `m`.`virtuemart_manufacturer_id`= mmex.`virtuemart_manufacturer_id` ';
$groupBy=' GROUP BY `m`.`virtuemart_manufacturer_id` ';
$whereString = ' ';
if (count($where) > 0) $whereString = ' WHERE '.implode(' AND ', $where).' ' ;
$ordering = $this->_getOrdering();
return $this->_data = $this->exeSortSearchListQuery(0,$select,$joinedTables,$whereString,$groupBy,$ordering );
}
После этого в шаблоне вывода ссылки на производителя для карточки товара templates\shoker\html\com_virtuemart\productdetails\default_manufacturer.php вписал:
после
$text = $this->product->mf_name;
$mmodel = VmModel::getModel('Manufacturer');
$manufacturer = $mmodel->getManufacturerSingle($this->product->virtuemart_manufacturer_id);
$mmodel->addImages($manufacturer);
и заменил
if (strtolower(JRequest::getWord('output')) == "pdf") {
echo JHTML::_('link', $link, $text);
} else {
?>
<span class="bold"><?php echo JText::_('COM_VIRTUEMART_PRODUCT_DETAILS_MANUFACTURER_LBL')?></span><a class="modal" rel="{handler: 'iframe', size: {x: 700, y: 550}}" href="<?php echo $link ?>"><?php echo $text ?></a>
<?PHP } ?>
на
if($manufacturer[0]->file_url_thumb != '') {
echo '<a href="'.$link .'"><img src="/'.$manufacturer[0]->file_url_thumb.'" alt="'.$text.'" title="'.$text.'"/></a>';
} else {
/* Avoid JavaScript on PDF Output */
if (strtolower(JRequest::getWord('output')) == "pdf") {
echo JHTML::_('link', $link, $text);
} else {
?>
<span class="bold"><?php echo JText::_('COM_VIRTUEMART_PRODUCT_DETAILS_MANUFACTURER_LBL')?></span><a class="modal" rel="{handler: 'iframe', size: {x: 700, y: 550}}" href="<?php echo $link ?>"><?php echo $text ?></a>
<?PHP }
} ?>
Если есть назначенная картинка - выведет картинку, если нет - выведет строковую ссылку. Да, я у себя отрубаю ссылки эти на производителей, чтоб они вес страницы не "воровали" - так что правильнее выводить просто текстом производителя или просто картинку, без ссылки, ага )