vendor/shopware/storefront/Pagelet/Footer/FooterPageletLoader.php line 45

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Shopware\Storefront\Pagelet\Footer;
  3. use Shopware\Core\Content\Category\Service\NavigationLoaderInterface;
  4. use Shopware\Core\System\Annotation\Concept\ExtensionPattern\Decoratable;
  5. use Shopware\Core\System\SalesChannel\SalesChannelContext;
  6. use Symfony\Component\EventDispatcher\EventDispatcherInterface;
  7. use Symfony\Component\HttpFoundation\Request;
  8. /**
  9.  * @Decoratable()
  10.  */
  11. class FooterPageletLoader implements FooterPageletLoaderInterface
  12. {
  13.     /**
  14.      * @var EventDispatcherInterface
  15.      */
  16.     private $eventDispatcher;
  17.     /**
  18.      * @var NavigationLoaderInterface
  19.      */
  20.     private $navigationLoader;
  21.     /**
  22.      * @internal
  23.      */
  24.     public function __construct(
  25.         EventDispatcherInterface $eventDispatcher,
  26.         NavigationLoaderInterface $navigationLoader
  27.     ) {
  28.         $this->eventDispatcher $eventDispatcher;
  29.         $this->navigationLoader $navigationLoader;
  30.     }
  31.     public function load(Request $requestSalesChannelContext $salesChannelContext): FooterPagelet
  32.     {
  33.         $footerId $salesChannelContext->getSalesChannel()->getFooterCategoryId();
  34.         $tree null;
  35.         if ($footerId) {
  36.             $navigationId $request->get('navigationId'$footerId);
  37.             $tree $this->navigationLoader->load($navigationId$salesChannelContext$footerId);
  38.         }
  39.         $pagelet = new FooterPagelet($tree);
  40.         $this->eventDispatcher->dispatch(
  41.             new FooterPageletLoadedEvent($pagelet$salesChannelContext$request)
  42.         );
  43.         return $pagelet;
  44.     }
  45. }