custom/plugins/CbaxModulBreadcrumbModified/src/Subscriber/FrontendSubscriber.php line 37

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Cbax\ModulBreadcrumbModified\Subscriber;
  3. use Shopware\Storefront\Page\Product\ProductPageLoadedEvent;
  4. use Shopware\Storefront\Page\Navigation\NavigationPageLoadedEvent;
  5. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  6. use Cbax\ModulBreadcrumbModified\Components\BreadcrumbHelper;
  7. use Shopware\Core\System\SystemConfig\SystemConfigService;
  8. class FrontendSubscriber implements EventSubscriberInterface
  9. {
  10.     /**
  11.      * @var SystemConfigService
  12.      */
  13.     private $systemConfigService;
  14.     /**
  15.      * @var BreadcrumbHelper
  16.      */
  17.     private $breadcrumbHelper;
  18.     public function __construct(BreadcrumbHelper $breadcrumbHelperSystemConfigService $systemConfigService)
  19.     {
  20.         $this->breadcrumbHelper $breadcrumbHelper;
  21.         $this->systemConfigService $systemConfigService;
  22.     }
  23.     public static function getSubscribedEvents(): array
  24.     {
  25.         return [
  26.             ProductPageLoadedEvent::class => 'onProductPageLoaded',
  27.             NavigationPageLoadedEvent::class => 'onNavigationPageLoaded'
  28.         ];
  29.     }
  30.     public function onProductPageLoaded(ProductPageLoadedEvent $event)
  31.     {
  32.         $salesChannelId $event->getSalesChannelContext()->getSalesChannelId();
  33.         $config $this->systemConfigService->get('CbaxModulBreadcrumbModified.config'$salesChannelId) ?? [];
  34.         if (empty($config['active'])) return false;
  35.         $newBreadcrumb $this->breadcrumbHelper->getProductBreadcrumb($event);
  36.         if (!$newBreadcrumb) return false;
  37.         $page $event->getPage();
  38.         $page->assign( ['cbaxBreadcrumbModified' => $newBreadcrumb]);
  39.     }
  40.     public function onNavigationPageLoaded(NavigationPageLoadedEvent $event)
  41.     {
  42.         $salesChannelId $event->getSalesChannelContext()->getSalesChannelId();
  43.         $config $this->systemConfigService->get('CbaxModulBreadcrumbModified.config'$salesChannelId) ?? [];
  44.         if (empty($config['active'])) return false;
  45.         $newBreadcrumb $this->breadcrumbHelper->getCategoryBreadcrumb($event);
  46.         if (!$newBreadcrumb) return false;
  47.         $page $event->getPage();
  48.         $page->assign( ['cbaxBreadcrumbModified' => $newBreadcrumb]);
  49.     }
  50. }