Миграция секций инфоблока в hl блок (CIBlockSection::GetList)


CModule::IncludeModule('iblock');
$iblock_ID = 56;


//HL part
// подключаем пространство имен класса HighloadBlockTable и даём ему псевдоним HLBT для удобной работы
use BitrixHighloadblockHighloadBlockTable as HLBT;
// id highload-инфоблока
$HL_BLOCK_ID = 7;
//подключаем модуль highloadblock
CModule::IncludeModule('highloadblock');
//Напишем функцию получения экземпляра класса:
function GetEntityDataClass($HlBlockId) {
    if (empty($HlBlockId) || $HlBlockId < 1)
    {
        return false;
    }
    $hlblock = HLBT::getById($HlBlockId)->fetch();
    $entity = HLBT::compileEntity($hlblock);
    $entity_data_class = $entity->getDataClass();
    return $entity_data_class;
}

$entity_data_class = GetEntityDataClass($HL_BLOCK_ID);
//HL part end

//список всех секций раздела
$arFilter = Array('IBLOCK_ID'=>$iblock_ID, 'GLOBAL_ACTIVE'=>'Y');
$db_list = CIBlockSection::GetList(Array($by=>$order), $arFilter, true);

while($ar_result = $db_list->GetNext()) {
      //добавить элемент в hl Блок
        $result = $entity_data_class::add(array(
            'UF_NAME'         => $ar_result['NAME'],
            'UF_XML_ID'         => $ar_result['CODE'],
        ));
}


//Прочитаем данные hl блока
$entity_data_class = GetEntityDataClass($HL_BLOCK_ID);
$rsData = $entity_data_class::getList(array(
    'select' => array('*')
));
while($el = $rsData->fetch()){
    pre2($el);
}

Афоризм дня:
Какое удовлетворение испытывает человек, когда, заглянув в собственное сердце, убеждается, что оно у него справедливое. (669)

Leave a reply