для 1.4.0
в ..catalogcontrollerproductcategory.php
блок
foreach ($results as $result) {.....}меняем на
foreach ($results as $result) { if ($result['image']) { $image = $result['image']; } else { $image = 'no_image.jpg'; } // $options_arr = array(); $options = $this->model_catalog_product->getProductOptions($result['product_id']); echo $result['product_id'].' - '; foreach ($options as $option) { $option_value_data = array(); foreach ($option['option_value'] as $option_value) { $option_value_data[] = array( 'option_value_id' => $option_value['product_option_value_id'], 'name' => $option_value['name'], 'price' => (float)$option_value['price'], 'prefix' => $option_value['prefix'] ); } $options_arr[] = array( 'option_id' => $option['product_option_id'], 'name' => $option['name'], 'option_value' => $option_value_data ); unset($option_value_data); } // $rating = $this->model_catalog_review->getAverageRating($result['product_id']); $special = FALSE; $discount = $this->model_catalog_product->getProductDiscount($result['product_id']); if ($discount) { $price = $this->currency->format($this->tax->calculate($discount, $result['tax_class_id'], $this->config->get('config_tax'))); } else { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax'))); $special = $this->model_catalog_product->getProductSpecial($result['product_id']); if ($special) { $special = $this->currency->format($this->tax->calculate($special, $result['tax_class_id'], $this->config->get('config_tax'))); } } $this->data['products'][] = array( 'id' => $result['product_id'], 'name' => $result['name'], 'model' => $result['model'], 'rating' => $rating, 'stars' => sprintf($this->language->get('text_stars'), $rating), 'thumb' => image_resize($image, $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')), 'price' => $price, 'special' => $special, 'options_arr' => $options_arr, // 'href' => $this->model_tool_seo_url->rewrite($this->url->http('product/product&path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'])) ); unset ($options_arr); // }
в ..catalogviewthemedefaulttemplateproductcategory.tpl
блок
<td width="25%"><?php if (isset($products[$j])) { ?>.....<?php } ?></td>меняем на
<td width="25%"><?php if (isset($products[$j])) { ?> <form action="" method="post" enctype="multipart/form-data" id="formproduct_<? echo $products[$j]['id']; ?>"> <a href="<?php echo $products[$j]['href']; ?>"><img src="<?php echo $products[$j]['thumb']; ?>" title="<?php echo $products[$j]['name']; ?>" id="image<? echo $products[$j]['id']; ?>" alt="<?php echo $products[$j]['name']; ?>" /></a> <a href="<?php echo $products[$j]['href']; ?>"><?php echo $products[$j]['name']; ?></a> [color= #999; font-size: 11px;]<?php echo $products[$j]['model']; ?>[/color] <?php if ($display_price) { ?> <?php if (!$products[$j]['special']) { ?> [color= #900; font-weight: bold;]<?php echo $products[$j]['price']; ?>[/color] <?php } else { ?> [color= #900; font-weight: bold; text-decoration: line-through;]<?php echo $products[$j]['price']; ?>[/color] [color= #F00;]<?php echo $products[$j]['special']; ?>[/color] <?php } ?> <?php } ?> <?php if ($products[$j]['rating']) { ?> <img src="catalog/view/theme/default/image/stars_<?php echo $products[$j]['rating'] . '.png'; ?>" alt="<?php echo $products[$j]['stars']; ?>" /> <?php } ?> <?php if ($products[$j]['options_arr']) { ?> <?php foreach ($products[$j]['options_arr'] as $option) { ?> <?php echo $option['name']; ?>: <select name="option[<?php echo $option['option_id']; ?>]"> <?php foreach ($option['option_value'] as $option_value) { ?> <option value="<?php echo $option_value['option_value_id']; ?>"><?php echo $option_value['name']; ?> <?php if ($option_value['price']) { ?> <?php echo $option_value['prefix']; ?><?php echo $option_value['price']; ?> <?php } ?> </option> <?php } ?> </select> <?php } ?> <?php } ?> <input type="text" name="quantity" /> <input type="hidden" name="product_id" value="<? echo $products[$j]['id']; ?>" /> [url="#"]);return false;" class="button"><span>В корзину</span>[/url] </form> <?php } ?></td>
в ..catalogviewthemedefaulttemplatemodulecart.tpl снизу добавить по смыслу:
function buyProduct(id){ $.ajax({ type: 'post', url: 'index.php?route=module/cart/callback', dataType: 'html', data: $('#formproduct_'+id+' :input'), success: function (html) { $('#module_cart .middle').html(html); }, complete: function () { var image = $('#image'+id).offset(); var cart = $('#module_cart').offset(); $('#image'+id).before('<img src="' + $('#image'+id).attr('src') + '" id="temp" style="position: absolute; top: ' + image.top + 'px; left: ' + image.left + 'px;" />'); params = { top : cart.top + 'px', left : cart.left + 'px', opacity : 0.0, width : $('#module_cart').width(), heigth : $('#module_cart').height() }; $('#temp').animate(params, 'slow', false, function () { $('#temp').remove(); }); } }); }
вроде ничего не забыл)
единственный недочет который заметил, если не ввести количество то в корзину товар не добавится, исправить легко (либо в контроллере прописать если нету значения то количество 1, либо тупо прописать в поле input стартовое значение 1), но чет я устал на 10дюймовом мониторе что либо делать, так что допиливайте сами)
ну и при желании для остальных страничек делаем аналогично)