<?php
declare(strict_types=1);
namespace Vio\B2BBudget\Storefront\Subscriber;
use ReflectionClass;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Vio\B2BBudget\VioB2BBudgets;
use VioB2BLogin\Core\Services\AbstractAvailabilityService;
use VioB2BLogin\Storefront\Theme\Twig\FilterThemeInheritanceEvent;
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(VioB2BBudgets::class))->getShortName();
unset($plugins[$pluginName]);
$event->setPlugins($plugins);
}
}
}