Перейти к содержанию
userOCF

[How-To] Картинки товара в заказе и инвойсе

Рекомендуемые сообщения

Нужно отображать картинку товара в заказе и в инвойсе.

В принципе, есть несколько буржуйских модулей (Product Images In Admin Order Info Page и Product Images & Logo on Invoice), но решил сделать сам. Работает в ocstore 1531.

 

В

admin\model\sale\order.php

 

Код:

$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 (op.product_id=p.product_id) WHERE op.order_id = '" . (int)$order_id . "'");

В admin\controller\sale\order.php

 

добавляем в public function info и public function invoice

'image'      => $product['image'],

 

примерно с 1663 строки:

$this->data['products'][] = array(
'image'      => $product['image'],

и с 2490 строки:

$product_data[] = array(
'image'      => $product['image'],

Далее, в

 

admin\view\template\sale\order_info.tpl

 

и

 

admin\view\template\sale\order_invoice.tpl

 

Добавляем в таблицы столбец и картинку:

<img src="/image/<?php echo $product['image']; ?>"/>

Вопрос вот в чём, помогите подключить встроенный обработчик картинок, чтобы картинки выводились без «костылей» вида <img src="/image… и с нужными размерами, то есть через resize.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

перед

$this->data['products'][] = array(

добавь

$this->load->model('tool/image'); 

if ($product['image']) {
$image = $this->model_tool_image->resize($product['image'], 50, 50);
} else {
$image = false;
}

размеры можешь свои проставить

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

и тогда 

<img src="<?php echo $product['image']; ?>"  />

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо, разобрался.

 

Мне пока хватило. Если кому-нибудь интересно продолжить, то можете ещё вывести размеры картинок в настройки чтобы получать их через $this->config->get('config_..._width'), $this->config->get('config_..._height') и где-нибудь места для галочек "показывать картинку в заказе" ("показывать картинку в инвойсе") предусмотреть и готовый модуль получится.

 

В итоге картинки у меня выводятся так:

<img src="<?php echo $product['thumb']; ?>"  />

А в admin\controller\sale\order.php

 

добавляем вместо 'image'      => $product['image'],

'thumb'    => $image,
Изменено пользователем userOCF
  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.