Neos.Neos/Classes/EventLog/Integrations/ContentRepositoryIntegrationService.php
public function updateEventsAfterPublish()
    {
        if (!$this->eventEmittingService->isEnabled()) {
            return;
        }

        /** @var $entityManager EntityManager */
        $entityManager = $this->entityManager;

        foreach ($this->scheduledNodeEventUpdates as $documentPublish) {
            /* @var $nodeEvent NodeEvent */
            $nodeEvent = $this->eventEmittingService->emit(self::DOCUMENT_PUBLISHED, [], NodeEvent::class);
            $nodeEvent->setNode($documentPublish['documentNode']);
            $nodeEvent->setWorkspaceName($documentPublish['targetWorkspace']);
            $this->persistenceManager->whitelistObject($nodeEvent);
            $this->persistenceManager->persistAll(true);

            $parentEventIdentifier = $this->persistenceManager->getIdentifierByObject($nodeEvent);

            $qb = $entityManager->createQueryBuilder();
            $qb->update(NodeEvent::class, 'e')
                ->set('e.parentEvent', ':parentEventIdentifier')
                ->setParameter('parentEventIdentifier', $parentEventIdentifier)
                ->where('e.parentEvent IS NULL')
                ->andWhere('e.workspaceName = :workspaceName')
                ->setParameter('workspaceName', $documentPublish['workspaceName'])
                ->andWhere('e.documentNodeIdentifier = :documentNodeIdentifier')
                ->setParameter('documentNodeIdentifier', $documentPublish['documentNode']->getIdentifier())
                ->andWhere('e.eventType != :publishedEventType')
                ->setParameter('publishedEventType', self::DOCUMENT_PUBLISHED)
                ->getQuery()->execute();
        }

        $this->scheduledNodeEventUpdates = [];
    }
public function updateEventsAfterPublish()
    {
        if (!$this->eventEmittingService->isEnabled()) {
            return;
        }

        /** @var $entityManager EntityManager */
        $entityManager = $this->entityManager;

        foreach ($this->scheduledNodeEventUpdates as $documentPublish) {
            /* @var $nodeEvent NodeEvent */
            $nodeEvent = $this->eventEmittingService->emit(self::DOCUMENT_PUBLISHED, [], NodeEvent::class);
            $nodeEvent->setNode($documentPublish['documentNode']);
            $nodeEvent->setWorkspaceName($documentPublish['targetWorkspace']);
            $this->persistenceManager->whitelistObject($nodeEvent);
            $this->persistenceManager->persistAll(true);

            $parentEventIdentifier = $this->persistenceManager->getIdentifierByObject($nodeEvent);

            $qb = $entityManager->createQueryBuilder();
            $qb->update(NodeEvent::class, 'e')
                ->set('e.parentEvent', ':parentEventIdentifier')
                ->setParameter('parentEventIdentifier', $parentEventIdentifier)
                ->where('e.parentEvent IS NULL')
                ->andWhere('e.workspaceName = :workspaceName')
                ->setParameter('workspaceName', $documentPublish['workspaceName'])
                ->andWhere('e.documentNodeIdentifier = :documentNodeIdentifier')
                ->setParameter('documentNodeIdentifier', $documentPublish['documentNode']->getIdentifier())
                ->andWhere('e.eventType != :publishedEventType')
                ->setParameter('publishedEventType', self::DOCUMENT_PUBLISHED)
                ->getQuery()->execute();
        }

        $this->scheduledNodeEventUpdates = [];
    }
public function updateEventsAfterPublish ( ) { if ( ! $ this -> eventEmittingService -> isEnabled ( ) ) { return ; } /** @var $entityManager EntityManager */ $ entityManager = $ this -> entityManager ; foreach ( $ this -> scheduledNodeEventUpdates as $ documentPublish ) { /* @var $nodeEvent NodeEvent */ $ nodeEvent = $ this -> eventEmittingService -> emit ( self :: DOCUMENT_PUBLISHED , [ ] , NodeEvent :: class ) ; $ nodeEvent -> setNode ( $ documentPublish [ 'documentNode' ] ) ; $ nodeEvent -> setWorkspaceName ( $ documentPublish [ 'targetWorkspace' ] ) ; $ this -> persistenceManager -> whitelistObject ( $ nodeEvent ) ; $ this -> persistenceManager -> persistAll ( true ) ; $ parentEventIdentifier = $ this -> persistenceManager -> getIdentifierByObject ( $ nodeEvent ) ; $ qb = $ entityManager -> createQueryBuilder ( ) ; $ qb -> update ( NodeEvent :: class , 'e' ) -> set ( 'e.parentEvent' , ':parentEventIdentifier' ) -> setParameter ( 'parentEventIdentifier' , $ parentEventIdentifier ) -> where ( 'e.parentEvent IS NULL' ) -> andWhere ( 'e.workspaceName = :workspaceName' ) -> setParameter ( 'workspaceName' , $ documentPublish [ 'workspaceName' ] ) -> andWhere ( 'e.documentNodeIdentifier = :documentNodeIdentifier' ) -> setParameter ( 'documentNodeIdentifier' , $ documentPublish [ 'documentNode' ] -> getIdentifier ( ) ) -> andWhere ( 'e.eventType != :publishedEventType' ) -> setParameter ( 'publishedEventType' , self :: DOCUMENT_PUBLISHED ) -> getQuery ( ) -> execute ( ) ; } $ this -> scheduledNodeEventUpdates = [ ] ; }
Binds events to a Node.Published event for each document node published

@return void
Binds events to a Node . Published event for each document node published