custom/plugins/System4ShopTheme/src/Subscriber/HeaderResponseSubscriber.php line 33

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace System4ShopTheme\Subscriber;
  3. use Shopware\Core\Content\Category\Service\NavigationLoaderInterface;
  4. use Shopware\Core\System\SystemConfig\SystemConfigService;
  5. use Shopware\Storefront\Pagelet\Header\HeaderPageletLoadedEvent;
  6. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  7. class HeaderResponseSubscriber implements EventSubscriberInterface
  8. {   
  9.     /**
  10.      * @var NavigationLoaderInterface
  11.      */
  12.     private NavigationLoaderInterface $navigationLoader;
  13.     private SystemConfigService $systemConfigService;
  14.     public function __construct(
  15.         NavigationLoaderInterface $navigationLoader,
  16.         SystemConfigService $systemConfigService
  17.     ) {
  18.         $this->navigationLoader $navigationLoader;
  19.         $this->systemConfigService $systemConfigService;
  20.     }
  21.     public static function getSubscribedEvents(): array
  22.     {
  23.         return [
  24.             HeaderPageletLoadedEvent::class => 'addHeaderNavigation',
  25.         ];
  26.     }
  27.     public function addHeaderNavigation(HeaderPageletLoadedEvent $event)
  28.     {   
  29.         $rootId $this->systemConfigService->get('System4ShopTheme.config.headerGroupCategory'$event->getSalesChannelContext()->getSalesChannelId());
  30.         $tree null;
  31.         if ($rootId) {
  32.             $navigationId $event->getRequest()->get('navigationId'$rootId);
  33.             $tree $this->navigationLoader->load($navigationId$event->getSalesChannelContext(), $rootId2);
  34.             $newTree array_slice($tree->getTree(), 07);
  35.             // $tree->setTree($newTree);
  36.             $tree->setTree($tree->getTree());
  37.         }
  38.         $event->getPagelet()->assign([
  39.             'customHeaderNavigation' => $tree
  40.         ]);
  41.     }
  42. }