custom/plugins/ShopStudioBlog/src/Content/BlogPost/SalesChannel/SalesChannelBlogPostSubscriber.php line 44

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace ShopStudio\Blog\Content\BlogPost\SalesChannel;
  3. use ShopStudio\Blog\Content\BlogPost\BlogPostEntity;
  4. use ShopStudio\Blog\Content\BlogPost\Language\AbstractLanguageOverrider;
  5. use Shopware\Core\Defaults;
  6. use Shopware\Core\System\SalesChannel\Entity\SalesChannelEntityLoadedEvent;
  7. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  8. /**
  9.  * @since 1.0.0
  10.  */
  11. class SalesChannelBlogPostSubscriber implements EventSubscriberInterface
  12. {
  13.     /**
  14.      * @since 2.15.0
  15.      */
  16.     private AbstractLanguageOverrider $languageOverrider;
  17.     /**
  18.      * @since 2.15.0
  19.      */
  20.     public function __construct(AbstractLanguageOverrider $languageOverrider)
  21.     {
  22.         $this->languageOverrider $languageOverrider;
  23.     }
  24.     /**
  25.      * @since 1.0.0
  26.      *
  27.      * {@inheritdoc}
  28.      */
  29.     public static function getSubscribedEvents(): array
  30.     {
  31.         return [
  32.             'sales_channel.shopstudio_blog_blog_post.loaded' => 'onLoaded',
  33.         ];
  34.     }
  35.     /**
  36.      * @since 1.0.0
  37.      */
  38.     public function onLoaded(SalesChannelEntityLoadedEvent $event): void
  39.     {
  40.         /** @var BlogPostEntity[] $blogPosts */
  41.         $blogPosts $event->getEntities();
  42.         $context $event->getContext();
  43.         foreach ($blogPosts as $blogPost) {
  44.             if ($blogPost->getLanguageId() !== null) {
  45.                 $this->languageOverrider->override($blogPostDefaults::LANGUAGE_SYSTEM$context);
  46.             }
  47.         }
  48.     }
  49. }