/** * Load default email template * * @param string $templateId * @return $this */ public function loadDefault($templateId) { $designParams = $this->getDesignParams(); $templateFile = $this->emailConfig->getTemplateFilename($templateId, $designParams); $templateType = $this->emailConfig->getTemplateType($templateId); $templateTypeCode = $templateType == 'html' ? self::TYPE_HTML : self::TYPE_TEXT; $this->setTemplateType($templateTypeCode); $rootDirectory = $this->filesystem->getDirectoryRead(DirectoryList::ROOT); $templateText = $rootDirectory->readFile($rootDirectory->getRelativePath($templateFile)); /** * trim copyright message */ if (preg_match('/^<!--[\\w\\W]+?-->/m', $templateText, $matches) && strpos($matches[0], 'Copyright') > 0) { $templateText = str_replace($matches[0], '', $templateText); } if (preg_match('/<!--@subject\\s*(.*?)\\s*@-->/u', $templateText, $matches)) { $this->setTemplateSubject($matches[1]); $templateText = str_replace($matches[0], '', $templateText); } if (preg_match('/<!--@vars\\s*((?:.)*?)\\s*@-->/us', $templateText, $matches)) { $this->setData('orig_template_variables', str_replace("\n", '', $matches[1])); $templateText = str_replace($matches[0], '', $templateText); } if (preg_match('/<!--@styles\\s*(.*?)\\s*@-->/s', $templateText, $matches)) { $this->setTemplateStyles($matches[1]); $templateText = str_replace($matches[0], '', $templateText); } // Remove comment lines and extra spaces $templateText = trim(preg_replace('#\\{\\*.*\\*\\}#suU', '', $templateText)); $this->setTemplateText($templateText); $this->setId($templateId); return $this; }
/** * Ensure that the getTemplateFilename method can be called without design params */ public function testGetTemplateFilenameWithNoParams() { $this->viewFileSystem->expects($this->once())->method('getEmailTemplateFileName')->with('one.html', ['area' => $this->designParams['area'], 'module' => $this->designParams['module']], 'Fixture_ModuleOne')->will($this->returnValue('_files/Fixture/ModuleOne/view/frontend/email/one.html')); $actualResult = $this->model->getTemplateFilename('template_one'); $this->assertEquals('_files/Fixture/ModuleOne/view/frontend/email/one.html', $actualResult); }
/** * Load default email template * * @param string $templateId * @return $this */ public function loadDefault($templateId) { $templateFile = $this->_emailConfig->getTemplateFilename($templateId); $templateType = $this->_emailConfig->getTemplateType($templateId); $templateTypeCode = $templateType == 'html' ? self::TYPE_HTML : self::TYPE_TEXT; $this->setTemplateType($templateTypeCode); $modulesDirectory = $this->_filesystem->getDirectoryRead(\Magento\Framework\App\Filesystem::MODULES_DIR); $templateText = $modulesDirectory->readFile($modulesDirectory->getRelativePath($templateFile)); if (preg_match('/<!--@subject\\s*(.*?)\\s*@-->/u', $templateText, $matches)) { $this->setTemplateSubject($matches[1]); $templateText = str_replace($matches[0], '', $templateText); } if (preg_match('/<!--@vars\\s*((?:.)*?)\\s*@-->/us', $templateText, $matches)) { $this->setData('orig_template_variables', str_replace("\n", '', $matches[1])); $templateText = str_replace($matches[0], '', $templateText); } if (preg_match('/<!--@styles\\s*(.*?)\\s*@-->/s', $templateText, $matches)) { $this->setTemplateStyles($matches[1]); $templateText = str_replace($matches[0], '', $templateText); } /** * Remove comment lines */ $templateText = preg_replace('#\\{\\*.*\\*\\}#suU', '', $templateText); $this->setTemplateText($templateText); $this->setId($templateId); return $this; }
public function testGetTemplateFilename() { $this->_moduleReader->expects($this->once())->method('getModuleDir')->with('view', 'Fixture_ModuleOne')->will($this->returnValue('_files/Fixture/ModuleOne/view')); $actualResult = $this->_model->getTemplateFilename('template_one'); $this->assertEquals('_files/Fixture/ModuleOne/view/email/one.html', $actualResult); }