GetDoublePicturesForItem
array public static CIBlockPriceTools::getDoublePicturesForItem( array &$item, mixed $propertyCode, bool $encode = true );
Метод возвращает массив с основным и вторым изображением элемента или торгового предложения. Метод статический.
Параметры вызова
| Параметр | Описание |
|---|---|
| $item | Массив элемента или торгового предложения. Метод может заменить значения PREVIEW_PICTURE и DETAIL_PICTURE с идентификаторов файлов на массивы, которые возвращает CFile::GetFileArray. |
| $propertyCode | Символьный код свойства типа Файл с дополнительными изображениями. Если код пустой, свойство не найдено или свойство не является файловым, метод использует только PREVIEW_PICTURE и DETAIL_PICTURE. |
| $encode | Флаг кодирования адреса изображения при формировании значения SRC. По умолчанию равен true. |
Возвращаемое значение
Метод возвращает массив с ключами PICT и SECOND_PICT. Каждый ключ содержит false или массив с описанием изображения:
- ID — идентификатор файла;
- SRC — путь к изображению;
- WIDTH — ширина изображения;
- HEIGHT — высота изображения.
Метод выбирает изображения в таком порядке: сначала PREVIEW_PICTURE, затем DETAIL_PICTURE, затем значения файлового свойства из DISPLAY_PROPERTIES[$propertyCode]['FILE_VALUE'] или PROPERTIES[$propertyCode]['VALUE'].
Если первое изображение найдено, оно попадает в PICT. Следующее найденное изображение попадает в SECOND_PICT. Если подходящего изображения нет, соответствующий ключ содержит false.
Примеры
Получение основного и второго изображения для элемента, подготовленного компонентом:
use Bitrix\Main\Loader;
Loader::includeModule('iblock');
$iblockId = 2; // ID инфоблока
$elementId = 29; // ID товара/элемента
$additionalPictureProperty = 'MORE_PHOTO';
$iterator = CIBlockElement::GetList(
[],
[
'IBLOCK_ID' => $iblockId,
'ID' => $elementId,
],
false,
false,
[
'ID',
'IBLOCK_ID',
'NAME',
'PREVIEW_PICTURE',
'DETAIL_PICTURE',
]
);
if ($element = $iterator->GetNextElement())
{
$item = $element->GetFields();
$item['PROPERTIES'] = $element->GetProperties();
$pictures = CIBlockPriceTools::getDoublePicturesForItem(
$item,
$additionalPictureProperty
);
$item['PICT'] = $pictures['PICT'];
$item['SECOND_PICT'] = $pictures['SECOND_PICT'];
echo '<pre>';
print_r([
'ID' => $item['ID'],
'NAME' => $item['NAME'],
'PICT' => $item['PICT'],
'SECOND_PICT' => $item['SECOND_PICT'],
]);
echo '</pre>';
}
else
{
echo 'Element not found';
}
В примере $arResult['ITEMS'] содержит элементы, которые уже подготовлены компонентом: в массиве элемента есть поля PREVIEW_PICTURE, DETAIL_PICTURE, PROPERTIES и, если свойство выводится компонентом, DISPLAY_PROPERTIES.