onBlockGetRepository
Событие позволяет повлиять на массив блоков, отдаваемых из репозитория. Например, удалить некоторые при определенных условиях.
Параметры:
| Параметр | Описание | С версии |
|---|---|---|
| blocks | Массив блоков. |
Важно! Событие не подходит для добавления новых блоков (см. инструкцию по добавлению). Только для корректировки (например, категории) или удаления существующих.
Пример
В абстрактном примере мы пробегаемся по массиву блоков и при некорректной версии блока удаляем его из выдачи.
$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->addEventHandler('landing', 'onBlockGetRepository',
function(\Bitrix\Main\Event $event)
{
$result = new \Bitrix\Main\Entity\EventResult;
$blocks = $event->getParameter('blocks');
foreach ($blocks as $secCode => &$section)
{
foreach ($section['items'] as $blockCode => &$block)
{
if (isset($block['manifest']['block']['version']))
{
$blockVersion = $block['manifest']['block']['version'];
if (version_compare('15.0.0', $blockVersion) < 0)
{
unset($section['items'][$blockCode]);
}
}
}
unset($block);
}
unset($section);
$result->modifyFields(array(
'blocks' => $blocks
));
return $result;
}
);
© «Битрикс», 2001-2025, «1С-Битрикс», 2025