Index: branches/5.2.x/core/kernel/utility/email.php =================================================================== diff -u -N -r15215 -r15222 --- branches/5.2.x/core/kernel/utility/email.php (.../email.php) (revision 15215) +++ branches/5.2.x/core/kernel/utility/email.php (.../email.php) (revision 15222) @@ -1,6 +1,6 @@ emailEvent->GetDBField('MessageType') == 'html'; - $message_body = $this->_getMessageBody($is_html); + $html_message_body = $this->_getMessageBody(true); + $plain_message_body = $this->_getMessageBody(false); - if ( $message_body === false ) { + if ( $html_message_body === false && $plain_message_body === false ) { + trigger_error('Message template is empty (maybe after parsing).', E_USER_WARNING); + return false; } - $this->sender->CreateTextHtmlPart($message_body, $is_html); + if ( $html_message_body !== false ) { + $this->sender->CreateTextHtmlPart($html_message_body, true); + } + + if ( $plain_message_body !== false ) { + $this->sender->CreateTextHtmlPart($plain_message_body, false); + } + $this->_changeLanguage(true); // 3. set log @@ -682,15 +691,14 @@ $design_key = $is_html ? 'html' : 'text'; if ( !isset($design_templates[$design_key]) ) { - $primary_language_id = $this->Application->GetDefaultLanguageId(); + $footer_email = $this->Application->recallObject('emailevents.footer', null, Array ('skip_autoload' => true)); + /* @var $footer_email kDBItem */ - $sql = 'SELECT IF(l' . $this->params['language_id'] . '_Body <> "", l' . $this->params['language_id'] . '_Body, l' . $primary_language_id . '_Body) - FROM ' . $this->emailEvent->TableName . ' - WHERE Event = "COMMON.FOOTER"'; - $footer = $this->Conn->GetOne($sql); + $footer_email->Load('COMMON.FOOTER', 'Event'); + $footer = $footer_email->GetField($is_html ? 'HtmlBody' : 'PlainTextBody'); - if ( !$is_html ) { - $footer = $this->sender->ConvertToText($footer); + if ( !$is_html && !$footer ) { + $footer = $this->sender->ConvertToText($footer_email->GetField('HtmlBody')); } $design_templates[$design_key] = '$body'; @@ -710,25 +718,22 @@ * @return bool|string * @access protected */ - protected function _getMessageBody($is_html = true) + protected function _getMessageBody($is_html = false) { - $message_body = $this->emailEvent->GetField('Body'); + $message_body = $this->emailEvent->GetField($is_html ? 'HtmlBody' : 'PlainTextBody'); - if ( !trim($message_body) ) { - trigger_error('Message template is empty', E_USER_WARNING); - - return false; + if ( !trim($message_body) && !$is_html ) { + // no plain text part available -> make it from html part then + $message_body = $this->sender->ConvertToText($this->emailEvent->GetField('HtmlBody')); } - $message_body = $this->_applyMessageDesign($message_body, $is_html); - if ( !trim($message_body) ) { - trigger_error('Message template is empty after parsing', E_USER_WARNING); - return false; } - return $message_body; + $message_body = $this->_applyMessageDesign($message_body, $is_html); + + return trim($message_body) ? $message_body : false; } /**