<?php
declare(strict_types=1);
namespace VioB2BLogin\Storefront\Subscriber;
use ReflectionClass;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use VioB2BLogin\Core\Services\AbstractAvailabilityService;
use VioB2BLogin\Storefront\Theme\Twig\FilterThemeInheritanceEvent;
use VioB2BLogin\VioB2BLogin;
class ThemeInheritanceSubscriber implements EventSubscriberInterface
{
private AbstractAvailabilityService $availabilityService;
public function __construct(
AbstractAvailabilityService $availabilityService
) {
$this->availabilityService = $availabilityService;
}
public static function getSubscribedEvents(): array
{
return [
FilterThemeInheritanceEvent::class => 'onFilterThemeInheritance'
];
}
public function onFilterThemeInheritance(FilterThemeInheritanceEvent $event)
{
$plugins = $event->getPlugins();
if (!$this->availabilityService->isEnabled()) {
$pluginName = (new ReflectionClass(VioB2BLogin::class))->getShortName();
unset($plugins[$pluginName]);
$event->setPlugins($plugins);
}
}
}