Меню

Использовать картинку товара 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
Читают тему
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 

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

Добавить все свойства инфоблока в умный фильтр одним разом

Если у вас достаточно много свойств, в инфоблоке с товарами, например: больше 1000-чи, после интеграции с 1С или импорта...

Скопировать номер телефона из поля пользователя в телефон для регистрации

Задача, на конкретном сайте: раньше все пользователи регистрировались по стандартному режиму, через логин(e-mail) и паро...

Добавление в избранное или отложенные, на AJAX из карточки товара

В этой заметке рассакажу как добавлять товары в "Отложенные", для иммитации функционала "Избранное". Для этого будем исп...

GIT-репозиторий на собственном сервере с веб-интерфейсом: Gitea - аналог GitHub

Задача: Развернуть git-репозиторий на собственном сервере с помощью Gitea — для ведения проектов, с веб-интерфейсом и по...

Композитный сайт на 1С-Битрикс

Для новых клиентов: Все новые проекты будут включать в себя применение технологии "Композитный сайт" - данная услуга уже...

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

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

Как выводить пользовательские поля и названия разделов инфоблока в Битриксе

Если вам необходимо вывести дополнительное пользовательское поле типа "Привязка к разделам инфоблока", эта записка может...

ORM в инфоблоках, получение информации об элементах инфоблока на D7

Задача: собрать полные данные об элементах инфоблока, применяя ORM/D7, который пришел на смену устаревшему CIBlockEleme...

Перенос Битрикс сайта с хостинга на хостинг, инструкция

Достаточно часто спрашивают как перенести сайт работающий на 1С Битрикс с одного хостинга на другой, как раз подвернулас...