src/EventListener/SonataAdmin/Block/EntityGeneralInfoBlock.php line 11

Open in your IDE?
  1. <?php
  2. namespace App\EventListener\SonataAdmin\Block;
  3. use App\Enum\Common\AdminCodesEnum;
  4. use Sonata\BlockBundle\Event\BlockEvent;
  5. use Sonata\BlockBundle\Model\Block;
  6. final class EntityGeneralInfoBlock
  7. {
  8.     public function onBlock(BlockEvent $event): void
  9.     {
  10.         $codes = [];
  11.         if (!($admin $event->getSetting('admin'))) {
  12.             return;
  13.         }
  14.         $codes[$admin->getCode()] = true;
  15.         if ($admin->isChild() && ($parentAdmin $admin->getParent())) {
  16.             $codes[$parentAdmin->getCode()] = true;
  17.         }
  18.         $blockType null;
  19.         if (isset($codes[AdminCodesEnum::PDB_PRODUCT])) {
  20.             $blockType 'app.block.product_general_info';
  21.         } elseif (isset($codes[AdminCodesEnum::TV_SALES_OFFER])) {
  22.             $blockType 'app.block.tv_sales_offer_general_info';
  23.         } elseif (isset($codes[AdminCodesEnum::VOD_TITLE])) {
  24.             $blockType 'app.block.vod.product_overview';
  25.         }
  26.         if (!is_null($blockType)) {
  27.             $block = new Block();
  28.             $block->setId(uniqid(''true));
  29.             $block->setSettings($event->getSettings());
  30.             $block->setType($blockType);
  31.             $event->addBlock($block);
  32.         }
  33.     }
  34. }