custom/static-plugins/CioBusinesscards/src/Subscriber/ResponseSubscriber.php line 27

Open in your IDE?
  1. <?php
  2. namespace CioBusinesscards\Subscriber;
  3. use CioBusinesscards\Model\ConfigHelper;
  4. use Shopware\Storefront\Page\Product\ProductPage;
  5. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  6. use Symfony\Component\HttpKernel\Event\ResponseEvent;
  7. use Symfony\Component\HttpKernel\KernelEvents;
  8. class ResponseSubscriber implements EventSubscriberInterface
  9. {
  10.     private ConfigHelper $configHelper;
  11.     public function __construct(ConfigHelper $configHelper)
  12.     {
  13.         $this->configHelper $configHelper;
  14.     }
  15.     public static function getSubscribedEvents(): array
  16.     {
  17.         return [
  18.             KernelEvents::RESPONSE => 'setCustomXFrameOptions',
  19.         ];
  20.     }
  21.     public function setCustomXFrameOptions(ResponseEvent $event): void
  22.     {
  23.         $request $event->getRequest();
  24.         $response $event->getResponse();
  25.         if ($request->getRequestUri() == '/businesscards/generate' || $request->getRequestUri() == '/businesscards/generateNamecard' || $request->getRequestUri() == '/businesscards/generateRecommendationcard') {
  26.             $response->headers->set('X-Frame-Options''sameorigin');
  27.         }
  28.         if (method_exists($response'getData')) {
  29.             if (isset($response->getData()['page'])) {
  30.                 $page $response->getData()['page'];
  31.                 if ($page instanceof ProductPage) {
  32.                     if ($this->configHelper->isBusinesscard($page->getProduct()) || $this->configHelper->isNameCard($page->getProduct()) || $this->configHelper->isRecommendationCard($page->getProduct())) {
  33.                         $response->headers->set('X-Frame-Options''sameorigin');
  34.                     }
  35.                 }
  36.             }
  37.         }
  38.     }
  39. }