Есть свойство инфоблока типа "Справочник" с названием "COLOR".
Компонент catalog.detail получает данное свойство, но ... не получает изображение ... Пришлось мудрить и вот такой код на скорую руку вышел
Есть свойство инфоблока типа "Справочник" с названием "COLOR".
Компонент 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; } }
К сожалению, на поиск одной мелочи - фильтрации по конкретным ID.
'filter'=>array('UF_XML_ID'=>$arResult['DISPLAY_PROPERTIES']['COLOR']['VALUE'])
потратил кучу времени:( Так что делюсь со всеми.
UPDATE 2014-05-29.
Данную ошибку в компоненте исправили разработчики
Разработка сайта
Подайте заявку на разработку сайта на базе готового решения от компании 1С-Битрикс или одного из партнеров компании. Максимально подробно опишите, чему будет посвящен сайт, если это интернет-магазин - что он будет продавать, нужна ли мультиязычность, будут ли разные типы цен (розница, опт, крупный опт), будет ли интеграция с 1С, будет ли выгрузка товаров на различные торговые площадки...
Сопровождение сайта
Вы можете подать заявку на сопровождение вашего сайта на базе 1С-Битрикс. Сопровождение включает в себя: проверка актуальности обновлений сайта, проверка актуальности резервной копии, консультации по сайту. Опишите в заявке, какие еще объемы планируются на сопровождении и на какой срок вы планируете заключить договор на сопровождение - мы подберем подходящий вам бюджет на сопровождение
Работы по сайту
Вы можете подать заявку на выполнение определенного объема работ по сайту. Опишите в заявке объем работ. Это может быть разработка какого-то нового функционала, доработки по имеющемуся функционалу, доработки под требования сео-специалистов. На основании заявки вам будет сформирован бюджет работ, а также названы сроки на выполнение тех или иных работ.