vendor/thelia/core/lib/Thelia/Action/Message.php line 53

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of the Thelia package.
  4.  * http://www.thelia.net
  5.  *
  6.  * (c) OpenStudio <info@thelia.net>
  7.  *
  8.  * For the full copyright and license information, please view the LICENSE
  9.  * file that was distributed with this source code.
  10.  */
  11. namespace Thelia\Action;
  12. use Symfony\Component\EventDispatcher\EventDispatcherInterface;
  13. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  14. use Thelia\Core\Event\Message\MessageCreateEvent;
  15. use Thelia\Core\Event\Message\MessageDeleteEvent;
  16. use Thelia\Core\Event\Message\MessageUpdateEvent;
  17. use Thelia\Core\Event\TheliaEvents;
  18. use Thelia\Model\Message as MessageModel;
  19. use Thelia\Model\MessageQuery;
  20. class Message extends BaseAction implements EventSubscriberInterface
  21. {
  22.     /**
  23.      * Create a new messageuration entry.
  24.      *
  25.      * @param $eventName
  26.      */
  27.     public function create(MessageCreateEvent $event$eventNameEventDispatcherInterface $dispatcher): void
  28.     {
  29.         $message = new MessageModel();
  30.         $message
  31.             ->setName($event->getMessageName())
  32.             ->setLocale($event->getLocale())
  33.             ->setTitle($event->getTitle())
  34.             ->setSecured($event->getSecured())
  35.             ->save()
  36.         ;
  37.         $event->setMessage($message);
  38.     }
  39.     /**
  40.      * Change a message.
  41.      *
  42.      * @param $eventName
  43.      */
  44.     public function modify(MessageUpdateEvent $event$eventNameEventDispatcherInterface $dispatcher): void
  45.     {
  46.         if (null !== $message MessageQuery::create()->findPk($event->getMessageId())) {
  47.             $message
  48.                 ->setName($event->getMessageName())
  49.                 ->setSecured($event->getSecured())
  50.                 ->setLocale($event->getLocale())
  51.                 ->setTitle($event->getTitle())
  52.                 ->setSubject($event->getSubject())
  53.                 ->setHtmlMessage($event->getHtmlMessage())
  54.                 ->setTextMessage($event->getTextMessage())
  55.                 ->setHtmlLayoutFileName($event->getHtmlLayoutFileName())
  56.                 ->setHtmlTemplateFileName($event->getHtmlTemplateFileName())
  57.                 ->setTextLayoutFileName($event->getTextLayoutFileName())
  58.                 ->setTextTemplateFileName($event->getTextTemplateFileName())
  59.                 ->save();
  60.             $event->setMessage($message);
  61.         }
  62.     }
  63.     /**
  64.      * Delete a messageuration entry.
  65.      *
  66.      * @param $eventName
  67.      */
  68.     public function delete(MessageDeleteEvent $event$eventNameEventDispatcherInterface $dispatcher): void
  69.     {
  70.         if (null !== ($message MessageQuery::create()->findPk($event->getMessageId()))) {
  71.             $message
  72.                 ->delete()
  73.             ;
  74.             $event->setMessage($message);
  75.         }
  76.     }
  77.     /**
  78.      * {@inheritDoc}
  79.      */
  80.     public static function getSubscribedEvents()
  81.     {
  82.         return [
  83.             TheliaEvents::MESSAGE_CREATE => ['create'128],
  84.             TheliaEvents::MESSAGE_UPDATE => ['modify'128],
  85.             TheliaEvents::MESSAGE_DELETE => ['delete'128],
  86.         ];
  87.     }
  88. }