Index: branches/RC/core/install/upgrades.sql =================================================================== diff -u -r11036 -r11120 --- branches/RC/core/install/upgrades.sql (.../upgrades.sql) (revision 11036) +++ branches/RC/core/install/upgrades.sql (.../upgrades.sql) (revision 11120) @@ -594,4 +594,18 @@ (205, '0x0485', 'Yakut (Russia)', 'sah-RU', 'Cyrl', '1251'), (206, '0x0478', 'Yi (PRC)', 'ii-CN', 'Yiii', 'UTF-8'), (207, '0x046a', 'Yoruba (Nigeria)', 'yo-NG', '', ''), -(208, '0x0435', 'Zulu/isiZulu (South Africa)', 'zu-ZA', 'Latn', '1252'); \ No newline at end of file +(208, '0x0435', 'Zulu/isiZulu (South Africa)', 'zu-ZA', 'Latn', '1252'); + +UPDATE Phrase SET Module = 'Core' WHERE Module IN ('Proj-Base', 'In-Portal'); +UPDATE Phrase SET Phrase = 'la_Add' WHERE Phrase = 'LA_ADD'; +UPDATE Phrase SET Phrase = 'la_col_MembershipExpires' WHERE Phrase = 'la_col_membershipexpires'; +UPDATE Phrase SET Phrase = 'la_ShortToolTip_Clone' WHERE Phrase = 'la_shorttooltip_clone'; +UPDATE Phrase SET Phrase = 'la_ShortToolTip_Edit' WHERE Phrase = 'LA_SHORTTOOLTIP_EDIT'; +UPDATE Phrase SET Phrase = 'la_ShortToolTip_Export' WHERE Phrase = 'LA_SHORTTOOLTIP_EXPORT'; +UPDATE Phrase SET Phrase = 'la_ShortToolTip_GoUp' WHERE Phrase = 'LA_SHORTTOOLTIP_GOUP'; +UPDATE Phrase SET Phrase = 'la_ShortToolTip_Import' WHERE Phrase = 'LA_SHORTTOOLTIP_IMPORT'; +UPDATE Phrase SET Phrase = 'la_ShortToolTip_MoveUp' WHERE Phrase = 'la_shorttooltip_moveup'; +UPDATE Phrase SET Phrase = 'la_ShortToolTip_MoveDown' WHERE Phrase = 'la_shorttooltip_movedown'; +UPDATE Phrase SET Phrase = 'la_ShortToolTip_RescanThemes' WHERE Phrase = 'la_shorttooltip_rescanthemes'; +UPDATE Phrase SET Phrase = 'la_ShortToolTip_SetPrimary' WHERE Phrase = 'LA_SHORTTOOLTIP_SETPRIMARY'; +UPDATE Phrase SET Phrase = 'la_tab_Files' WHERE Phrase = 'la_tab_files'; \ No newline at end of file Index: branches/RC/core/install/upgrades.php =================================================================== diff -u -r10832 -r11120 --- branches/RC/core/install/upgrades.php (.../upgrades.php) (revision 10832) +++ branches/RC/core/install/upgrades.php (.../upgrades.php) (revision 11120) @@ -204,6 +204,51 @@ } } + /** + * Removes duplicate phrases (created during proj-base and in-portal shared installation) + * + * @param string $mode when called mode {before, after) + */ + function Upgrade_4_3_9($mode) + { + if ($mode == 'after') { + $id_field = $this->Application->getUnitOption('phrases', 'IDField'); + $table_name = $this->Application->getUnitOption('phrases', 'TableName'); + + $sql = 'SELECT LanguageId, Phrase, MIN(LastChanged) AS LastChanged, COUNT(*) AS DupeCount + FROM ' . $table_name . ' + GROUP BY LanguageId, Phrase + HAVING COUNT(*) > 1'; + $duplicate_phrases = $this->Conn->Query($sql); + + foreach ($duplicate_phrases as $phrase_record) { + // 1. keep phrase, that was added first, because it is selected in PhrasesCache::LoadPhraseByLabel + $where_clause = Array ( + 'LanguageId = ' . $phrase_record['LanguageId'], + 'Phrase = ' . $this->Conn->qstr($phrase_record['Phrase']), + 'LastChanged' . ' = ' . $phrase_record['LastChanged'], + ); + + $sql = 'SELECT ' . $id_field . ' + FROM ' . $table_name . ' + WHERE (' . implode(') AND (', $where_clause) . ')'; + $phrase_id = $this->Conn->GetOne($sql); + + // 2. delete all other duplicates + $where_clause = Array ( + 'LanguageId = ' . $phrase_record['LanguageId'], + 'Phrase = ' . $this->Conn->qstr($phrase_record['Phrase']), + $id_field . ' <> ' . $phrase_id, + ); + + $sql = 'DELETE FROM ' . $table_name . ' + WHERE (' . implode(') AND (', $where_clause) . ')'; + $this->Conn->Query($sql); + } + + } + } + } ?> \ No newline at end of file