Меню

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

RSS
Использовать картинку товара 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
);
Изменено: Михаил Базаров - 12.11.2022 22:21:02
 
а возможно свойства для выбора торговых предложений сделать множественными? Чтобы не один цвет - один товар, а два (три, четыре) цвета (сочетания черный и белый и т.п.) - одно торговое предложение, - один товар черно-белого цвета (и любых других всевозможных сочетаний)?
 
Сначала ничего не отображалось, и как были указаны цвета через свойство справочник, так они и отображались, потом поковырявшись немного, установил детальную картинку для всех торг предложений, и вроде как это помогло, еще главное в этой строчке не потерять ";"

<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'), определяет какое изображение будет выводится с картинкой ТП, прикрепляю скриншоты для наглядности.
Изменено: Михаил Базаров - 26.11.2023 17:15:00
 
Немного плохо понял мысль:
Вы хотите выводить не детальную картинку ТП, а первую из картинок дополнительных фотографий?
 
Цитата
написал:
Немного плохо понял мысль:
Вы хотите выводить не детальную картинку ТП, а первую из картинок дополнительных фотографий?
Нет, просто отмечаю, что в свойстве цвет выводится не детальная картинка закрепленная каждая на своим ТП, а только одна определенная картинка.
Изменено: Михаил Базаров - 05.05.2023 14:33:56
 
Все, понял:
В конце перебора нужно добавить
Код
unset($imgPath);

Чтобы обнулить (точнее грохнуть полностью) переменную с путем к картинке, дабы она не передевалась дальше по циклу.
В заметку добавил. Спасибо что написали )
Изменено: Михаил Базаров - 05.05.2023 14:38:53
Читают тему
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 
Поблагодарить и поддержать:
Или подписаться на boosty канал: Видео на Bst

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

Свойство: привязка к Яндекс:Картам - вывести из нескольких элементов на одну карту

Предположим, что у вас есть инфоблок со свойством "Привязка к яндекс картам". В этом инфоблоке некоторое количество элем...

Помечаем новинки лейблом в каталоге битрикс

Достаточно часто, при разработке каталога товаров или интернет магазина на системе управления Битрикс, встает задача как...

Запретить изменения описаний товаров при выгрузке из 1С УТ на сайт

При разработке сайтов на Битрикс, с интеграцией с 1С Управление Тороговлей, нужно запретить изменения полей при обмене. ...

Вывести разделы инфоблока по первым буквам не меняя структуру каталога. Алфавитный указатель

Например: у нас есть инфоблок с большим количеством разделов. И мы хотим, на сайте разбить разделы по буквам. Самый прос...

Вывести новости из конкретного раздела инфоблока Битрикс

Бывает что требуется вывести конкретные новости или статьи из одного раздела инфоблока в Битрикс, для этого потребуется ...

Вывод элементов с помощью API битрикс

Иногда, выводить элементы инфоблока с помощью компонентов, может оказаться избыточным. Например, если нужно вывести элем...

Многосайтовость битрикс на разных доменах и поддоменах

Часто спрашивают "как настроить многосайтовость Битрикс на разных доменах", решил записать небольшое видео в котором уст...

Увеличение диска на готовой виртуальной машине Битрикс

Как всем известно, на официальном сайте 1С-битрикс можно скачать готовую виртуальную машину максимально сконфигурированн...

CAPTCHA с возможностью обновления без перезагрузки страницы в 1C-Битрикс

Задача: Так как стандартная капча в 1С-Битрикс, может отобразиться не удачно (символы уходят за грань капчи или не у...