custom/plugins/VioB2BLogin/src/Storefront/Subscriber/ThemeInheritanceSubscriber.php line 30

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace VioB2BLogin\Storefront\Subscriber;
  4. use ReflectionClass;
  5. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  6. use VioB2BLogin\Core\Services\AbstractAvailabilityService;
  7. use VioB2BLogin\Storefront\Theme\Twig\FilterThemeInheritanceEvent;
  8. use VioB2BLogin\VioB2BLogin;
  9. class ThemeInheritanceSubscriber implements EventSubscriberInterface
  10. {
  11.     private AbstractAvailabilityService $availabilityService;
  12.     public function __construct(
  13.         AbstractAvailabilityService $availabilityService
  14.     ) {
  15.         $this->availabilityService $availabilityService;
  16.     }
  17.     public static function getSubscribedEvents(): array
  18.     {
  19.         return [
  20.             FilterThemeInheritanceEvent::class => 'onFilterThemeInheritance'
  21.         ];
  22.     }
  23.     public function onFilterThemeInheritance(FilterThemeInheritanceEvent $event)
  24.     {
  25.         $plugins $event->getPlugins();
  26.         if (!$this->availabilityService->isEnabled()) {
  27.             $pluginName = (new ReflectionClass(VioB2BLogin::class))->getShortName();
  28.             unset($plugins[$pluginName]);
  29.             $event->setPlugins($plugins);
  30.         }
  31.     }
  32. }