В практической части описания 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; - отвечает за количество колонок
Продолжение следует )