Документация для разработчиков
Темная тема

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
Наверх