Index: trunk/kernel/units/languages/languages_event_handler.php =================================================================== diff -u -r1580 -r1636 --- trunk/kernel/units/languages/languages_event_handler.php (.../languages_event_handler.php) (revision 1580) +++ trunk/kernel/units/languages/languages_event_handler.php (.../languages_event_handler.php) (revision 1636) @@ -154,8 +154,7 @@ $lang_xml->Parse($field_values['LangFile']['tmp_name'], $field_values['PhraseType'], $field_values['Module']); } $event->redirect = 'dummy'; - $event->SetRedirectParam('lang_event', 'OnImportProgress'); - $event->SetRedirectParam('pass', 'all,lang'); + $event->SetRedirectParams( Array('lang_event' => 'OnImportProgress', 'pass' => 'all,lang', 'mode'=>$field_values['ImportOverwrite']) ); } /** @@ -168,13 +167,15 @@ define('IMPORT_BY', 300); // import this much records per step $template_name = 'regional/languages_import_step2'; + $import_mode = (int)$this->Application->GetVar('mode'); // 1 - overwrite existing phrases, 0 - don't overwrite existing phrases $import_source = (int)$this->Application->GetVar('source'); $import_steps = Array(0 => 'lang', 1 => 'phrases', 2 => 'emailmessages', 3 => 'finish'); $import_titles = Array(0 => 'la_ImportingLanguages', 1 => 'la_ImportingPhrases', 2 => 'la_ImportingEmailEvents', 3 => 'la_Done'); // --- BEFORE --- $import_prefix = $import_steps[$import_source]; $import_start = (int)$this->Application->GetVar('start'); + $id_field = $this->Application->getUnitOption($import_prefix,'IDField'); $dst_table = $this->Application->getUnitOption($import_prefix,'TableName'); $src_table = kTempTablesHandler::GetTempName($dst_table); @@ -193,6 +194,7 @@ } $import_start = 0; + $id_field = $this->Application->getUnitOption($import_prefix,'IDField'); $dst_table = $this->Application->getUnitOption($import_prefix,'TableName'); $src_table = kTempTablesHandler::GetTempName($dst_table); $import_total = $this->Conn->GetOne('SELECT COUNT(*) FROM '.$src_table); @@ -214,6 +216,9 @@ $sql = 'SELECT * FROM %s LIMIT %s,%s'; $rows = $this->Conn->Query( sprintf($sql,$src_table,$import_start,IMPORT_BY) ); + // if found and mode = 1 (overwrite) + //$search_sql = 'SELECT '.$id_field.' FROM '.$dst_table.' WHERE '; + $fields_sql = ''; foreach($fields as $field_name) { @@ -236,7 +241,7 @@ $sql = sprintf('INSERT INTO %s (%s) VALUES %s', $dst_table, $fields_sql, $values_sql); $this->Conn->Query($sql); - $event->setRedirectParams( Array('lang_event' => 'OnImportProgress', 'pass' => 'all,lang', 'start' => $import_start += count($rows), 'total' => $import_total, 'source' => $import_source) ); + $event->setRedirectParams( Array('lang_event' => 'OnImportProgress', 'pass' => 'all,lang', 'start' => $import_start += count($rows), 'total' => $import_total, 'source' => $import_source, 'mode' => $import_mode) ); } /**