Есть свойство инфоблока типа "Справочник" с названием "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;
}
} |
|
Так что делюсь со всеми