Opencart: картинка товара в истории заказов покупателя
При просмотре истории заказов зарегистрированный покупатель теперь сможет видеть фото товаров. Фото товара используется текущее (т.е. может не совпадать с тем, которое было на момент покупки).
Делалось на текущей версии Opencart из репозитория (т.е. 1531+, commit:a023998).
Кто хочет видеть меньшие размеры фотографий, вместо предложенных config_image_category_width может использовать config_image_additional_width. Некоторые "за" и "против" можно увидеть в комментариях.
commit 8914dee796792b5662cd40638829fd52e4664289 Author: Ruslan Brest <rb@labtodo.com> Date: Mon Aug 6 08:11:06 2012 +0300 Product image on account/order/info page diff --git a/upload/catalog/controller/account/order.php b/upload/catalog/controller/account/order.php index 41dd890..016b996 100644 --- a/upload/catalog/controller/account/order.php +++ b/upload/catalog/controller/account/order.php @@ -306,7 +306,8 @@ class ControllerAccountOrder extends Controller { $this->data['shipping_method'] = $order_info['shipping_method']; $this->data['products'] = array(); - + $this->load->model('tool/image'); + $products = $this->model_account_order->getOrderProducts($this->request->get['order_id']); foreach ($products as $product) { @@ -327,8 +328,15 @@ class ControllerAccountOrder extends Controller { ); } + if (empty($product['image'])) { + $thumb = ''; + } else { + $thumb = $this->model_tool_image->resize($product['image'], $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height')); + } + $this->data['products'][] = array( 'name' => $product['name'], + 'thumb' => $thumb, 'model' => $product['model'], 'option' => $option_data, 'quantity' => $product['quantity'], diff --git a/upload/catalog/model/account/order.php b/upload/catalog/model/account/order.php index 605c1ff..e26012f 100644 --- a/upload/catalog/model/account/order.php +++ b/upload/catalog/model/account/order.php @@ -116,7 +116,7 @@ class ModelAccountOrder extends Model { } public function getOrderProducts($order_id) { - $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_product WHERE order_id = '" . (int)$order_id . "'"); + $query = $this->db->query("SELECT op.*, p.image FROM `" . DB_PREFIX . "order_product` op LEFT JOIN `" . DB_PREFIX . "product` p ON (p.product_id = op.product_id) WHERE order_id = '" . (int)$order_id . "'"); return $query->rows; } diff --git a/upload/catalog/view/theme/default/stylesheet/stylesheet.css b/upload/catalog/view/theme/default/stylesheet/stylesheet.css index e0084eb..1110151 100644 --- a/upload/catalog/view/theme/default/stylesheet/stylesheet.css +++ b/upload/catalog/view/theme/default/stylesheet/stylesheet.css @@ -508,6 +508,11 @@ table.list .center { text-align: center; padding: 7px; } +table.list .left > img +{ + float: left; +} + table.radio { width: 100%; border-collapse: collapse; diff --git a/upload/catalog/view/theme/default/template/account/order_info.tpl b/upload/catalog/view/theme/default/template/account/order_info.tpl index c94aa0c..e9843be 100644 --- a/upload/catalog/view/theme/default/template/account/order_info.tpl +++ b/upload/catalog/view/theme/default/template/account/order_info.tpl @@ -62,11 +62,14 @@ <tbody> <?php foreach ($products as $product) { ?> <tr> - <td class="left"><?php echo $product['name']; ?> + <td class="left"> + <img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" /> + <?php echo $product['name']; ?> <?php foreach ($product['option'] as $option) { ?> <small> - <?php echo $option['name']; ?>: <?php echo $option['value']; ?></small> - <?php } ?></td> + <?php } ?> + </td> <td class="left"><?php echo $product['model']; ?></td> <td class="right"><?php echo $product['quantity']; ?></td> <td class="right"><?php echo $product['price']; ?></td>
Измененные файлы текущей версии Опенкарт (1.5.3.xyz). Как всегда, рекомендую не заменять, а сравнивать со своими (WinMerge.org, TotalCommander, Meld и т.п.):