'', 'Headers' => '', 'HtmlBody' => '', 'PlainTextBody' => ''); if ( $message_type == '' ) { // this is v5+ e-mail event text as xml node foreach ($ret as $field => $value) { $node_name = strtoupper($field); $ret[$field] = (string)$text->$node_name; } return $ret; } $line_id = 1; $headers = Array(); $lines = explode("\n", $text); // "\n" is lost in process foreach ($lines as $line_id => $line) { if ( strlen(trim($line)) == 0 || ($line == '.') ) { break; } $parts = explode(':', $line, 2); if ( strtolower($parts[0]) == 'subject' ) { $ret['Subject'] = trim($parts[1]); } else { $headers[] = $line; } } $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[$message_type == 'html' ? 'HtmlBody' : 'PlainTextBody'] = implode("\n", $lines); 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 ''; } $ret = array_key_exists('Headers', $fields_hash) ? $fields_hash['Headers'] : ''; if ($ret) { $ret .= "\n"; } $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); } }