<?php declare(strict_types=1);
namespace ShopStudio\Blog\Content\BlogPost\SalesChannel;
use ShopStudio\Blog\Content\BlogPost\BlogPostEntity;
use ShopStudio\Blog\Content\BlogPost\Language\AbstractLanguageOverrider;
use Shopware\Core\Defaults;
use Shopware\Core\System\SalesChannel\Entity\SalesChannelEntityLoadedEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
/**
* @since 1.0.0
*/
class SalesChannelBlogPostSubscriber implements EventSubscriberInterface
{
/**
* @since 2.15.0
*/
private AbstractLanguageOverrider $languageOverrider;
/**
* @since 2.15.0
*/
public function __construct(AbstractLanguageOverrider $languageOverrider)
{
$this->languageOverrider = $languageOverrider;
}
/**
* @since 1.0.0
*
* {@inheritdoc}
*/
public static function getSubscribedEvents(): array
{
return [
'sales_channel.shopstudio_blog_blog_post.loaded' => 'onLoaded',
];
}
/**
* @since 1.0.0
*/
public function onLoaded(SalesChannelEntityLoadedEvent $event): void
{
/** @var BlogPostEntity[] $blogPosts */
$blogPosts = $event->getEntities();
$context = $event->getContext();
foreach ($blogPosts as $blogPost) {
if ($blogPost->getLanguageId() !== null) {
$this->languageOverrider->override($blogPost, Defaults::LANGUAGE_SYSTEM, $context);
}
}
}
}