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";
|