/** * Loads values from MailModel into Mail * * @param \Enlight_Components_Mail $mail * @param \Shopware\Models\Mail\Mail $mailModel * @param array $overrideConfig * @return \Enlight_Components_Mail * @throws \Enlight_Exception */ public function loadValues(\Enlight_Components_Mail $mail, \Shopware\Models\Mail\Mail $mailModel, $overrideConfig = array()) { $stringCompiler = $this->getStringCompiler(); $subject = $stringCompiler->compileString($mailModel->getSubject()); if (!empty($subject)) { $mail->setSubject($subject); } if (!empty($overrideConfig["fromMail"])) { $fromMail = $overrideConfig["fromMail"]; } else { $fromMail = $stringCompiler->compileString($mailModel->getFromMail()); } if (!empty($overrideConfig["fromName"])) { $fromName = $overrideConfig["fromName"]; } else { $fromName = $stringCompiler->compileString($mailModel->getFromName()); } if (!empty($fromMail) && !empty($fromName)) { $mail->setFrom($fromMail, $fromName); } elseif (!empty($fromMail)) { $mail->setFrom($fromMail); } $bodyText = $stringCompiler->compileString($mailModel->getContent()); $mail->setBodyText($bodyText); if ($mailModel->isHtml()) { $mail->setBodyHtml($stringCompiler->compileString($mailModel->getContentHtml())); } /** @var $attachment \Shopware\Models\Mail\Attachment */ foreach ($mailModel->getAttachments() as $attachment) { if ($attachment->getShopId() !== null && ($this->getShop() === null || $attachment->getShopId() != $this->getShop()->getId())) { continue; } $mediaService = Shopware()->Container()->get('shopware_media.media_service'); if (!$mediaService->has($attachment->getPath())) { Shopware()->Container()->get('corelogger')->error('Could not load file: ' . $attachment->getPath()); } else { $fileAttachment = $mail->createAttachment($mediaService->read($attachment->getPath())); $fileAttachment->filename = $attachment->getFileName(); } } return $mail; }
/** * Testcase */ public function testGetAttachmentShouldReturnEmptyArrayInitial() { $mail = new Mail(); $this->assertEquals($mail->getAttachments(), array()); }
/** * Loads values from MailModel into Mail * * @param \Enlight_Components_Mail $mail * @param \Shopware\Models\Mail\Mail $mailModel * @param array $overrideConfig * @return \Enlight_Components_Mail * @throws \Enlight_Exception */ public function loadValues(\Enlight_Components_Mail $mail, \Shopware\Models\Mail\Mail $mailModel, $overrideConfig = array()) { $stringCompiler = $this->getStringCompiler(); $subject = $stringCompiler->compileString($mailModel->getSubject()); if (!empty($subject)) { $mail->setSubject($subject); } if (!empty($overrideConfig["fromMail"])) { $fromMail = $overrideConfig["fromMail"]; } else { $fromMail = $stringCompiler->compileString($mailModel->getFromMail()); } if (!empty($overrideConfig["fromName"])) { $fromName = $overrideConfig["fromName"]; } else { $fromName = $stringCompiler->compileString($mailModel->getFromName()); } if (!empty($fromMail) && !empty($fromName)) { $mail->setFrom($fromMail, $fromName); } elseif (!empty($fromMail)) { $mail->setFrom($fromMail); } $bodyText = $stringCompiler->compileString($mailModel->getContent()); $mail->setBodyText($bodyText); if ($mailModel->isHtml()) { $mail->setBodyHtml($stringCompiler->compileString($mailModel->getContentHtml())); } /** @var $attachment \Shopware\Models\Mail\Attachment */ foreach ($mailModel->getAttachments() as $attachment) { if ($attachment->getShopId() !== null && ($this->getShop() === null || $attachment->getShopId() != $this->getShop()->getId())) { continue; } if (false === ($fileHandle = fopen($attachment->getPath(), 'r'))) { throw new \Enlight_Exception('Could not load file: ' . $attachment->getPath()); } $fileAttachment = $mail->createAttachment($fileHandle); $fileAttachment->filename = $attachment->getFileName(); } return $mail; }