. */ /* */ /*************************************************************************************/ namespace Thelia\Action; use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Thelia\Model\MessageQuery; use Thelia\Model\Message as MessageModel; use Thelia\Core\Event\TheliaEvents; use Thelia\Core\Event\MessageChangeEvent; use Thelia\Core\Event\MessageCreateEvent; use Thelia\Core\Event\MessageDeleteEvent; class Message extends BaseAction implements EventSubscriberInterface { /** * Create a new messageuration entry * * @param MessageCreateEvent $event */ public function create(MessageCreateEvent $event) { $message = new MessageModel(); $message ->setDispatcher($this->getDispatcher()) ->setName($event->getMessageName()) ->setLocale($event->getLocale()) ->setTitle($event->getTitle()) ->setSecured($event->getSecured()) ->save() ; $event->setMessage($message); } /** * Change a message * * @param MessageChangeEvent $event */ public function modify(MessageChangeEvent $event) { $search = MessageQuery::create(); if (null !== $message = MessageQuery::create()->findOneById($event->getMessageId())) { $message ->setDispatcher($this->getDispatcher()) ->setName($event->getMessageName()) ->setSecured($event->getSecured()) ->setLocale($event->getLocale()) ->setTitle($event->getTitle()) ->setSubject($event->getSubject()) ->setHtmlMessage($event->getHtmlMessage()) ->setTextMessage($event->getTextMessage()) ->save(); $event->setMessage($message); } } /** * Delete a messageuration entry * * @param MessageDeleteEvent $event */ public function delete(MessageDeleteEvent $event) { if (null !== ($message = MessageQuery::create()->findOneById($event->getMessageId()))) { $message ->setDispatcher($this->getDispatcher()) ->delete() ; $event->setMessage($message); } } /** * {@inheritDoc} */ public static function getSubscribedEvents() { return array( TheliaEvents::MESSAGE_CREATE => array("create", 128), TheliaEvents::MESSAGE_UPDATE => array("modify", 128), TheliaEvents::MESSAGE_DELETE => array("delete", 128), ); } }