vendor/dvdw/directory/src/Content/Product/Subscriber/ProductPageLoadedSubscriber.php line 17

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace DvdwDirectory\Content\Product\Subscriber;
  3. use Shopware\Storefront\Page\Product\ProductPageLoadedEvent;
  4. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  5. class ProductPageLoadedSubscriber implements EventSubscriberInterface {
  6.     public static function getSubscribedEvents(): array
  7.     {
  8.         return [
  9.             ProductPageLoadedEvent::class => 'onProductPage',
  10.         ];
  11.     }
  12.     public function onProductPage(ProductPageLoadedEvent $event): void
  13.     {
  14.         $page $event->getPage();
  15.         $metaInformation $page->getMetaInformation();
  16.         if ((string) $page->getProduct()->getTranslation('metaTitle') === '') {
  17.             $metaTitleParts = [$page->getProduct()->getTranslation('name')];
  18.             foreach ($page->getSelectedOptions() as $option) {
  19.                 $metaTitleParts[] = $option->getTranslation('name');
  20.             }
  21.             $metaTitleParts[] = $event->getSalesChannelContext()->getSalesChannel()->getName();
  22.             $metaInformation->setMetaTitle(implode(' | '$metaTitleParts));
  23.         }
  24.     }
  25. }