Index: branches/5.0.x/core/units/helpers/language_import_helper.php =================================================================== diff -u -r12306 -r12400 --- branches/5.0.x/core/units/helpers/language_import_helper.php (.../language_import_helper.php) (revision 12306) +++ branches/5.0.x/core/units/helpers/language_import_helper.php (.../language_import_helper.php) (revision 12400) @@ -1,6 +1,6 @@ Application->recallObject('EmailMessageHelper'); + /* @var $email_message_helper EmailMessageHelper */ + do { $event_id = $this->_getEventId($event_node->Attributes['EVENT'], $event_node->Attributes['TYPE']); if ($event_id) { @@ -529,11 +532,17 @@ $fields_hash['Template'] = base64_decode($event_node->Data); } + $parsed = $email_message_helper->parseTemplate($fields_hash['Template']); + $fields_hash['Subject'] = $parsed['Subject']; + $this->Conn->doInsert($fields_hash, $this->_tables['emailmessages'], 'INSERT', false); } } while (($event_node =& $event_node->NextSibling())); - $this->Conn->doInsert($fields_hash, $this->_tables['emailmessages'], 'INSERT'); + if ($fields_hash) { + // at least one corresponding event declaration found by email event name+type given in translation + $this->Conn->doInsert($fields_hash, $this->_tables['emailmessages'], 'INSERT'); + } } /** Index: branches/5.0.x/core/units/email_messages/email_messages_event_handler.php =================================================================== diff -u -r12299 -r12400 --- branches/5.0.x/core/units/email_messages/email_messages_event_handler.php (.../email_messages_event_handler.php) (revision 12299) +++ branches/5.0.x/core/units/email_messages/email_messages_event_handler.php (.../email_messages_event_handler.php) (revision 12400) @@ -1,6 +1,6 @@ getObject(); - - $lines = explode("\n", $object->GetDBField('Template') ); - - $headers = Array(); - - foreach($lines as $line) - { - if( strlen(trim($line)) == 0 || ($line == '.') ) break; - - $parts = explode(':', $line, 2); - if(strtolower($parts[0]) == 'subject') - { - $object->SetDBField('Subject', trim($parts[1]) ); - } - else - { - $headers[] = $line; - } - } - $object->SetDBField('Headers', implode("\n", $headers) ); - - $message_body = ''; - while( (list($line_id,$line) = each($lines)) ) - { - $message_body .= $line; - } - $object->SetDBField('Body', $message_body); + /* @var $object kDBItem */ + + $email_message_helper =& $this->Application->recallObject('EmailMessageHelper'); + /* @var $email_message_helper EmailMessageHelper */ + + $fields_hash = $email_message_helper->parseTemplate( $object->GetDBField('Template') ); + + $object->SetDBFieldsFromHash($fields_hash); } /** Index: branches/5.0.x/core/units/helpers/email_message_helper.php =================================================================== diff -u --- branches/5.0.x/core/units/helpers/email_message_helper.php (revision 0) +++ branches/5.0.x/core/units/helpers/email_message_helper.php (revision 12400) @@ -0,0 +1,43 @@ + 'kBracketsHelper', 'pseudo' => 'BracketsHelper', 'file' => 'brackets_helper.php', 'build_event' => '', 'require_classes' => 'kHelper'), Array ('class' => 'kXMLHelper', 'pseudo' => 'kXMLHelper', 'file' => 'xml_helper.php', 'build_event' => '', 'require_classes' => 'kHelper'), Array ('class' => 'kCatDBItemExportHelper', 'pseudo' => 'CatItemExportHelper', 'file' => 'cat_dbitem_export_helper.php', 'build_event' => '', 'require_classes' => 'kHelper'), + Array ('class' => 'EmailMessageHelper', 'pseudo' => 'EmailMessageHelper', 'file' => 'email_message_helper.php', 'build_event' => '', 'require_classes' => 'kHelper'), ), ); \ No newline at end of file