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

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-2020, «1С-Битрикс», 2020
Наверх