В практической части описания virtuemarta опишу те моменты для воплощения которых пришлось менять код самого компонента.
В сопутствующие товары добавляем артикул и пр
Открыть файлы
administratorcomponentscom_virtuemartclassesps_product.php componentscom_virtuemartthemesdefaulttemplatescommonproductsnapshot.tpl.php
В первом в строку добавляем нужные переменные
function show_snapshot($product_sku, $show_price=true,
$show_addtocart=true, $show_product_name = true )
{echo $this->product_snapshot( $product_sku, $show_price,
$show_addtocart, $show_product_name );
В моем случае были
$show_product_width=true, $show_product_length=true, $show_product_lwh_uom=true, //к стандартным переменным были прибавлены приставки show_
И получаем следующий код
function show_snapshot
($product_sku, $show_product_width=true, $show_product_length=true,
$show_product_lwh_uom=true, $show_price=true, $show_addtocart=true,
$show_product_name = true )
{echo $this->product_snapshot( $product_sku, $show_product_width, $show_product_length,
$show_product_lwh_uom, $show_price, $show_addtocart, $show_product_name );
Далее в строку добавляем по аналогии с первым примером
function product_snapshot ( $product_sku, $show_product_width=true, $show_product_length=true, $show_product_lwh_uom=true, $show_price=true, $show_addtocart=true, $show_product_name = true )
Далее
$q = "SELECT product_id, product_name, product_width, product_length,
product_lwh_uom, product_parent_id, product_thumb_image
FROM #__{vm}_product WHERE product_sku='$product_sku'";
Далее в функцию добавляем
$tpl->set( 'product_sku', $db->f("product_sku") );
$tpl->set( 'product_sku', $product_sku );
$tpl->set( 'product_width', $db->f("product_width") );
$tpl->set( 'show_product_width', $show_product_width );
$tpl->set( 'product_length', $db->f("product_length") );
$tpl->set( 'show_product_length', $show_product_length );
$tpl->set( 'product_lwh_uom', $db->f("product_lwh_uom") );
$tpl->set( 'show_product_lwh_uom', $show_product_lwh_uom );
В файл 2 выводим переменные
<?php echo $product_width; ?> <?php echo $product_sku; ?> <?php echo $product_length ?> <?php echo $product_lwh_uom ?>
Как изменить количество сопутствующих товаров
в
administrator/component/virtuemart/html/shop.product_details.php в строке 85
$q .= "AND FIND_IN_SET(#__{vm}_product.product_id,
REPLACE(related_products, '|', ',' )) LIMIT 0, 4";
// меняем 4 на нужное количество
Сопутствующие товары в несколько строк (по 4 в строке).
Для этого необходимо заменить код файла components/com_virtuemart/themes/default/Template/common/relatedProducts.tpl.php на
<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' ); ?>
<hr/>
<h3><?php echo $VM_LANG->_('PHPSHOP_RELATED_PRODUCTS_HEADING') ?></h3>
<table width="100%" align="center">
<tr>
<?php
$td_counter = 1;
while( $products->next_record() ) {
?>
<td valign="top">
<?php echo $ps_product->product_snapshot( $products->f('product_sku') ) ?>
<br /></td>
<?php
$td_counter++;
if ($td_counter==5) {
echo "</tr><tr>";
}// if
}// while
?>
</tr>
</table>
Результат будет таким
Тимур спасибо за код.
Как убрать нули после запятой для габаритов
Что бы убрать нули после запятой из габаритов нужно в БД jos_vm_product в нужных таблицах сменить с decimal на int и длины значения сделать целым числом
Количество столбцов в списке категории
Открыть файл
componentscom_virtuemartthemesdefaulttemplatescommoncategoryChildlist.tpl.php
в функции
if( !isset( $categories_per_row )) {
$categories_per_row = 4;
}
//$categories_per_row = 1; - отвечает за количество колонок
Продолжение следует )
