<?php
namespace BAL\Plugin\ThreeDimensionModelView\Subscriber;
use BAL\Plugin\ThreeDimensionModelView\Entity\Product\ProductExtension;
use Shopware\Core\Content\Product\Events\ProductListingCriteriaEvent;
use Shopware\Core\Content\Product\ProductEvents;
use Shopware\Core\Framework\DataAbstractionLayer\Search\Filter\EqualsFilter;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class ProductListingSubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents() : array
{
return [
ProductEvents::PRODUCT_LISTING_CRITERIA => 'onProductListingCriteriaEvent',
];
}
public function onProductListingCriteriaEvent(ProductListingCriteriaEvent $event) : void
{
$productModelCriteria = $event->getCriteria()->getAssociation(ProductExtension::FIELD_NAME);
$productModelCriteria->addAssociation('threeDimensionModel');
$productModelCriteria->addFilter(
new EqualsFilter('active', true),
new EqualsFilter('threeDimensionModel.active', true),
);
}
}