<?php declare(strict_types=1);
namespace Compra\GlobalInformationBarSW6\Storefront\Subscriber;
use Shopware\Core\System\SystemConfig\SystemConfigService;
use Shopware\Storefront\Pagelet\Header\HeaderPageletLoadedEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Psr\Container\ContainerInterface;
class Frontend implements EventSubscriberInterface {
private const PLUGIN_CONFIG_DOMAIN = "CompraGlobalInformationBarSW6.config.";
private $container;
public function __construct(ContainerInterface $container)
{
$this->container = $container;
}
public static function getSubscribedEvents()
{
return [
HeaderPageletLoadedEvent::class => 'onHeaderPageletLoaded',
];
}
/**
* @param HeaderPageletLoadedEvent $event
*/
public function onHeaderPageletLoaded(HeaderPageletLoadedEvent $event): void
{
/** @var SystemConfigService $systemConfig */
$systemConfig = $this->container->get(SystemConfigService::class);
$showInformationbar = $systemConfig->get(self::PLUGIN_CONFIG_DOMAIN . 'showInformationbar');
$activateTiming = $systemConfig->get(self::PLUGIN_CONFIG_DOMAIN . 'activateTiming');
if(!$showInformationbar || !$activateTiming) {
return;
}
$timingStart = $systemConfig->get(self::PLUGIN_CONFIG_DOMAIN . 'timingStart');
$timingEnd = $systemConfig->get(self::PLUGIN_CONFIG_DOMAIN . 'timingEnd');
$start = date("Y-m-d H:i:s", strtotime($timingStart));
$end = date("Y-m-d H:i:s", strtotime($timingEnd));
$now = date("Y-m-d H:i:s");
if (($now < $start) || ($now > $end)) {
$showInformationbar = false;
}
$currentValue = $systemConfig->get(self::PLUGIN_CONFIG_DOMAIN . 'showInformationbar');
if ($currentValue !== $showInformationbar) {
$systemConfig->set(self::PLUGIN_CONFIG_DOMAIN . 'showInformationbar', $showInformationbar);
}
}
}