vendor/kunstmaan/node-bundle/EventListener/LogPageEventsSubscriber.php line 108

Open in your IDE?
  1. <?php
  2. namespace Kunstmaan\NodeBundle\EventListener;
  3. use Kunstmaan\NodeBundle\Event\CopyPageTranslationNodeEvent;
  4. use Kunstmaan\NodeBundle\Event\Events;
  5. use Kunstmaan\NodeBundle\Event\NodeEvent;
  6. use Kunstmaan\NodeBundle\Event\RecopyPageTranslationNodeEvent;
  7. use Symfony\Bridge\Monolog\Logger;
  8. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  9. use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
  10. use Symfony\Component\Security\Core\User\UserInterface;
  11. class LogPageEventsSubscriber implements EventSubscriberInterface
  12. {
  13.     /**
  14.      * @var Logger
  15.      */
  16.     private $logger;
  17.     /**
  18.      * @var TokenStorageInterface
  19.      */
  20.     private $tokenStorage;
  21.     /**
  22.      * @var UserInterface
  23.      */
  24.     private $user;
  25.     /**
  26.      * @param Logger                $logger       The logger
  27.      * @param TokenStorageInterface $tokenStorage The security token storage
  28.      */
  29.     public function __construct(Logger $loggerTokenStorageInterface $tokenStorage)
  30.     {
  31.         $this->logger $logger;
  32.         $this->tokenStorage $tokenStorage;
  33.     }
  34.     /**
  35.      * Returns an array of event names this subscriber wants to listen to.
  36.      *
  37.      * The array keys are event names and the value can be:
  38.      *
  39.      *  * The method name to call (priority defaults to 0)
  40.      *  * An array composed of the method name to call and the priority
  41.      *  * An array of arrays composed of the method names to call and respective
  42.      *    priorities, or 0 if unset
  43.      *
  44.      * For instance:
  45.      *
  46.      *  * array('eventName' => 'methodName')
  47.      *  * array('eventName' => array('methodName', $priority))
  48.      *  * array('eventName' => array(array('methodName1', $priority), array('methodName2'))
  49.      *
  50.      * @return array The event names to listen to
  51.      *
  52.      * @api
  53.      */
  54.     public static function getSubscribedEvents()
  55.     {
  56.         return array(
  57.             Events::COPY_PAGE_TRANSLATION => 'onCopyPageTranslation',
  58.             Events::RECOPY_PAGE_TRANSLATION => 'onRecopyPageTranslation',
  59.             Events::ADD_EMPTY_PAGE_TRANSLATION => 'onAddEmptyPageTranslation',
  60.             Events::POST_PUBLISH => 'postPublish',
  61.             Events::POST_UNPUBLISH => 'postUnPublish',
  62.             Events::POST_DELETE => 'postDelete',
  63.             Events::ADD_NODE => 'onAddNode',
  64.             Events::POST_PERSIST => 'postPersist',
  65.             Events::CREATE_PUBLIC_VERSION => 'onCreatePublicVersion',
  66.             Events::CREATE_DRAFT_VERSION => 'onCreateDraftVersion',
  67.         );
  68.     }
  69.     /**
  70.      * @return \Symfony\Component\Security\Core\User\UserInterface
  71.      */
  72.     private function getUser()
  73.     {
  74.         if (\is_null($this->user)) {
  75.             $this->user $this->tokenStorage->getToken()->getUser();
  76.         }
  77.         return $this->user;
  78.     }
  79.     /**
  80.      * @param CopyPageTranslationNodeEvent $event
  81.      */
  82.     public function onCopyPageTranslation(CopyPageTranslationNodeEvent $event)
  83.     {
  84.         $this->logger->addInfo(sprintf('%s just copied the page translation from %s (%d) to %s (%d) for node with id %d'$this->getUser()->getUsername(), $event->getOriginalLanguage(), $event->getOriginalPage()->getId(), $event->getNodeTranslation()->getLang(), $event->getPage()->getId(), $event->getNode()->getId()));
  85.     }
  86.     /**
  87.      * @param RecopyPageTranslationNodeEvent $event
  88.      */
  89.     public function onRecopyPageTranslation(RecopyPageTranslationNodeEvent $event)
  90.     {
  91.         $this->logger->addInfo(sprintf('%s just recopied the page translation from %s (%d) to %s (%d) for node with id %d'$this->getUser()->getUsername(), $event->getOriginalLanguage(), $event->getOriginalPage()->getId(), $event->getNodeTranslation()->getLang(), $event->getPage()->getId(), $event->getNode()->getId()));
  92.     }
  93.     /**
  94.      * @param NodeEvent $event
  95.      */
  96.     public function onAddEmptyPageTranslation(NodeEvent $event)
  97.     {
  98.         $this->logger->addInfo(sprintf('%s just added an empty page translation (%d) for node with id %d in language %s'$this->getUser()->getUsername(), $event->getPage()->getId(), $event->getNode()->getId(), $event->getNodeTranslation()->getLang()));
  99.     }
  100.     /**
  101.      * @param NodeEvent $event
  102.      */
  103.     public function postPublish(NodeEvent $event)
  104.     {
  105.         $this->logger->addInfo(sprintf('%s just published the page with id %d for node %d in language %s'$this->getUser()->getUsername(), $event->getPage()->getId(), $event->getNode()->getId(), $event->getNodeTranslation()->getLang()));
  106.     }
  107.     /**
  108.      * @param NodeEvent $event
  109.      */
  110.     public function postUnPublish(NodeEvent $event)
  111.     {
  112.         $this->logger->addInfo(sprintf('%s just unpublished the page with id %d for node %d in language %s'$this->getUser()->getUsername(), $event->getPage()->getId(), $event->getNode()->getId(), $event->getNodeTranslation()->getLang()));
  113.     }
  114.     /**
  115.      * @param NodeEvent $event
  116.      */
  117.     public function postDelete(NodeEvent $event)
  118.     {
  119.         $this->logger->addInfo(sprintf('%s just deleted node with id %d'$this->getUser()->getUsername(), $event->getNode()->getId()));
  120.     }
  121.     /**
  122.      * @param NodeEvent $event
  123.      */
  124.     public function onAddNode(NodeEvent $event)
  125.     {
  126.         $this->logger->addInfo(sprintf('%s just added node with id %d in language %s'$this->getUser()->getUsername(), $event->getNode()->getId(), $event->getNodeTranslation()->getLang()));
  127.     }
  128.     /**
  129.      * @param NodeEvent $event
  130.      */
  131.     public function postPersist(NodeEvent $event)
  132.     {
  133.         $this->logger->addInfo(sprintf('%s just updated page with id %d for node %d in language %s'$this->getUser()->getUsername(), $event->getPage()->getId(), $event->getNode()->getId(), $event->getNodeTranslation()->getLang()));
  134.     }
  135.     /**
  136.      * @param NodeEvent $event
  137.      */
  138.     public function onCreatePublicVersion(NodeEvent $event)
  139.     {
  140.         $this->logger->addInfo(sprintf('%s just created a new public version %d for node %d in language %s'$this->getUser()->getUsername(), $event->getNodeVersion()->getId(), $event->getNode()->getId(), $event->getNodeTranslation()->getLang()));
  141.     }
  142.     /**
  143.      * @param NodeEvent $event
  144.      */
  145.     public function onCreateDraftVersion(NodeEvent $event)
  146.     {
  147.         $this->logger->addInfo(sprintf('%s just created a draft version %d for node %d in language %s'$this->getUser()->getUsername(), $event->getNodeVersion()->getId(), $event->getNode()->getId(), $event->getNodeTranslation()->getLang()));
  148.     }
  149. }