Эксплуатация модуля Highloadblock

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

Данную ошибку в компоненте исправили разработчики

Количество показов: 3165
25.05.2014

Возврат к списку

Если вам была полезна статья можете отблагодарить автора:
Ethereum:

0x16Df809287333C49D3A237296C6248A6c08702Bc

Разработка сайта

Подайте заявку на разработку сайта на базе готового решения от компании 1С-Битрикс или одного из партнеров компании. Максимально подробно опишите, чему будет посвящен сайт, если это интернет-магазин - что он будет продавать, нужна ли мультиязычность, будут ли разные типы цен (розница, опт, крупный опт), будет ли интеграция с 1С, будет ли выгрузка товаров на различные торговые площадки...

Сопровождение сайта

Вы можете подать заявку на сопровождение вашего сайта на базе 1С-Битрикс. Сопровождение включает в себя: проверка актуальности обновлений сайта, проверка актуальности резервной копии, консультации по сайту. Опишите в заявке, какие еще объемы планируются на сопровождении и на какой срок вы планируете заключить договор на сопровождение - мы подберем подходящий вам бюджет на сопровождение

Работы по сайту

Вы можете подать заявку на выполнение определенного объема работ по сайту. Опишите в заявке объем работ. Это может быть разработка какого-то нового функционала, доработки по имеющемуся функционалу, доработки под требования сео-специалистов. На основании заявки вам будет сформирован бюджет работ, а также названы сроки на выполнение тех или иных работ.