/** * {@inheritdoc} * * @return $this|self */ public function setDescription($description) : self { $this->message->setDescription($description); return $this; }
/** * Render a message for the given recipient. * * @param RecipientInterface $recipient * @param array $additionalData * * @return \Avisota\Message\MessageInterface * @internal param array $newsletterData Additional newsletter data. * * @internal param RecipientInterface $recipientEmail The main recipient. * @SuppressWarnings(PHPMD.Superglobals) */ public function render(RecipientInterface $recipient = null, array $additionalData = array()) { /** @var EventDispatcher $eventDispatcher */ $eventDispatcher = $GLOBALS['container']['event-dispatcher']; // dispatch a pre render event $event = new PreRenderMessageTemplateEvent($this->message, $this, $recipient, $additionalData); $eventDispatcher->dispatch($event::NAME, $event); // fetch updates on additional data $additionalData = $event->getAdditionalData(); $content = $this->parseContent($recipient, $additionalData); $swiftMessage = new \Swift_Message(); $name = trim($recipient->get('forename') . ' ' . $recipient->get('surname')); $swiftMessage->setTo($recipient->getEmail(), $name); $swiftMessage->setSubject($this->message->getSubject()); $swiftMessage->setBody($content, $this->getContentType(), $this->getContentEncoding()); $swiftMessage->setDescription($this->message->getDescription()); if ($this->message->getAddFile()) { $files = deserialize($this->message->getFiles(), true); foreach ($files as $file) { $file = \Compat::resolveFile($file); if ($file) { $attachment = \Swift_Attachment::fromPath(TL_ROOT . '/' . $file); $swiftMessage->attach($attachment); } } } $message = new ContaoAwareNativeMessage($swiftMessage, $this->message, array($recipient)); // dispatch a post render event $event = new PostRenderMessageTemplateEvent($this->message, $this, $recipient, $additionalData, $message); $eventDispatcher->dispatch($event::NAME, $event); return $message; }