vendor/pringuin/pimcore-lucene-search/src/LuceneSearchBundle/EventListener/DocumentMetaDataListener.php line 45

Open in your IDE?
  1. <?php
  2. namespace LuceneSearchBundle\EventListener;
  3. use LuceneSearchBundle\Tool\CrawlerState;
  4. use Pimcore\Http\Request\Resolver\DocumentResolver;
  5. use Pimcore\Model\Document\Page;
  6. use Pimcore\Twig\Extension\Templating\HeadMeta;
  7. use Symfony\Component\HttpKernel\Event\RequestEvent;
  8. class DocumentMetaDataListener
  9. {
  10.     /**
  11.      * @var CrawlerState
  12.      */
  13.     protected $crawlerState;
  14.     /**
  15.      * @var DocumentResolver
  16.      */
  17.     protected $documentResolver;
  18.     /**
  19.      * @var HeadMeta
  20.      */
  21.     protected $headMeta;
  22.     /**
  23.      * DocumentMetaDataListener constructor.
  24.      *
  25.      * @param CrawlerState     $crawlerState
  26.      * @param DocumentResolver $documentResolver
  27.      * @param HeadMeta         $headMeta
  28.      */
  29.     public function __construct(CrawlerState $crawlerStateDocumentResolver $documentResolverHeadMeta $headMeta)
  30.     {
  31.         $this->crawlerState $crawlerState;
  32.         $this->documentResolver $documentResolver;
  33.         $this->headMeta $headMeta;
  34.     }
  35.     /**
  36.      * @param GetResponseEvent $event
  37.      */
  38.     public function onKernelRequest(RequestEvent $event)
  39.     {
  40.         if (!$this->crawlerState->isLuceneSearchCrawler()) {
  41.             return;
  42.         }
  43.         $request $event->getRequest();
  44.         if (!$event->isMasterRequest()) {
  45.             return;
  46.         }
  47.         $document $this->documentResolver->getDocument($request);
  48.         if ($document instanceof Page) {
  49.             $this->headMeta->addRaw('<meta name="lucene-search:documentId" content="' $document->getId() . '" />');
  50.         }
  51.     }
  52. }