custom/plugins/Confi/src/Service/ConfiguratorData.php line 25

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Su\Confi\Service;
  3. use Shopware\Storefront\Page\Product\ProductPageLoadedEvent;
  4. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  5. use Shopware\Core\System\SystemConfig\SystemConfigService;
  6. class ConfiguratorData implements EventSubscriberInterface
  7. {
  8.     private SystemConfigService $systemConfigService;
  9.     public function __construct(SystemConfigService $systemConfigService)
  10.     {
  11.         $this->systemConfigService $systemConfigService;
  12.     }
  13.     public static function getSubscribedEvents(): array
  14.     {
  15.         return [
  16.             ProductPageLoadedEvent::class => 'addConfiguratorData'
  17.         ];
  18.     }
  19.     public function addConfiguratorData(ProductPageLoadedEvent $event): void
  20.     {
  21.         $ct $event->getRequest()->get('ct');
  22.         $vid $event->getRequest()->get('vid');
  23.         $configuratorToken = !empty($ct) ? '&ct='.strip_tags($ct) : '';
  24.         $ConfiguratorVersionId = !empty($vid) ? '&vid='.strip_tags($vid) : '';
  25.         $productData $event->getPage()->getProduct();
  26.         $confiHash $productData->translated['customFields']['confi_id'] ?? null;
  27.         if(!empty($confiHash)){
  28.             $host $this->systemConfigService->get('Confi.config.confiserver');
  29.             $ch curl_init($host.'get.php?id='.$confiHash.$configuratorToken.$ConfiguratorVersionId);
  30.             curl_setopt($ch,CURLOPT_RETURNTRANSFER1);
  31.             $response curl_exec($ch);
  32.             curl_close($ch);
  33. //
  34. //            var_dump($response);
  35. //            exit;
  36.             $confi json_decode($responsetrue);
  37.             $confi['css'] = str_replace('confi.domondo.co.uk''jalousiescout.secom-united.com'$confi['css']);
  38.             $confi['js'] = str_replace('confi.domondo.co.uk''jalousiescout.secom-united.com'$confi['js']);
  39.             $confi['body'] = str_replace('confi.domondo.co.uk''jalousiescout.secom-united.com'$confi['body']);
  40.             $event->getPage()->assign(['confi' => $confi]);
  41.             $event->getPage()->assign(['product' => $productData]);
  42.         }
  43.     }
  44. }