Меню

Использовать картинку товара SKU вместо иконки цвета, в выборе торговых предложений

Использовать картинку товара SKU вместо иконки цвета, в выборе торговых предложений

Задача: вместо не информативных иконок цветов нужно вывести детальную картинку торгового предложения. Если картинки у предложжения нет - выводим иконку цвета.
Тоже самое, на D7
CIBlockElement::GetList аналог на D7
Код
$dbOffers = \Bitrix\Iblock\Elements\ElementCatalogTable::getList([
         'select' => ['DETAIL_PICTURE'],
         'filter' => [
               '=IBLOCK_ID' => $arResult['OFFERS']['0']['IBLOCK_ID'],
               '=PROPERTY_CML2_LINK' => $arResult['ID'],
               '=PROPERTY_TSVET' => $value['XML_ID']
          ],
 ])->fetchAll();
foreach ($dbOffers as $dbOffer) {
    if (!empty($dbOffer["DETAIL_PICTURE"])) {
            $imgPath = CFile::GetPath($arFields["DETAIL_PICTURE"]);
    } else {
            $imgPath = $value['PICT']['SRC'];
     }
 }

Если картинки ТП достаточно большие, что бы не перегружать страницу, можно использовать ресайз картинок в нужный размер
Код
$imgPath = CFile::ResizeImageGet(
            $dbOffer["DETAIL_PICTURE"],
            array(
                 'width'=>100, 
                 'height'=>100
           ), 
           BX_RESIZE_IMAGE_PROPORTIONAL_ALT, true
);
а возможно свойства для выбора торговых предложений сделать множественными? Чтобы не один цвет - один товар, а два (три, четыре) цвета (сочетания черный и белый и т.п.) - одно торговое предложение, - один товар черно-белого цвета (и любых других всевозможных сочетаний)?
Сначала ничего не отображалось, и как были указаны цвета через свойство справочник, так они и отображались, потом поковырявшись немного, установил детальную картинку для всех торг предложений, и вроде как это помогло, еще главное в этой строчке не потерять ";"

<span style="background-image: url(<?=$imgPath?>);"></span>
<span><?=$value['NAME']?></span>

Добавлю еще, что настройка отображения картинок ТП в общем каталоге (скриншот 4) должна производится отдельно, видимо так как это другой компонент. Мало ли кому то поможет.

Дополню как сверстаю до конца.
Цитата
Максим Верещинский написал:
                   Сначала ничего не отображалось, и как были указаны цвета через свойство справочник, так они и отображались, потом поковырявшись немного, установил детальную картинку для всех торг предложений, и вроде как это помогло, еще главное в  этой  строчке не потерять " ; "

 <span style="background-image: url(<?=$imgPath?>);"></span>  
 <span><?=$value['NAME']?></span>  

Добавлю еще, что настройка отображения картинок ТП в общем каталоге (скриншот 4) должна производится отдельно, видимо так как это другой компонент. Мало ли кому то поможет.

Дополню как сверстаю до конца.                
Добавил тестовые картинки с надписями где DET_PHOTO означает DETAIL_PHOTO (детальная картинка), а BROWN - цвет, из чего собственно и вытекает проблема.
Должно быть: DET_PHOTO BROWN, DET_PHOTO GRAY, DET_PHOTO BLACK
Цитата
Максим Верещинский написал:
Цитата
Максим Верещинский написал:
Сначала ничего не отображалось, и как были указаны цвета через свойство справочник, так они и отображались, потом поковырявшись немного, установил детальную картинку для всех торг предложений, и вроде как это помогло, еще главное в  этой  строчке не потерять " ; "

<span style="background-image: url(<?=$imgPath?>);"></span>  
<span><?=$value['NAME']?></span>  

Добавлю еще, что настройка отображения картинок ТП в общем каталоге (скриншот 4) должна производится отдельно, видимо так как это другой компонент. Мало ли кому то поможет.

Дополню как сверстаю до конца.
Добавил тестовые картинки с надписями где DET_PHOTO означает DETAIL_PHOTO (детальная картинка), а BROWN - цвет, из чего собственно и вытекает проблема.
Должно быть:  DET_PHOTO BROWN, DET_PHOTO GRAY, DET_PHOTO BLACK
Подытоживая все что я написал выше - заметил такую интересную последовательность.

array('nTopCount' => '2'), определяет какое изображение будет выводится с картинкой ТП, прикрепляю скриншоты для наглядности.
Немного плохо понял мысль:
Вы хотите выводить не детальную картинку ТП, а первую из картинок дополнительных фотографий?
Цитата
написал:
Немного плохо понял мысль:
Вы хотите выводить не детальную картинку ТП, а первую из картинок дополнительных фотографий?
Нет, просто отмечаю, что в свойстве цвет выводится не детальная картинка закрепленная каждая на своим ТП, а только одна определенная картинка.
Все, понял:
В конце перебора нужно добавить
Код
unset($imgPath);

Чтобы обнулить (точнее грохнуть полностью) переменную с путем к картинке, дабы она не передевалась дальше по циклу.
В заметку добавил. Спасибо что написали )
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 

Блог-note: заметки разработчика

Отфильтровать элементы в Битрикс по свойству привязка к разделам

При создании достаточно сложных интернет-магазинов на Битрикс, иногда встает задача помимо обычной навигации каталогу со...

Установка счетчика Яндекс.Метрики на сайт с Content Security Policy (CSP)

Если на вашем сайте не отображаются данные о кликах и скроллинге в Яндекс.Метрике, вероятнее всего, это связано с настро...

Следующая/предыдущая новость/статья при просмотре подробной в Битрикс

Странное дело, в Битрикс по умолчанию, отсутсвует функционал для навигации внутри новостей или статей типа: "Следующая/...

Выбор основного раздела для элемента инфоблока в 1С-Битрикс

Проблема: при привязке элемента инфоблока к нескольким разделам возникают дубли его детальной страницы, в зависимости от...

Сортировать товары по названию, цене и дате поступления в каталоге Битрикс

Достаточно часто заказчик просит вывести сортировку по цене, новым поступлениям и названию в каталоге товаров работающег...

Минимальная сумма заказа в корзине и оформлении заказа в 1С-Битрикс

В этой заметке добавим возможность установки минимальной суммы заказа, в новом шаблоне корзины на 1С-Битрикс.

Фотогалерея на шаблоне новостей в 1С-Битрикс

Частенько стоит задача, по мимо стандартных "Картинка для анонса" и "Детальная картинка", добавить в...

Информация о службе доставки по ее ID, в 1С-Битрикс

Задача: зная ID службы доставки получить необходимую информацию о ней, с помощью API 1С-Битрикс

Вывести товары из того же раздела в детальной карточке товара

Задача: В детальной карточке элемента каталога необходимо отобразить товары, находящиеся в том же разделе, что и сам то...