<?php
namespace Sas\BlogModule\Subscriber;
use Shopware\Storefront\Event\StorefrontRenderEvent;
use Shopware\Storefront\Page\Navigation\NavigationPage;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpFoundation\RedirectResponse;
class BlogNavigationSubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents(): array
{
return [
StorefrontRenderEvent::class => 'onStorefrontRenderEvent',
];
}
public function onStorefrontRenderEvent(StorefrontRenderEvent $event)
{
if (array_key_exists('page', $event->getParameters())) {
/* @var $page NavigationPage */
$page = $event->getParameters()['page'];
if ($page instanceof NavigationPage) {
if ($page->getCmsPage()->getName() == 'Blog Listing') {
if (is_null($event->getRequest()->get('now'))) {
$url = $event->getSalesChannelContext()->getSalesChannel()->getDomains()->first()->getUrl();
$url .= $event->getRequest()->getRequestUri();
$url .= (parse_url($url, PHP_URL_QUERY) ? '&' : '?') . 'now=' . time();
(new RedirectResponse($url))->send();
}
}
}
}
}
}