Index: email_events_event_handler.php =================================================================== --- email_events_event_handler.php (revision 15158) +++ email_events_event_handler.php (working copy) @@ -573,30 +573,36 @@ */ function _getFooter($language_id, $message_type) { - static $footer = null; + static $footers = Array (); - if (!isset($footer)) { - $default_language_id = $this->Application->GetDefaultLanguageId(); + $cache_key = 'L' . $language_id . ':MT' . $message_type; - $sql = 'SELECT l' . $language_id . '_Body, l' . $default_language_id . '_Body - FROM ' . $this->Application->getUnitOption('emailevents', 'TableName') . ' em - WHERE Event = "COMMON.FOOTER"'; - $footer_data = $this->Conn->GetRow($sql); + if ( isset($footers[$cache_key]) ) { + return $footers[$cache_key]; + } - $footer = $footer_data['l' . $language_id . '_Body']; + $default_language_id = $this->Application->GetDefaultLanguageId(); - if (!$footer) { - $footer = $footer_data['l' . $default_language_id . '_Body']; - } + $sql = 'SELECT l' . $language_id . '_Body, l' . $default_language_id . '_Body + FROM ' . $this->Application->getUnitOption('emailevents', 'TableName') . ' em + WHERE Event = "COMMON.FOOTER"'; + $footer_data = $this->Conn->GetRow($sql); - if ($message_type == 'text') { - $esender =& $this->Application->recallObject('EmailSender'); - /* @var $esender kEmailSendingHelper */ + $footer = $footer_data['l' . $language_id . '_Body']; - $footer = $esender->ConvertToText($footer); - } + if ( !$footer ) { + $footer = $footer_data['l' . $default_language_id . '_Body']; } + if ( $message_type == 'text' ) { + $esender =& $this->Application->recallObject('EmailSender'); + /* @var $esender kEmailSendingHelper */ + + $footer = $esender->ConvertToText($footer); + } + + $footers[$cache_key] = $footer; + return $footer; }