From f1c5b6c282e34a9e6b5c140371acd623c7b50d60 Mon Sep 17 00:00:00 2001 From: emkael Date: Mon, 31 Oct 2016 21:57:54 +0100 Subject: * mail templating module --- app/frontend/mail/MailModule.php | 95 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 app/frontend/mail/MailModule.php (limited to 'app/frontend/mail/MailModule.php') diff --git a/app/frontend/mail/MailModule.php b/app/frontend/mail/MailModule.php new file mode 100644 index 0000000..5f7749b --- /dev/null +++ b/app/frontend/mail/MailModule.php @@ -0,0 +1,95 @@ +_templatePath = Prado::getPathOfNamespace( + TPropertyValue::ensureString($templatePath) + ); + } + + public function getTemplatePath() { + if (!file_exists($this->_templatePath) + || !is_dir($this->_templatePath)) { + throw new TConfigurationException( + Prado::localize( + 'Invalid mail template path' + ) + ); + } + return $this->_templatePath; + } + + public function setCachePath($cachePath) { + $this->templateCacheSubpath = TPropertyValue::ensureString($cachePath); + } + + public function getCachePath() { + $cachePath = $this->getApplication()->getRuntimePath() + . DIRECTORY_SEPARATOR + . $this->_templateCacheSubpath; + if (!file_exists($cachePath)) { + mkdir($cachePath); + } else { + if (!is_dir($cachePath) + || !is_writable($cachePath)) { + throw new TConfigurationException( + Prado::localize( + 'Template cache path must be a writable directory' + ) + ); + } + } + return $cachePath; + } + + public function setTemplateExtension($ext) { + self::$_templateExtension = TPropertyValue::ensureString($ext); + } + + public function getTemplateExtension() { + return self::$_templateExtension; + } + + public function setTranslationCatalogue($ext) { + self::$_templateTranslationCatalogue = TPropertyValue::ensureString($ext); + } + + public function getTranslationCatalogue() { + return self::$_templateTranslationCatalogue; + } + + private static $_translator; + + private static function _getTranslator() { + if (!isset(self::$_translator)) { + self::$_translator = new MailTemplateTranslator( + self::$_templateTranslationCatalogue + ); + } + return self::$_translator; + } + + public function getTemplate($template, $language=NULL) { + $template = new MailTemplate($template . '.' . $this->TemplateExtension); + $template->setOutputMode(PHPTAL::HTML5); + $template->setTemplateRepository($this->_templatePath); + $template->setPhpCodeDestination($this->CachePath); + $translator = self::_getTranslator(); + $translator->setLanguage($language); + $template->setTranslator($translator); + return $template; + } + +} + +?> -- cgit v1.2.3