Misc many fixes

This commit is contained in:
Deon George
2011-09-17 20:45:08 +10:00
parent 52074d239b
commit 7180e01dcf
18 changed files with 162 additions and 55 deletions

View File

@@ -25,13 +25,14 @@ class Email_Template {
throw new Kohana_Exception('Email template :template not defined in DB',array(':template'=>$template));
if (is_null($language_id))
$language_id=$this->default_lang;
$language_id = $this->default_lang;
$this->etto = $this->template->email_template_translate->where('language_id','=',$language_id)->find();
if (! $this->etto->loaded() AND
($this->etto = $this->template->email_template_translate->where('language_id','=',$this->default_lang)->find()) AND ! $this->etto->loaded())
// @todo Change this to log/email the admin
return;
throw new Kohana_Exception('No template (:template) found for user language (:language_id) or default language (:default_lang)',
array(':template'=>$this->template->name,':language_id'=>$language_id,':default_lang'=>$this->default_lang));
}
@@ -110,21 +111,26 @@ class Email_Template {
->setFrom(Kohana::config('config.email_from'));
foreach ($this->components as $component) {
$s = $this->etto->resolve($this->email_data['variables'],$component);
if ($this->etto->loaded()) {
$s = $this->etto->resolve($this->email_data['variables'],$component);
switch ($component) {
case 'message_html':
$sm->setBody($s,'text/html');
break;
case 'message_text':
$sm->setBody($s,'text/plain');
break;
case 'subject':
$sm->setSubject($s);
break;
switch ($component) {
case 'message_html':
$sm->setBody($s,'text/html');
break;
case 'message_text':
$sm->setBody($s,'text/plain');
break;
case 'subject':
$sm->setSubject($s);
break;
default:
throw new Kohana_Exception('Component :component has not been configured in :method',array(':component'=>$component,':method'=>__METHOD__));
default:
throw new Kohana_Exception('Component :component has not been configured in :method',array(':component'=>$component,':method'=>__METHOD__));
}
} else {
$sm->setSubject(_('Email from').' '.Config::sitename());
$sm->setBody(print_r($this->email_data['variables'],TRUE),'text/plain');
}
}