Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Решено: Изменить размер картинки в корзине

+11 голос
2
В корзине картинки товара масштабируются до маленьких размеров (например, 109x59).

Как можно отменить масштабирование или указать свой размер картинки в корзине?

В картинке для анонса и детальной картинке размеры нормальные (на всякий случай перезагружал). Смотрел в настройках подключения компонента bitrix:sale.basket.basket, но там нет пункта для размеров картинок.
спросил 12 Июнь, 16 от devenge (320 баллов)
редактировать 14 Июнь, 16 от devenge

2 Ответы

00 голосов

Если у вас шаблон компонента по умолчанию, то картинка масштабируется средствами браузера - в выводе товара такой код:

<div class="bx_ordercart_photo" style="background-image:url('<?=$url?>')"></div>
 
А в файле стиля - такой:
.bx_ordercart .bx_ordercart_order_table_container .bx_ordercart_photo{
position:absolute;
top:   4%;
right: 4%;
bottom:4%;
left:  4%;
background-position:center;
-webkit-background-size:auto 100%;
background-size:auto 100%;
background-repeat:no-repeat;
}

 

ответил 12 Июнь, 16 от root (25,590 баллов)
Нет, это не из-за CSS. Также проверил на демо Битрикса, который я недавно установил. Там таже ситуация, в корзине выводится миниатюра вместо исходной картинки.

Например, размер картинки для анонса 300x162. В корзине она выводится 109x59, и находится в папке "/upload/resize_cache/...". Причём если удалить картинку, то она снова появится при обновлении.

На демо Битрикса (изменений на сайте никаких не было) размер картинки 204x466, а в корзине выводится 48x110 также из папки "/upload/resize_cache/..."

В настройках компонента размер картинок не устанавливается. В настройках модулей и сайта не нашёл параметра наподобие "Размер картинок в корзине".
Нашёл, где масшабируется картинка в коде компонента sale.basket.basket. Там в общем только в исходном коде можно указать размер картинки в корзине. Сам файле где это указывается bitrix/components/bitrix/sale.basket.basket/class.php
Точно. Спасибо за уточнение! Раньше надо было искать только в component.php, result_modifier.php и template.php, теперь добавились ещё всякие class.php и functions.php...
00 голосов
Используйте

CFile::resizeImageGet(ID_файла_с_картинкой, array(width => новаяШирина, height => новаяВысота));

для создания превьшки "на лету", можно прямо в шаблоне (т.к. это относится к логике шаблона).

Метод вернет массив вида array('src' => путь/к/сгенерированной/превьюшке/относительно/корня/сайта);
ответил 16 Июнь, 16 от аноним