Index: branches/5.2.x/core/units/helpers/language_import_helper.php =================================================================== diff -u -N -r15601 -r15608 --- branches/5.2.x/core/units/helpers/language_import_helper.php (.../language_import_helper.php) (revision 15601) +++ branches/5.2.x/core/units/helpers/language_import_helper.php (.../language_import_helper.php) (revision 15608) @@ -1,6 +1,6 @@ false, - 'emailevents' => false, + 'email-template' => false, 'country-state' => false, ); @@ -190,7 +190,7 @@ // copy data from temp tables to live foreach ($this->_languages as $language_id) { $this->_performUpgrade($language_id, 'phrases', 'PhraseKey', Array ('l%s_Translation', 'l%s_HintTranslation', 'l%s_ColumnTranslation', 'PhraseType')); - $this->_performUpgrade($language_id, 'emailevents', 'EventId', Array ('l%s_Subject', 'Headers', 'l%s_HtmlBody', 'l%s_PlainTextBody')); + $this->_performUpgrade($language_id, 'email-template', 'TemplateId', Array ('l%s_Subject', 'Headers', 'l%s_HtmlBody', 'l%s_PlainTextBody')); $this->_performUpgrade($language_id, 'country-state', 'CountryStateId', Array ('l%s_Name')); } @@ -262,19 +262,19 @@ $module_sql = preg_replace('/(.*),/U', 'INSTR(Module,\'\\1\') OR ', implode(',', $module_ids) . ','); // apply event selection limit - if ($this->_exportLimits['emailevents']) { - $escaped_email_events = $this->Conn->qstrArray($this->_exportLimits['emailevents']); - $limit_where = '`Event` IN (' . implode(',', $escaped_email_events) . ')'; + if ($this->_exportLimits['email-template']) { + $escaped_email_templates = $this->Conn->qstrArray($this->_exportLimits['email-template']); + $limit_where = 'TemplateName IN (' . implode(',', $escaped_email_templates) . ')'; } else { $limit_where = 'TRUE'; } $sql = 'SELECT * - FROM ' . $this->Application->getUnitOption('emailevents', 'TableName') . ' + FROM ' . $this->Application->getUnitOption('email-template', 'TableName') . ' WHERE `Type` IN (' . implode(',', $phrase_types) . ') AND (' . substr($module_sql, 0, -4) . ') AND ' . $limit_where . ' - ORDER BY `Event`, `Type`'; - $events = $this->Conn->Query($sql, 'EventId'); + ORDER BY TemplateName, `Type`'; + $email_templates = $this->Conn->Query($sql, 'TemplateId'); if ( in_array('Core', $module_ids) ) { if ($this->_exportLimits['country-state']) { @@ -388,15 +388,15 @@ } // email events - if ($events) { + if ($email_templates) { $ret .= "\t\t" . '' . "\n"; - foreach ($events as $event_data) { + foreach ($email_templates as $template_data) { $fields_hash = Array ( - 'HEADERS' => $event_data['Headers'], - 'SUBJECT' => $event_data['l' . $language_id . '_Subject'], - 'HTMLBODY' => $event_data['l' . $language_id . '_HtmlBody'], - 'PLAINTEXTBODY' => $event_data['l' . $language_id . '_PlainTextBody'], + 'HEADERS' => $template_data['Headers'], + 'SUBJECT' => $template_data['l' . $language_id . '_Subject'], + 'HTMLBODY' => $template_data['l' . $language_id . '_HtmlBody'], + 'PLAINTEXTBODY' => $template_data['l' . $language_id . '_PlainTextBody'], ); $data = ''; @@ -408,7 +408,7 @@ } if ( $data ) { - $ret .= "\t\t\t" . '' . "\n" . $data . "\t\t\t" . '' . "\n"; + $ret .= "\t\t\t" . '' . "\n" . $data . "\t\t\t" . '' . "\n"; } } @@ -493,7 +493,7 @@ function setExportLimit($prefix, $data = null) { if ( !isset($data) ) { - $key_field = $prefix == 'phrases' ? 'Phrase' : 'Event'; + $key_field = $prefix == 'phrases' ? 'Phrase' : 'TemplateName'; $ids = $this->getExportIDs($prefix); $sql = 'SELECT ' . $key_field . ' @@ -665,7 +665,7 @@ function _initImportTables($drop_only = false) { $this->_tables['phrases'] = $this->_prepareTempTable('phrases', $drop_only); - $this->_tables['emailevents'] = $this->_prepareTempTable('emailevents', $drop_only); + $this->_tables['email-template'] = $this->_prepareTempTable('email-template', $drop_only); $this->_tables['country-state'] = $this->_prepareTempTable('country-state', $drop_only); } @@ -698,8 +698,8 @@ $unique_field = 'PhraseKey'; break; - case 'emailevents': - $unique_field = 'EventId'; + case 'email-template': + $unique_field = 'TemplateId'; break; case 'country-state': @@ -724,8 +724,8 @@ */ function _updateEventsCache() { - $sql = 'SELECT EventId, CONCAT(Event,"_",Type) AS EventMix - FROM ' . TABLE_PREFIX . 'EmailEvents'; + $sql = 'SELECT TemplateId, CONCAT(TemplateName,"_",Type) AS EventMix + FROM ' . $this->Application->getUnitOption('email-template', 'TableName'); $this->events_hash = $this->Conn->GetCol($sql, 'EventMix'); } @@ -984,59 +984,59 @@ $this->Application->Debugger->profileStart('L[' . $language_id . ']E', 'Language: ' . $language_id . '; Events Import'); } - $email_message_helper = $this->Application->recallObject('kEmailMessageHelper'); - /* @var $email_message_helper kEmailMessageHelper */ + $email_template_helper = $this->Application->recallObject('kEmailTemplateHelper'); + /* @var $email_template_helper kEmailTemplateHelper */ foreach ($events as $event_node) { /* @var $event_node SimpleXMLElement */ $message_type = (string)$event_node['MessageType']; - $event_id = $this->_getEventId((string)$event_node['Event'], (int)$event_node['Type']); + $email_template_id = $this->_getEmailTemplateId((string)$event_node['Event'], (int)$event_node['Type']); - if ( !$event_id ) { + if ( !$email_template_id ) { continue; } $fields_hash = Array ( - 'EventId' => $event_id, - 'Event' => (string)$event_node['Event'], + 'TemplateId' => $email_template_id, + 'TemplateName' => (string)$event_node['Event'], 'Type' => (int)$event_node['Type'], ); if ( $message_type == '' ) { - $parsed = $email_message_helper->parseTemplate($event_node, ''); + $parsed = $email_template_helper->parseTemplate($event_node, ''); $parsed = array_map($language_encoding == 'plain' ? 'rtrim' : 'base64_decode', $parsed); } else { $template = $language_encoding == 'plain' ? rtrim($event_node) : base64_decode($event_node); - $parsed = $email_message_helper->parseTemplate($template, $message_type); + $parsed = $email_template_helper->parseTemplate($template, $message_type); } - if ( !array_key_exists($event_id, $other_translations) ) { + if ( !array_key_exists($email_template_id, $other_translations) ) { // ensure translation in every language to make same column count in every insert - $other_translations[$event_id] = Array (); + $other_translations[$email_template_id] = Array (); foreach ($this->_languages as $other_language_id) { - $other_translations[$event_id]['l' . $other_language_id . '_Subject'] = ''; - $other_translations[$event_id]['l' . $other_language_id . '_HtmlBody'] = ''; - $other_translations[$event_id]['l' . $other_language_id . '_PlainTextBody'] = ''; + $other_translations[$email_template_id]['l' . $other_language_id . '_Subject'] = ''; + $other_translations[$email_template_id]['l' . $other_language_id . '_HtmlBody'] = ''; + $other_translations[$email_template_id]['l' . $other_language_id . '_PlainTextBody'] = ''; } } - $other_translations[$event_id]['l' . $language_id . '_Subject'] = $parsed['Subject']; - $other_translations[$event_id]['l' . $language_id . '_HtmlBody'] = $parsed['HtmlBody']; - $other_translations[$event_id]['l' . $language_id . '_PlainTextBody'] = $parsed['PlainTextBody']; + $other_translations[$email_template_id]['l' . $language_id . '_Subject'] = $parsed['Subject']; + $other_translations[$email_template_id]['l' . $language_id . '_HtmlBody'] = $parsed['HtmlBody']; + $other_translations[$email_template_id]['l' . $language_id . '_PlainTextBody'] = $parsed['PlainTextBody']; if ( $parsed['Headers'] ) { - $other_translations[$event_id]['Headers'] = $parsed['Headers']; + $other_translations[$email_template_id]['Headers'] = $parsed['Headers']; } - elseif ( !$parsed['Headers'] && !array_key_exists('Headers', $other_translations[$event_id]) ) { - $other_translations[$event_id]['Headers'] = $parsed['Headers']; + elseif ( !$parsed['Headers'] && !array_key_exists('Headers', $other_translations[$email_template_id]) ) { + $other_translations[$email_template_id]['Headers'] = $parsed['Headers']; } - $fields_hash = array_merge($fields_hash, $other_translations[$event_id]); - $this->Conn->doInsert($fields_hash, $this->_tables['emailevents'], 'REPLACE', false); + $fields_hash = array_merge($fields_hash, $other_translations[$email_template_id]); + $this->Conn->doInsert($fields_hash, $this->_tables['email-template'], 'REPLACE', false); } if ( $this->Application->isDebugMode() ) { @@ -1045,7 +1045,7 @@ if ( isset($fields_hash) ) { // at least one email event in language pack was found in database - $this->Conn->doInsert($fields_hash, $this->_tables['emailevents'], 'REPLACE'); + $this->Conn->doInsert($fields_hash, $this->_tables['email-template'], 'REPLACE'); } } @@ -1157,15 +1157,15 @@ } /** - * Returns event id based on it's name and type + * Returns e-mail template id based on it's name and type * - * @param string $event_name - * @param string $event_type + * @param string $template_name + * @param string $template_type * @return int */ - function _getEventId($event_name, $event_type) + function _getEmailTemplateId($template_name, $template_type) { - $cache_key = $event_name . '_' . $event_type; + $cache_key = $template_name . '_' . $template_type; return array_key_exists($cache_key, $this->events_hash) ? $this->events_hash[$cache_key] : 0; }