Здравствуйте, аналогичная проблема. Есть модуль новинки (latestprod), который использует productsnapshot.tpl.php, нужно у товаров, у которых есть свойства вывести эти свойства, чтобы можно было положить в корзину прямо из модуля. Делала как написано:
1. В файле ps_product.php:
Найти функцию function product_snapshot
и внизу, в блоке, отвечающем за отправку в корзину, закоментировать строку:
&& !$this->product_has_attributes($product_id, true)
Таким образом мы разрешаем показ кнопки "купить", если у товара есть свойства.
=============================================================================
2. В файле productsnapshot.tpl:
Вверху, после:
<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
вставить для подключения:
$ps_product = new ps_product;
$ps_product_attribute = new ps_product_attribute;
$db = new ps_DB;
и в этом же файле несколько изменить блок кода, отвечающего за отправку товара в корзину:
<!-- The add to cart DIV. -->
<div style="text-align:center;" width="100%">
<div align="left">
<?php
if( !empty($addtocart_link) ) {
?>
</div>
<form action="<?php echo $mm_action_url ?>index.php" method="post" name="addtocart" id="<?php echo uniqid('addtocart_')?>" class="addtocart_form" <?php if( $this->get_cfg( 'useAjaxCartActions', 1 ) && !$notify ) { echo 'onsubmit="handleAddToCart( this.id );return false;"'; } ?>>
<?php echo $ps_product_attribute->list_advanced_attribute($product_id,$product_id); ?>
<div align="left">
<input type="hidden" name="option" value="com_virtuemart" />
<input type="hidden" name="page" value="shop.cart" />
<input type="hidden" name="Itemid" value="<?php echo ps_session::getShopItemid(); ?>" />
<input type="hidden" name="func" value="cartAdd" />
<input type="hidden" name="prod_id" value="<?php echo $product_id; ?>" />
<input type="hidden" name="product_id" value="<?php echo $product_id ?>" />
<input type="hidden" name="quantity" value="1" />
<input type="hidden" name="set_price[]" value="" />
<input type="hidden" name="adjust_price[]" value="" />
<input type="hidden" name="master_product[]" value="" />
<input type="submit" class="addtocart_button_module" value="<?php echo $VM_LANG->_('PHPSHOP_CART_ADD_TO')?>" title="<?php echo $VM_LANG->_('PHPSHOP_CART_ADD_TO')?>" />
</div>
</form>
<br />
<?php
}
?>
</div>
Таким образом, отправка товара в корзину будет происходить без перезагрузки ( штатный ajax), выбрав свойства (если есть).
Вроде ничего не забыл... (но как знать?)
PS, это только код - надеюсь, над стилистикой поработаете сами...
Но после сохранения файла productsnapshot.tpl.php на сайте вообще ничего не отображается - белая пустая страница.... VM 1.1.9, J 1.5.22, подскажите что делаю не так, вот мой код файла productsnapshot.tpl.php с внесенными изменениями:
Подскажите пожалуйста, что делаю не так, почему не работает?