Highload-блоки з’явилися в бітрікс починаючи з версії 14.0. Вони орієнтовані на створення більш швидких довідників, порівняно з традиційними инфоблоками, які були відомі раніше користувачам бітрікс. Highload-блоки реалізовані у вигляді окремого модуля, на новому ядрі D7, структура даних цього модуля передбачає можливість використання в навантажених проектах.
Насправді між инфоблоками і highload-блоками немає нічого спільного, а це означає, що засобами стандартного функціоналу адміністраторської частини немає можливості перенести дані з інфоблоків в нову структуру. Однак при необхідності можна реалізувати, використовуючи API битрикса, попередньо створивши необхідну структуру даних у highload.
Розглянемо прості приклади, які допоможуть вам почати використовувати їх у своїх проектах.
Перше, що слід зробити, – це підключити модуль hightload, робиться це традиційним методом, так:

CModule::IncludeModule(“highloadblock”);

Далі нам слід задати highload блок, з яким ми будемо працювати

$hlblock_id = 1;
$hlblock = Bitrix\Highloadblock\HighloadBlockTable::getById($hlblock_id)->fetch();
$entity = Bitrix\Highloadblock\HighloadBlockTable::compileEntity($hlblock);
$entity_data_class = $entity->getDataClass();

Після цього ми можемо працювати з даними, додавати нові, запитувати, оновлювати і видаляти. В якості першого прикладу ми спробуємо додати дані в highload-блок таким от чином:

// масив полів для додавання в hightload-блок
$arAdd = array(
‘UF_SOURCE_ELEM_ID’ => 12345,
‘UF_DEST_ELEM_ID’ => 54321,
‘UF_SOURCE_URL’ => ‘/catalog/avto/’,
‘UF_DEST_URL’ => ‘/avto/tovary/’
);
$result = $entity_data_class::add($arAdd);
if ($result->isSuccess()){
echo ‘Запис додана успішно! ID запису: ‘. $result->getId();
} else {
echo ‘Не вдалося додати запис…’;
}

Далі спробуємо запросити якусь запис, для цього є метод getList, назва якого можливо вам уже відомо, і воно говорить саме за себе. Даний метод вибирає поля з highload-блоків, згідно з заданими параметрами. Розглянемо наступний приклад, спробуємо запросити деякі дані.

$rsData = $entity_data_class::getList(
array(
“select” => array(“*”),
“order” => array(“ID” => “ASC”),
“filter” => array(‘UF_SOURCE_URL’ => $pageUrl)
)
);
if ($arData = $rsData -> Fetch()){
echo “; print_r ($arData); echo “;
}

Таким чином, ми передаємо методу getList три параметра, перший «select» – вказуємо поля, які слід вибрати (* — означає всі поля), другий «order» — задає порядок сортування, третій «filter» — фільтр, згідно з яким будуть відібрані дані.

Тепер спробуємо оновити дані одного з записів в highload-блоці.

// масив полів для оновлення
$arUpd = array(
‘UF_SOURCE_URL’ => ‘/catalog/tv/’,
‘UF_DEST_URL’ => ‘/televizory/’
);
$result = $entity_data_class::update($ID, $arUpd);

Оновлюється запис у highload блоках методом update, який приймає два параметри: $ID – ID запису, $arUpd – масив полів, які слід змінити.

Ну і на кінець, спробуємо видалити запис з hightload. Робиться це ще простіше. Щоб видалити запис, нам достатньо знати її ID, після чого ми передаємо його методом Delete.

$entity_data_class::Delete($ID);
Додав: htmaker, 03.12.2016 р.
(1 голосів, середній: 5,00 з 5)

Завантаження…

Діліться з друзями:

См. також:


Налаштування часу у VMBitrix
Рубрика: Bitrix, Linux

Видалення «кинутих» кошиків в системі Бітрікс
Рубрика: Bitrix

Як виконати SQL запит в Bitrix
Рубрика: Bitrix

Як підрахувати кількість елементів в Bitrix?
Рубрика: Bitrix

Динамічне масштабування зображень в Bitrix
Рубрика: Bitrix

Виключаємо користувача з ID=1 групи адміністраторів в Bitrix
Рубрика: Bitrix

Як скинути пароль адміністратора у Bitrix?
Рубрика: Bitrix

SQL-запити в бітрікс
Рубрика: Bitrix

Робота з параметрами модулів зберігаються в базі
Рубрика: Bitrix