/** * Getter for template type * * @return int|string */ public function getType() { $templateType = $this->getTemplateType(); if (is_null($templateType) && $this->getId()) { $templateType = $this->_emailConfig->getTemplateType($this->getId()); $templateType = $templateType == 'html' ? self::TYPE_HTML : self::TYPE_TEXT; } return $templateType; }
/** * 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; }
public function testGetTemplateType() { $this->assertEquals('html', $this->model->getTemplateType('template_one')); }