custom/plugins/FutiFaqManagerSW6/src/Framework/Seo/SeoUrlRoute/FaqSeoUrlUpdateListener.php line 59

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Futi\FaqManagerSW6\Framework\Seo\SeoUrlRoute;
  3. use Doctrine\DBAL\Connection;
  4. use Futi\FaqManagerSW6\Entities\Categories\Events\FaqCategoriesIndexerEvent;
  5. use Futi\FaqManagerSW6\Entities\Categories\FaqCategoriesEvents;
  6. use Futi\FaqManagerSW6\Entities\Items\Events\FaqListIndexerEvent;
  7. use Futi\FaqManagerSW6\Entities\Items\FaqListEvents;
  8. use Futi\FaqManagerSW6\Entities\Pages\Events\FaqPagesIndexerEvent;
  9. use Futi\FaqManagerSW6\Entities\Pages\FaqPagesEvents;
  10. use Shopware\Core\Content\Seo\SeoUrlUpdater;
  11. use Shopware\Core\Framework\DataAbstractionLayer\Indexing\EntityIndexerRegistry;
  12. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  13. class FaqSeoUrlUpdateListener implements EventSubscriberInterface
  14. {
  15.     /**
  16.      * @var SeoUrlUpdater
  17.      */
  18.     private $seoUrlUpdater;
  19.     /**
  20.      * @var Connection
  21.      */
  22.     private $connection;
  23.     /**
  24.      * @var EntityIndexerRegistry
  25.      */
  26.     private $indexerRegistry;
  27.     public function __construct(SeoUrlUpdater $seoUrlUpdaterConnection $connectionEntityIndexerRegistry $indexerRegistry)
  28.     {
  29.         $this->seoUrlUpdater $seoUrlUpdater;
  30.         $this->connection $connection;
  31.         $this->indexerRegistry $indexerRegistry;
  32.     }
  33.     public static function getSubscribedEvents()
  34.     {
  35.         return [
  36.             FaqPagesEvents::FAQ_PAGES_INDEXER_EVENT => 'updateFaqPagesUrls',
  37.             FaqCategoriesEvents::FAQ_PAGES_INDEXER_EVENT => 'updateFaqCategoriesUrls',
  38.             FaqListEvents::FAQ_LIST_INDEXER_EVENT => 'updateFaqListUrls'
  39.         ];
  40.     }
  41.     public function updateFaqPagesUrls(FaqPagesIndexerEvent $event): void
  42.     {
  43.         $this->seoUrlUpdater->update('frontend.faq.page'$event->getIds());
  44.     }
  45.     public function updateFaqCategoriesUrls(FaqCategoriesIndexerEvent $event): void
  46.     {
  47.         $this->seoUrlUpdater->update('frontend.faq.category'$event->getIds());
  48.     }
  49.     public function updateFaqListUrls(FaqListIndexerEvent $event): void
  50.     {
  51.         $this->seoUrlUpdater->update('frontend.faq.list'$event->getIds());
  52.     }
  53. }