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-2024, «1С-Битрикс», 2024