Index: branches/unlabeled/unlabeled-1.22.2/core/units/email_events/email_events_event_handler.php =================================================================== diff -u -r5240 -r5362 --- branches/unlabeled/unlabeled-1.22.2/core/units/email_events/email_events_event_handler.php (.../email_events_event_handler.php) (revision 5240) +++ branches/unlabeled/unlabeled-1.22.2/core/units/email_events/email_events_event_handler.php (.../email_events_event_handler.php) (revision 5362) @@ -154,19 +154,19 @@ $message_object->Load(array('EventId' => $event_id, 'LanguageId' => $this->Application->GetVar('m_lang'))); $message_type = $message_object->GetDBField('MessageType'); + $email_object = &$this->Application->recallObject('kEmailMessage'); + $email_object->Clear(); + // add footer: begin $sql = 'SELECT em.Template FROM '.$message_object->TableName.' em LEFT JOIN '.TABLE_PREFIX.'Events e ON e.EventId = em.EventId WHERE em.LanguageId = '.$message_object->GetDBField('LanguageId').' AND e.Event = "COMMON.FOOTER"'; $footer = explode("\n\n", $this->Conn->GetOne($sql)); - $footer = $message_object->GetDBField('MessageType') == 'text' ? strip_tags($footer[1]) : $footer[1]; + $footer = $message_object->GetDBField('MessageType') == 'text' ? $email_object->convertHTMLtoPlain($footer[1]) : $footer[1]; $message_template = $message_object->GetDBField('Template')."\r\n".$footer; // add footer: end - $email_object = &$this->Application->recallObject('kEmailMessage'); - $email_object->Clear(); - $old_autoload = $this->Application->getUnitOption('u', 'AutoLoad'); $this->Application->setUnitOption('u', 'AutoLoad', false); Index: branches/unlabeled/unlabeled-1.13.20/admin/email/do_send.php =================================================================== diff -u -r3636 -r5362 --- branches/unlabeled/unlabeled-1.13.20/admin/email/do_send.php (.../do_send.php) (revision 3636) +++ branches/unlabeled/unlabeled-1.13.20/admin/email/do_send.php (.../do_send.php) (revision 5362) @@ -62,16 +62,36 @@ $TargetURL = $_SERVER["PHP_SELF"]."?".$envar.'&destform=popup'; $CancelURL = $TargetURL."&EmailState=email_user_cancel"; + function getEmailFooter($is_html = true) + { + static $footer = Array('html' => null, 'plain' => null); + + $footer_body =& $footer[$is_html ? 'html' : 'plain']; + if (is_null($footer_body)) { + $application =& kApplication::Instance(); + $email_object =& $application->recallObject('kEmailMessage'); + $email_object->Clear(); + + $sql = 'SELECT em.Template + FROM '.TABLE_PREFIX.'EmailMessage em + LEFT JOIN '.TABLE_PREFIX.'Events e ON e.EventId = em.EventId + WHERE em.LanguageId = '.$application->GetVar('m_lang').' AND e.Event = "COMMON.FOOTER"'; + $footer_body = explode("\n\n", $application->Conn->GetOne($sql)); + $footer_body = "\r\n".($is_html ? $footer_body[1] : $email_object->convertHTMLtoPlain($footer_body[1])); + } + return $footer_body; + } + /*Initialize page*/ switch($State) { case "email_single_send": /*single user send */ $PageTitle = admin_language("la_Title_SendInit"); $Subject = $_POST["subject"]; - $Html = $_POST["messageHTML"]; - $Text = strip_tags($_POST["messageTEXT"]); - + $Html = $_POST["messageHTML"].getEmailFooter(true); + $Text = strip_tags($_POST["messageTEXT"]).getEmailFooter(false); + if(is_array($_FILES)) { $attatch = $_FILES["attatchment"]; @@ -99,8 +119,8 @@ //echo $_POST["sendaddrs"]."
\n"; $Subject = $_POST["subject"]; - $Html = $_POST["messageHTML"]; - $Text = strip_tags($_POST["messageTEXT"]); + $Html = $_POST["messageHTML"].getEmailFooter(true); + $Text = strip_tags($_POST["messageTEXT"]).getEmailFooter(false); if(is_array($_FILES)) { Index: branches/unlabeled/unlabeled-1.12.14/core/kernel/utility/email.php =================================================================== diff -u -r5240 -r5362 --- branches/unlabeled/unlabeled-1.12.14/core/kernel/utility/email.php (.../email.php) (revision 5240) +++ branches/unlabeled/unlabeled-1.12.14/core/kernel/utility/email.php (.../email.php) (revision 5362) @@ -136,8 +136,10 @@ $this->Compiled = false; } - function compileBody(){ - $search = array ( + + function convertHTMLtoPlain($text) + { + $search = Array ( "'(<\/td>.*)[\r\n]+(.*)|(<\/p>)|(<\/div>)|(<\/tr>)'i", "'(.*?)'si", @@ -158,7 +160,7 @@ "'&#(\d+);'e" ); - $replace = array ( + $replace = Array ( "\\1\t\\2", "\n", "", @@ -178,11 +180,14 @@ chr(169), "chr(\\1)" ); + return strip_tags( preg_replace ($search, $replace, $text) ); + } + + function compileBody(){ + if($this->BodyHtml){ - - - $not_html = preg_replace ($search, $replace, $this->BodyHtml); - $not_html = strip_tags($not_html); + $not_html = $this->convertHTMLtoPlain($this->BodyHtml); + // $not_html = $this->removeBlankLines($not_html); // Fixing problem with add exclamation characters "!" into the body of the email. $not_html = wordwrap($not_html, 72); @@ -212,8 +217,7 @@ $this->IsMultipart = true; }else{ - $not_html = preg_replace ($search, $replace, $this->BodyText); - $not_html = strip_tags($not_html); + $not_html = $this->convertHTMLtoPlain($this->BodyText); // $not_html = $this->removeBlankLines($not_html); // Fixing problem with add exclamation characters "!" into the body of the email. $not_html = wordwrap($not_html, 72); Index: branches/unlabeled/unlabeled-1.22.2/kernel/units/email_events/email_events_event_handler.php =================================================================== diff -u -r5240 -r5362 --- branches/unlabeled/unlabeled-1.22.2/kernel/units/email_events/email_events_event_handler.php (.../email_events_event_handler.php) (revision 5240) +++ branches/unlabeled/unlabeled-1.22.2/kernel/units/email_events/email_events_event_handler.php (.../email_events_event_handler.php) (revision 5362) @@ -154,19 +154,19 @@ $message_object->Load(array('EventId' => $event_id, 'LanguageId' => $this->Application->GetVar('m_lang'))); $message_type = $message_object->GetDBField('MessageType'); + $email_object = &$this->Application->recallObject('kEmailMessage'); + $email_object->Clear(); + // add footer: begin $sql = 'SELECT em.Template FROM '.$message_object->TableName.' em LEFT JOIN '.TABLE_PREFIX.'Events e ON e.EventId = em.EventId WHERE em.LanguageId = '.$message_object->GetDBField('LanguageId').' AND e.Event = "COMMON.FOOTER"'; $footer = explode("\n\n", $this->Conn->GetOne($sql)); - $footer = $message_object->GetDBField('MessageType') == 'text' ? strip_tags($footer[1]) : $footer[1]; + $footer = $message_object->GetDBField('MessageType') == 'text' ? $email_object->convertHTMLtoPlain($footer[1]) : $footer[1]; $message_template = $message_object->GetDBField('Template')."\r\n".$footer; // add footer: end - $email_object = &$this->Application->recallObject('kEmailMessage'); - $email_object->Clear(); - $old_autoload = $this->Application->getUnitOption('u', 'AutoLoad'); $this->Application->setUnitOption('u', 'AutoLoad', false); Index: branches/unlabeled/unlabeled-1.56.2/kernel/include/emailmessage.php =================================================================== diff -u -r4643 -r5362 --- branches/unlabeled/unlabeled-1.56.2/kernel/include/emailmessage.php (.../emailmessage.php) (revision 4643) +++ branches/unlabeled/unlabeled-1.56.2/kernel/include/emailmessage.php (.../emailmessage.php) (revision 5362) @@ -73,9 +73,13 @@ LEFT JOIN '.TABLE_PREFIX.'Events e ON e.EventId = em.EventId WHERE em.LanguageId = '.$this->Get('LanguageId').' AND e.Event = "COMMON.FOOTER"'; $footer = explode("\n\n", $this->Conn->GetOne($sql)); - $footer = $this->Get('MessageType') == 'text' ? strip_tags($footer[1]) : $footer[1]; + + $email_object = &$this->Application->recallObject('kEmailMessage'); + $email_object->Clear(); + + $footer = $this->Get('MessageType') == 'text' ? $email_object->convertHTMLtoPlain($footer[1]) : $footer[1]; - $template = $this->Get('Template')."\r\n".$footer; + $template = $this->Get('Template'); //."\r\n".$footer; // add footer: end $lines = explode("\n", $template); @@ -102,6 +106,8 @@ while ($ibody .= $lines[$i++]; } + + $this->body .= "\r".$footer; $this->TemplateParsed = true; @@ -256,8 +262,7 @@ } else { - $body = nl2br(str_replace("\r", "", $body)); - $body = str_replace('
', "\n", $body); + $body = str_replace("\r", "", $body); $objEmailQueue->SendMail($FromAddr,$FromName,$to_addr,$To,$subject,$body,"",$charset, $this->Get("Event"),NULL,$this->headers); } @@ -303,8 +308,7 @@ } else { - $body=nl2br($body); - $body = str_replace("
","\n",$body); + $body = str_replace("\r", "", $body); $objEmailQueue->SendMail($FromAddr,$FromName,$to_addr,$To,$subject,$body,"",$charset, $this->Get("Event"),NULL,$this->headers); } @@ -942,21 +946,11 @@ $application =& kApplication::Instance(); $db =& $application->GetADODBConnection(); - // get footer: begin - $sql = 'SELECT em.Template - FROM '.TABLE_PREFIX.'EmailMessage em - LEFT JOIN '.TABLE_PREFIX.'Events e ON e.EventId = em.EventId - WHERE em.LanguageId = '.$GLOBALS['m_var_list']['lang'].' AND e.Event = "COMMON.FOOTER"'; - $footer = explode("\n\n", $db->GetOne($sql)); - $footer = $footer[1]; - // get footer: end - - if(!$Text) - { - $Text = strip_tags($Html."\r\n".$footer); + if (!$Text) { + $Text = strip_tags($Html); } else { - $Text = strip_tags($Text."\r\n".$footer); + $Text = strip_tags($Text); } $msg .= "--" . $boundary . "\n"; @@ -970,7 +964,7 @@ $msg .= "--" . $boundary . "\n"; $msg .= "Content-Type: text/html; charset=\"iso-8859-1\""."\n"; $msg .= "Content-Transfer-Encoding: 8bit"."\n"."\n"; - $msg .= stripslashes($Html."\r\n".$footer); + $msg .= stripslashes($Html); $msg .= "\n"."\n"; } $msg .= "--" . $boundary . "--"."\n";