custom/plugins/CompraGlobalInformationBarSW6/src/Storefront/Subscriber/Frontend.php line 32

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Compra\GlobalInformationBarSW6\Storefront\Subscriber;
  3. use Shopware\Core\System\SystemConfig\SystemConfigService;
  4. use Shopware\Storefront\Pagelet\Header\HeaderPageletLoadedEvent;
  5. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  6. use Psr\Container\ContainerInterface;
  7. class Frontend implements EventSubscriberInterface {
  8.     private const PLUGIN_CONFIG_DOMAIN "CompraGlobalInformationBarSW6.config.";
  9.     private $container;
  10.     public function __construct(ContainerInterface $container)
  11.     {
  12.         $this->container $container;
  13.     }
  14.     public static function getSubscribedEvents()
  15.     {
  16.         return [
  17.             HeaderPageletLoadedEvent::class => 'onHeaderPageletLoaded',
  18.         ];
  19.     }
  20.     /**
  21.      * @param HeaderPageletLoadedEvent $event
  22.      */
  23.     public function onHeaderPageletLoaded(HeaderPageletLoadedEvent $event): void
  24.     {
  25.         /** @var SystemConfigService $systemConfig */
  26.         $systemConfig $this->container->get(SystemConfigService::class);
  27.         $showInformationbar $systemConfig->get(self::PLUGIN_CONFIG_DOMAIN 'showInformationbar');
  28.         $activateTiming $systemConfig->get(self::PLUGIN_CONFIG_DOMAIN 'activateTiming');
  29.         if(!$showInformationbar || !$activateTiming) {
  30.             return;
  31.         }
  32.         $timingStart $systemConfig->get(self::PLUGIN_CONFIG_DOMAIN 'timingStart');
  33.         $timingEnd $systemConfig->get(self::PLUGIN_CONFIG_DOMAIN 'timingEnd');
  34.         $start date("Y-m-d H:i:s"strtotime($timingStart));
  35.         $end date("Y-m-d H:i:s"strtotime($timingEnd));
  36.         $now date("Y-m-d H:i:s");
  37.         if (($now $start) || ($now $end)) {
  38.             $showInformationbar false;
  39.         }
  40.         $currentValue $systemConfig->get(self::PLUGIN_CONFIG_DOMAIN 'showInformationbar');
  41.         if ($currentValue !== $showInformationbar) {
  42.             $systemConfig->set(self::PLUGIN_CONFIG_DOMAIN 'showInformationbar'$showInformationbar);
  43.         }
  44.     }
  45. }