public function postActivation(ConnectionInterface $con = null) { // delete existing message $message = MessageQuery::create()->filterByName('mail_virtualproduct')->findOne($con); if (null !== $message) { $message->delete($con); } // create new message $message = new Message(); $message->setName('mail_virtualproduct')->setSecured(0); $basePath = __DIR__ . '/Config/message/%s.xml'; $languages = LangQuery::create()->find(); foreach ($languages as $language) { $locale = $language->getLocale(); $message->setLocale($locale); $path = sprintf($basePath, $language->getLocale()); if (file_exists($path) && is_readable($path)) { $dom = new SimpleXMLElement(file_get_contents($path)); if ($dom) { $message->setTitle((string) $dom->title); $message->setSubject((string) $dom->subject); $message->setTextMessage((string) $dom->text); $message->setHtmlMessage((string) $dom->html); } } } $message->save(); }
/** * Create message with HTML and TEXT body from template HTMl and TEXT fields * using a text and a html layout */ public function testMessageWithTextAndHtmlBodyAndTextAndHtmlExtendableLayout() { $message = new ModelMessage(); $message->setLocale('fr_FR'); $message->setSubject("The subject"); $message->setTextMessage('TEXT <template> & content v={$myvar}'); $message->setHtmlMessage('HTML <template> & content v={$myvar}'); $message->setHtmlLayoutFileName('layout6.html.tpl'); $message->setTextLayoutFileName('layout6.text.tpl'); $path = TemplateHelper::getInstance()->getActiveMailTemplate()->getAbsolutePath(); $this->parser->assign('myvar', 'my-value'); file_put_contents($path . DS . 'layout6.html.tpl', 'HTML Layout 6: {block name="message-body"}{$message_body nofilter}{/block}'); file_put_contents($path . DS . 'layout6.text.tpl', 'TEXT Layout 6: {block name="message-body"}{$message_body nofilter}{/block}'); $instance = \Swift_Message::newInstance(); $message->buildMessage($this->parser, $instance); $this->assertEquals("The subject", $instance->getSubject()); $this->assertEquals("HTML Layout 6: HTML <template> & content v=my-value", $instance->getBody()); $this->assertEquals("TEXT Layout 6: TEXT <template> & content v=my-value", $instance->getChildren()[0]->getBody()); }