В данной статье вы узнаете, как получив ID элемента хайлоад блока, можно достать информацию и вывести ее на экран.
Highload-блок как получить данные по ID элемента (битрикс)
Задача: получить название элемента H-блока, зная его ID и вывести на экран.
Решение:
1. Подключаем модуль iblock (либо же через проверку if смотрим подключен ли он в системе и выполняем код).
2. По ID элемента, из инфоблока 8, получаем разные параметры, в том числе и Бренд, который записан в свойстве с символьным кодом MANUFACTURER (которое, как мы видим, находится в самом последнем массиве, он же arSelect, PROPERTY_MANUFACTURER).
3. В $BRAND_ID записываем ID нашего элемента из справочника:
<? CModule::IncludeModule("iblock"); $ID = $product->getId(); $my_elements = CIBlockElement::GetList ( Array("ID" => "ASC"), Array("IBLOCK_ID" => 8, "ID" => $ID), false, false, Array('ID', 'NAME', 'CATALOG_GROUP_9', 'PROPERTY_MANUFACTURER') ); if ($ar_fields = $my_elements->GetNext()) { $PRICE = $ar_fields['CATALOG_PRICE_9']; $BRAND_ID = $ar_fields['PROPERTY_MANUFACTURER_VALUE']; } if (CModule::IncludeModule('highloadblock')) { $arHLBlock = Bitrix\Highloadblock\HighloadBlockTable::getById(4)->fetch(); $obEntity = Bitrix\Highloadblock\HighloadBlockTable::compileEntity($arHLBlock); $strEntityDataClass = $obEntity->getDataClass(); $resData = $strEntityDataClass::getList(array( 'select' => array('ID', 'UF_NAME'), 'filter' => array('ID' => $BRAND_ID), 'order' => array('ID' => 'ASC'), 'limit' => 100, )); if ($arItem = $resData->Fetch()) { $BRAND_NAME = $arItem['UF_NAME']; } } ?>
4. После того как у нас есть ID бренда, необходимо найти его в хайлоад блоке. ID нашего хайлоад блока 4, обратите на это внимание в коде и замените на свой.
5. Осталось внести некоторые массивы с параметрами и получить значение $BRAND_NAME.
ВАЖНО – Свойство с именем называется UF_NAME, вместо привычного нам по обычным инфоблокам NAME.
Еще пара вещей на которые вам нужно обратить внимание:
– используется проверка if ($arItem =$resData… вместо while ($arItem = $resData … чтобы выбрать только один элемент
– ‘select‘ – массив выбора, ‘filter‘ – массив с фильтром аналогичный arFilter, ‘order‘ – массив с порядком, ‘limit‘ – ограничение по элементам