Есть свойство инфоблока типа "Справочник" с названием "COLOR"
компонент catalog.detail получает данное свойство, но ...
не получает изображение ...
вот такой вот код на скорую руку выходит:
К сожалению, на поиск одной мелочи - фильтрации по конкретным ID:
потратил кучу времени:(
Так что делюсь со всеми
компонент catalog.detail получает данное свойство, но ...
не получает изображение ...
вот такой вот код на скорую руку выходит:
$arOneSKU = $arResult['DISPLAY_PROPERTIES']['COLOR']; $hlblock = \Bitrix\Highloadblock\HighloadBlockTable::getList( array("filter" => array( 'TABLE_NAME' => $arOneSKU['USER_TYPE_SETTINGS']['TABLE_NAME'] )) )->fetch(); if (isset($hlblock['ID'])){ $arValues = array(); $arXmlMap = array(); $boolName = true; $boolPict = true; $entity = \Bitrix\Highloadblock\HighloadBlockTable::compileEntity($hlblock); $entity_data_class = $entity->getDataClass(); $rsPropEnums = $entity_data_class::getList(array('filter'=>array('UF_XML_ID'=>$arResult['DISPLAY_PROPERTIES']['COLOR']['VALUE']))); while ($arEnum = $rsPropEnums->fetch()) { if (!isset($arEnum['UF_NAME'])) { $boolName = false; break; } $arEnum['PREVIEW_PICTURE'] = false; if (!isset($arEnum['UF_FILE'])) $boolPict = false; if ($boolPict) $arEnum['PREVIEW_PICTURE'] = CFile::GetFileArray($arEnum['UF_FILE']); $arEnum['ID'] = intval($arEnum['ID']); $arValues[$arEnum['ID']] = array( 'ID' => $arEnum['ID'], 'NAME' => $arEnum['UF_NAME'], 'SORT' => intval($arEnum['UF_SORT']), 'XML_ID' => $arEnum['UF_XML_ID'], 'PICT' => ($boolPict ? array( 'SRC' => $arEnum['PREVIEW_PICTURE']['SRC'], 'WIDTH' => intval($arEnum['PREVIEW_PICTURE']['WIDTH']), 'HEIGHT' => intval($arEnum['PREVIEW_PICTURE']['HEIGHT']) ) : false ) ); $arXmlMap[$arEnum['UF_XML_ID']] = $arEnum['ID']; } $arValues[0] = array( 'ID' => 0, 'SORT' => PHP_INT_MAX, 'NA' => true, 'NAME' => ($boolPict ? '' : '-'), 'XML_ID' => '', 'PICT' => ($boolPict ? $arEmptyPreview : false) ); if ($boolName!==false){ $arOneSKU['VALUES'] = $arValues; $arOneSKU['VALUES_COUNT'] = count($arValues); $arOneSKU['PROPERTY_TYPE'] = ($boolPict ? 'E' : 'L'); $arOneSKU['XML_MAP'] = $arXmlMap; $arResult['DISPLAY_PROPERTIES']['COLOR'] = $arOneSKU; } } |
|
Так что делюсь со всеми