Пример #1
0
 /**
  * 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;
 }
Пример #2
0
 /**
  * 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);
 }
Пример #3
0
 /**
  * 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;
 }
Пример #4
0
 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);
 }