Как поправить вывод сопутствующих товаров в карточке товара и добавить кнопку "В корзину"
Нужны только артикулы и цена сопутствующего товара.
Надо убрать фото сопутствующего товара.
Редактируем файл default_relatedproducts.php в папке \components\com_virtuemart\views\productdetails
На форуме
http://forum.virtuemart.net нашлась ветка
http://forum.virtuemart.net/index.php?topic=100557.0что и помогло решить задачу.
Для добавления кнопки "В корзину"Вставляем после:
defined ( '_JEXEC' ) or die ( 'Restricted access' );
вот это
$model = new VirtueMartModelProduct();
$calculator = calculationHelper::getInstance();
$currency = CurrencyDisplay::getInstance();
И сам вывод кнопки вставляем в нужное место внутри цикла
<?php
foreach ($this->product->customfieldsRelatedProducts as $field) {
?>
код вывода кнопки
<?php
$product = $model->getProductSingle($field->custom_value,false);
$price = $calculator -> getProductPrices($product);
?>
<form method="post" class="product" action="index.php" id="addtocartproduct<?php echo $product->virtuemart_product_id ?>">
<div class="addtocart-bar" style="float: right; margin-top: 20px;">
<?php // Display the quantity box ?>
<span class="quantity-box">
<input style="display:none;" type="text" class="quantity-input" name="quantity[]" value="1" />
</span>
<?php // Display the quantity box END ?>
<?php // Add the button
$button_lbl = JText::_('COM_VIRTUEMART_CART_ADD_TO');
$button_cls = ''; //$button_cls = 'addtocart_button';
if (VmConfig::get('check_stock') == '1' && !$product->product_in_stock) {
$button_lbl = JText::_('COM_VIRTUEMART_CART_NOTIFY');
$button_cls = 'notify-button';
} ?>
<?php // Display the add to cart button ?>
<span class="addtocart-button">
<input type="submit" name="addtocart" class="addtocart-button" value="<?php echo $button_lbl ?>" title="<?php echo $button_lbl ?>" />
</span>
<div class="clear"></div>
</div>
<?php // Display the add to cart button END ?>
<input type="hidden" class="pname" value="<?php echo $product->product_name ?>">
<input type="hidden" name="option" value="com_virtuemart" />
<input type="hidden" name="view" value="cart" />
<noscript><input type="hidden" name="task" value="add" /></noscript>
<input type="hidden" name="virtuemart_product_id[]" value="<?php echo $product->virtuemart_product_id ?>" />
<?php /** @todo Handle the manufacturer view */ ?>
<input type="hidden" name="virtuemart_manufacturer_id" value="<?php echo $product->virtuemart_manufacturer_id ?>" />
<input type="hidden" name="virtuemart_category_id[]" value="<?php echo $product->virtuemart_category_id ?>" />
</form>
Выводим название категории товара, артикул и цену товара, там же внутри цикла:
<h4><?php echo $product->category_name; ?></h4>
<h3 class="hide"><?php echo JText::_('COM_VIRTUEMART_CART_SKU')?>: <?php echo $field->display ?></h3>
<h3><?php echo JText::_('COM_VIRTUEMART_PRODUCT_SALESPRICE')?><?php echo $currency->priceDisplay($price['salesPrice']); ?></h3>
Чтобы убрать ненужное изображение товара, делаем финт ушами с помошью CSS, скрываем img который выводится через echo $field->display:
.hide img { display: none;}
Вуаля, все работает как нам хотелось.