public function findTemplateAndMakeReplacements($code, $replacements) { $lang = Yii::app()->language; if (!($this->_template = MailTemplate::findByAttributes(array('code' => $code, 'lang' => $lang)))) { $lang = 'en'; // as a fallback, we look for a template in English if (!($this->_template = MailTemplate::findByAttributes(array('code' => $code, 'lang' => $lang)))) { throw new Exception("Could not find mail template {$code} (language: {$lang})"); } } $twig = new Twig(); foreach (array('subject', 'plaintext_body', 'html_body') as $field) { $this->_template->{$field} = $twig->render($this->_template->{$field}, array_merge(array('site_url' => Helpers::getYiiParam('siteUrl'), 'site_name' => Yii::app()->name, 'lang' => $lang, 'now' => date('Y-m-d H:i:s')), $replacements)); } }