Index: branches/5.2.x/core/units/helpers/email_message_helper.php =================================================================== diff -u -N -r14628 -r14748 --- branches/5.2.x/core/units/helpers/email_message_helper.php (.../email_message_helper.php) (revision 14628) +++ branches/5.2.x/core/units/helpers/email_message_helper.php (.../email_message_helper.php) (revision 14748) @@ -1,76 +1,90 @@ '', 'Headers' => '', 'Body' => ''); - $headers = Array(); - $lines = explode("\n", $text); // "\n" is lost in process +class EmailMessageHelper extends kHelper { - foreach ($lines as $line_id => $line) { - if (strlen(trim($line)) == 0 || ($line == '.')) { - break; - } + /** + * Extracts Subject, Headers, Body fields from email message translation + * + * @param string $text + * @return Array + */ + function parseTemplate($text) + { + $line_id = 1; + $ret = Array ('Subject' => '', 'Headers' => '', 'Body' => ''); + $headers = Array(); + $lines = explode("\n", $text); // "\n" is lost in process - $parts = explode(':', $line, 2); - if (strtolower($parts[0]) == 'subject') { - $ret['Subject'] = trim($parts[1]); - } - else { - $headers[] = $line; - } + foreach ($lines as $line_id => $line) { + if (strlen(trim($line)) == 0 || ($line == '.')) { + break; } - $ret['Headers'] = $headers ? implode("\n", $headers) : null; // it's null field - - $lines = array_slice($lines, $line_id + 1); - - // add "\n", that was lost before - $ret['Body'] = implode("\n", $lines); - - return $ret; + $parts = explode(':', $line, 2); + if (strtolower($parts[0]) == 'subject') { + $ret['Subject'] = trim($parts[1]); + } + else { + $headers[] = $line; + } } - /** - * Prepares email event content for language pack export - * - * @param Array $fields_hash - * @return string - */ - function buildTemplate($fields_hash) - { - if (!implode('', $fields_hash)) { - return ''; - } + $ret['Headers'] = $headers ? implode("\n", $headers) : null; // it's null field - $ret = array_key_exists('Headers', $fields_hash) ? $fields_hash['Headers'] : ''; - if ($ret) { - $ret .= "\n"; - } + $lines = array_slice($lines, $line_id + 1); - $ret = $this->_removeTrailingCRLF($ret); - $ret .= 'Subject: ' . $fields_hash['Subject'] . "\n\n"; - $ret .= $fields_hash['Body']; + // add "\n", that was lost before + $ret['Body'] = implode("\n", $lines); - return $ret; + return $ret; + } + + /** + * Prepares email event content for language pack export + * + * @param Array $fields_hash + * @return string + */ + function buildTemplate($fields_hash) + { + if (!implode('', $fields_hash)) { + return ''; } - /** - * Remove trailing CR/LF chars from string - * - * @param string $string - * @return string - */ - function _removeTrailingCRLF($string) - { - return preg_replace('/(\n|\r)+/',"\\1",$string); + $ret = array_key_exists('Headers', $fields_hash) ? $fields_hash['Headers'] : ''; + if ($ret) { + $ret .= "\n"; } - } \ No newline at end of file + + $ret = $this->_removeTrailingCRLF($ret); + $ret .= 'Subject: ' . $fields_hash['Subject'] . "\n\n"; + $ret .= $fields_hash['Body']; + + return $ret; + } + + /** + * Remove trailing CR/LF chars from string + * + * @param string $string + * @return string + */ + function _removeTrailingCRLF($string) + { + return preg_replace('/(\n|\r)+/',"\\1",$string); + } +} \ No newline at end of file