Данный пост - маленькая шпаргалка для работы с highload-инфоблоками.
Подготовка к работе
Для работы с highload-ами, нужно подключить подключить модуль highloadblock к сущности highload:
// подключаем пространство имен класса HighloadBlockTable и даём ему псевдоним HLBT для удобной работы use Bitrix\Highloadblock\HighloadBlockTable as HLBT; // id highload-инфоблока const MY_HL_BLOCK_ID = 1; //подключаем модуль 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; }
Данная функция получает сущность хайлоадов для дальнейшей работы.
Получение названий полей
$hlblock = HLBT::getById(MY_HL_BLOCK_ID)->fetch(); $entity = HLBT::compileEntity($hlblock); var_dump($entity->getFields());
Получаем массив, где ключи это поля highload-блока, а значения — объекты, соответствующие типу поля (строка — Bitrix\Main\Entity\StringField, число — Bitrix\Main\Entity\IntegerField).
Получить элементы highload-инфоблока
$entity_data_class = GetEntityDataClass(MY_HL_BLOCK_ID); $rsData = $entity_data_class::getList(array( 'order' => array('UF_NAME'=>'ASC'), 'select' => array('*'), 'filter' => array('!UF_NAME'=>false) )); while($el = $rsData->fetch()){ print_r($el); }
Количество элементов highload-инфоблока
$entity_data_class = GetEntityDataClass(MY_HL_BLOCK_ID); var_dump($entity_data_class::getCount());
Добавить новый элемент в highload-инфоблок
$entity_data_class = GetEntityDataClass(MY_HL_BLOCK_ID); $result = $entity_data_class::add(array( 'UF_NAME' => 'Желтый', 'UF_CODE' => 'YELLOW', 'UF_VALUE' => '#ffff00', 'UF_ACTIVE' => '1' ));
Удалить новый элемент в highload-инфоблок
$idForDelete = 9; $entity_data_class = GetEntityDataClass(MY_HL_BLOCK_ID); $result = $entity_data_class::delete($idForDelete);
Обновить новый элемент в highload-инфоблок
$idForUpdate = 10; $entity_data_class = GetEntityDataClass(MY_HL_BLOCK_ID); $result = $entity_data_class::update($idForUpdate, array( 'UF_NAME' => 'Фиолетовый', 'UF_CODE' => 'PURPLE', 'UF_VALUE' => '#5A009D', 'UF_ACTIVE' => '1' ));
Разработка сайта
Подайте заявку на разработку сайта на базе готового решения от компании 1С-Битрикс или одного из партнеров компании. Максимально подробно опишите, чему будет посвящен сайт, если это интернет-магазин - что он будет продавать, нужна ли мультиязычность, будут ли разные типы цен (розница, опт, крупный опт), будет ли интеграция с 1С, будет ли выгрузка товаров на различные торговые площадки...
Сопровождение сайта
Вы можете подать заявку на сопровождение вашего сайта на базе 1С-Битрикс. Сопровождение включает в себя: проверка актуальности обновлений сайта, проверка актуальности резервной копии, консультации по сайту. Опишите в заявке, какие еще объемы планируются на сопровождении и на какой срок вы планируете заключить договор на сопровождение - мы подберем подходящий вам бюджет на сопровождение
Работы по сайту
Вы можете подать заявку на выполнение определенного объема работ по сайту. Опишите в заявке объем работ. Это может быть разработка какого-то нового функционала, доработки по имеющемуся функционалу, доработки под требования сео-специалистов. На основании заявки вам будет сформирован бюджет работ, а также названы сроки на выполнение тех или иных работ.