Вышеприведённый способ имеет недостатки:
- если у одного товара есть доп. поля а у другого их нет - на странице появляются ошибки кода.
- у меня почему-то вообще не заработало, хотя я не подвергаю сомнению чужие слова - мои руки не самые прямые.
- чужой файл зачем загружать, когда должны быть решения стандартными средствами.
Я сделал так:
1) В папку component/com_virtuemart/category/ добавил файл default_addtocart.php, который взял из соседней папки "productdetails"
2) в файл com_virtuemart/category/default.php после строки
PHP:
<form method="post" class="product" action="index.php" id="addtocartproduct<?php echo $product->virtuemart_product_id ?>">
добавил код
PHP:
<!-- Пытаемся вставить ручные поля -->
<?php // Product custom_fields
if (!empty($product->customfieldsCart)) { ?>
<div class="product-fields">
<?php foreach ($product->customfieldsCart as $field)
{ ?><div style="display:inline-block;" class="product-field product-field-type-<?php echo $field->field_type ?>">
<span class="product-fields-title" ><b><?php echo JText::_($field->custom_title)?></b></span>
<?php //echo JHTML::tooltip($field->custom_tip, JText::_($field->custom_title), 'tooltip.png'); ?>
<span class="product-field-display"><?php echo $field->display ?></span>
<span class="product-field-desc"><?php echo $field->custom_field_desc ?></span>
</div><br/ >
<?php
}
?>
</div>
<?php }
/* Product custom Childs
* to display a simple link use $field->virtuemart_product_id as link to child product_id
* custom_value is relation value to child
*/
if (!empty($product->customsChilds)) { ?>
<div class="product-fields">
<?php foreach ($product->customsChilds as $field) { ?>
<div style="display:inline-block;" class="product-field product-field-type-<?php echo $field->field->field_type ?>">
<span class="product-fields-title" ><b><?php echo JText::_($field->field->custom_title)?></b></span>
<span class="product-field-desc"><?php echo JText::_($field->field->custom_value)?></span>
<span class="product-field-display"><?php echo $field->display ?></span>
</div><br/ >
<?php
} ?>
</div>
<?php } ?>
Ниже у меня идёт код отвечающий за кнопку "добавить в корзину", которая тоже добавлена на странице категорий.