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
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.