Last active
August 29, 2015 14:11
-
-
Save KristianH/4dab4f64c200f7c16ebc to your computer and use it in GitHub Desktop.
switchLanguageInOxidShop
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
//Use this in a oxid e-sales shop 4.7.0 or higher | |
//if you understand, remove or comment the next line: | |
die('Please read the comments!'); | |
include('bootstrap.php'); | |
$oConfig = oxRegistry::getConfig(); | |
$sDatabaseName = "NameOfDataBase"; | |
$aShowTables = oxDb::getDb()->getAll( | |
"show tables WHERE | |
Tables_in_{$sDatabaseName} NOT LIKE 'oxv\_%' | |
AND Tables_in_{$sDatabaseName} NOT LIKE 'tmp%' | |
AND Tables_in_{$sDatabaseName} NOT LIKE 'view%' | |
" | |
); | |
foreach ($aShowTables as $aTableInfo) { | |
$sTableName = $aTableInfo[0]; | |
$aTables[] = $aTableInfo[0]; | |
} | |
$oDb = oxDb::getDb(oxDb::FETCH_MODE_ASSOC); | |
/** @var oxDbMetaDataHandler $oDbHandler */ | |
$oDbHandler = oxNew("oxDbMetaDataHandler"); | |
$sSourceIdent = '_1'; | |
$sTargetIdent = ''; | |
$sUseIdent = '_3'; | |
echo '<h1 style="color:red;">you should carefully check the queries for correctness (Do multilingual fields/columns really exists? is it necessary to switch language in this table?, etc.)</h1>'; | |
foreach ($aTables as $sTable) { | |
$sSelect = "UPDATE $sTable SET "; | |
/** @var oxi18n $oBaseObject */ | |
$oBaseObject = oxNew('oxi18n'); | |
$oBaseObject->init($sTable, true); | |
$aFields = array(); | |
$sClearUseQueries = $sUseToTargetQueries = $sTargetToUseQueries = $sSourceToTargetQueries = ""; | |
$aFields = $oDbHandler->getMultilangFields($sTable); | |
foreach ($aFields as $sFieldName) { | |
$sTargetToUseQueries .= "{$sFieldName}{$sUseIdent} = {$sFieldName}{$sTargetIdent},"; | |
$sSourceToTargetQueries .= "{$sFieldName}{$sTargetIdent} = {$sFieldName}{$sSourceIdent},"; | |
$sUseToTargetQueries .= "{$sFieldName}{$sSourceIdent} = {$sFieldName}{$sUseIdent},"; | |
$sClearUseQueries .= "{$sFieldName}{$sUseIdent} = '',"; | |
} | |
$sTargetToUseQueries = trim($sTargetToUseQueries, ','); | |
$sSourceToTargetQueries = trim($sSourceToTargetQueries, ','); | |
$sUseToTargetQueries = trim($sUseToTargetQueries, ','); | |
$sClearUseQueries = trim($sClearUseQueries, ','); | |
if (false == empty($sTargetToUseQueries)) { | |
echo '<pre>' . $sSelect . $sTargetToUseQueries . ';' . PHP_EOL; | |
echo $sSelect . $sSourceToTargetQueries . ';' . PHP_EOL; | |
echo $sSelect . $sUseToTargetQueries . ';' . PHP_EOL; | |
echo $sSelect . $sClearUseQueries . ';</pre>'; | |
} | |
} | |
$sResultQuery = <<<MYSQL | |
-- this use the fields _3 to backup the language in baselanguage field | |
UPDATE `oxactions` SET `OXTITLE_3` = `OXTITLE`,`OXLONGDESC_3` = `OXLONGDESC`,`OXPIC_3` = `OXPIC`,`OXLINK_3` = `OXLINK`; | |
UPDATE `oxactions` SET `OXTITLE` = `OXTITLE_1`,`OXLONGDESC` = `OXLONGDESC_1`,`OXPIC` = `OXPIC_1`,`OXLINK` = `OXLINK_1`; | |
UPDATE `oxactions` SET `OXTITLE_1` = `OXTITLE_3`,`OXLONGDESC_1` = `OXLONGDESC_3`,`OXPIC_1` = `OXPIC_3`,`OXLINK_1` = `OXLINK_3`; | |
UPDATE `oxactions` SET `OXTITLE_3` = '',`OXLONGDESC_3` = '',`OXPIC_3` = '',`OXLINK_3` = ''; | |
UPDATE `oxartextends` SET `OXLONGDESC_3` = `OXLONGDESC`,`OXTAGS_3` = `OXTAGS`; | |
UPDATE `oxartextends` SET `OXLONGDESC` = `OXLONGDESC_1`,`OXTAGS` = `OXTAGS_1`; | |
UPDATE `oxartextends` SET `OXLONGDESC_1` = `OXLONGDESC_3`,`OXTAGS_1` = `OXTAGS_3`; | |
UPDATE `oxartextends` SET `OXLONGDESC_3` = '',`OXTAGS_3` = ''; | |
UPDATE `oxarticles` SET `OXVARNAME_3` = `OXVARNAME`,`OXVARSELECT_3` = `OXVARSELECT`,`OXTITLE_3` = `OXTITLE`,`OXSHORTDESC_3` = `OXSHORTDESC`,`OXURLDESC_3` = `OXURLDESC`,`OXSEARCHKEYS_3` = `OXSEARCHKEYS`,`OXSTOCKTEXT_3` = `OXSTOCKTEXT`,`OXNOSTOCKTEXT_3` = `OXNOSTOCKTEXT`; | |
UPDATE `oxarticles` SET `OXVARNAME` = `OXVARNAME_1`,`OXVARSELECT` = `OXVARSELECT_1`,`OXTITLE` = `OXTITLE_1`,`OXSHORTDESC` = `OXSHORTDESC_1`,`OXURLDESC` = `OXURLDESC_1`,`OXSEARCHKEYS` = `OXSEARCHKEYS_1`,`OXSTOCKTEXT` = `OXSTOCKTEXT_1`,`OXNOSTOCKTEXT` = `OXNOSTOCKTEXT_1`; | |
UPDATE `oxarticles` SET `OXVARNAME_1` = `OXVARNAME_3`,`OXVARSELECT_1` = `OXVARSELECT_3`,`OXTITLE_1` = `OXTITLE_3`,`OXSHORTDESC_1` = `OXSHORTDESC_3`,`OXURLDESC_1` = `OXURLDESC_3`,`OXSEARCHKEYS_1` = `OXSEARCHKEYS_3`,`OXSTOCKTEXT_1` = `OXSTOCKTEXT_3`,`OXNOSTOCKTEXT_1` = `OXNOSTOCKTEXT_3`; | |
UPDATE `oxarticles` SET `OXVARNAME_3` = '',`OXVARSELECT_3` = '',`OXTITLE_3` = '',`OXSHORTDESC_3` = '',`OXURLDESC_3` = '',`OXSEARCHKEYS_3` = '',`OXSTOCKTEXT_3` = '',`OXNOSTOCKTEXT_3` = ''; | |
UPDATE `oxattribute` SET `OXTITLE_3` = `OXTITLE`; | |
UPDATE `oxattribute` SET `OXTITLE` = `OXTITLE_1`; | |
UPDATE `oxattribute` SET `OXTITLE_1` = `OXTITLE_3`; | |
UPDATE `oxattribute` SET `OXTITLE_3` = ''; | |
UPDATE `oxcategories` SET `OXTHUMB_3` = `OXTHUMB`,`OXACTIVE_3` = `OXACTIVE`,`OXTITLE_3` = `OXTITLE`,`OXDESC_3` = `OXDESC`,`OXLONGDESC_3` = `OXLONGDESC`; | |
UPDATE `oxcategories` SET `OXTHUMB` = `OXTHUMB_1`,`OXACTIVE` = `OXACTIVE_1`,`OXTITLE` = `OXTITLE_1`,`OXDESC` = `OXDESC_1`,`OXLONGDESC` = `OXLONGDESC_1`; | |
UPDATE `oxcategories` SET `OXTHUMB_1` = `OXTHUMB_3`,`OXACTIVE_1` = `OXACTIVE_3`,`OXTITLE_1` = `OXTITLE_3`,`OXDESC_1` = `OXDESC_3`,`OXLONGDESC_1` = `OXLONGDESC_3`; | |
UPDATE `oxcategories` SET `OXTHUMB_3` = '',`OXACTIVE_3` = '',`OXTITLE_3` = '',`OXDESC_3` = '',`OXLONGDESC_3` = ''; | |
UPDATE `oxcontents` SET `OXACTIVE_3` = `OXACTIVE`,`OXTITLE_3` = `OXTITLE`,`OXCONTENT_3` = `OXCONTENT`; | |
UPDATE `oxcontents` SET `OXACTIVE` = `OXACTIVE_1`,`OXTITLE` = `OXTITLE_1`,`OXCONTENT` = `OXCONTENT_1`; | |
UPDATE `oxcontents` SET `OXACTIVE_1` = `OXACTIVE_3`,`OXTITLE_1` = `OXTITLE_3`,`OXCONTENT_1` = `OXCONTENT_3`; | |
UPDATE `oxcontents` SET `OXACTIVE_3` = '',`OXTITLE_3` = '',`OXCONTENT_3` = ''; | |
UPDATE `oxcountry` SET `OXTITLE_3` = `OXTITLE`,`OXSHORTDESC_3` = `OXSHORTDESC`,`OXLONGDESC_3` = `OXLONGDESC`; | |
UPDATE `oxcountry` SET `OXTITLE` = `OXTITLE_1`,`OXSHORTDESC` = `OXSHORTDESC_1`,`OXLONGDESC` = `OXLONGDESC_1`; | |
UPDATE `oxcountry` SET `OXTITLE_1` = `OXTITLE_3`,`OXSHORTDESC_1` = `OXSHORTDESC_3`,`OXLONGDESC_1` = `OXLONGDESC_3`; | |
UPDATE `oxcountry` SET `OXTITLE_3` = '',`OXSHORTDESC_3` = '',`OXLONGDESC_3` = ''; | |
UPDATE `oxdelivery` SET `OXTITLE_3` = `OXTITLE`; | |
UPDATE `oxdelivery` SET `OXTITLE` = `OXTITLE_1`; | |
UPDATE `oxdelivery` SET `OXTITLE_1` = `OXTITLE_3`; | |
UPDATE `oxdelivery` SET `OXTITLE_3` = ''; | |
UPDATE `oxdeliveryset` SET `OXTITLE_3` = `OXTITLE`; | |
UPDATE `oxdeliveryset` SET `OXTITLE` = `OXTITLE_1`; | |
UPDATE `oxdeliveryset` SET `OXTITLE_1` = `OXTITLE_3`; | |
UPDATE `oxdeliveryset` SET `OXTITLE_3` = ''; | |
UPDATE `oxdiscount` SET `OXTITLE_3` = `OXTITLE`; | |
UPDATE `oxdiscount` SET `OXTITLE` = `OXTITLE_1`; | |
UPDATE `oxdiscount` SET `OXTITLE_1` = `OXTITLE_3`; | |
UPDATE `oxdiscount` SET `OXTITLE_3` = ''; | |
UPDATE `oxlinks` SET `OXURLDESC_3` = `OXURLDESC`; | |
UPDATE `oxlinks` SET `OXURLDESC` = `OXURLDESC_1`; | |
UPDATE `oxlinks` SET `OXURLDESC_1` = `OXURLDESC_3`; | |
UPDATE `oxlinks` SET `OXURLDESC_3` = ''; | |
UPDATE `oxmanufacturers` SET `OXTITLE_3` = `OXTITLE`,`OXSHORTDESC_3` = `OXSHORTDESC`; | |
UPDATE `oxmanufacturers` SET `OXTITLE` = `OXTITLE_1`,`OXSHORTDESC` = `OXSHORTDESC_1`; | |
UPDATE `oxmanufacturers` SET `OXTITLE_1` = `OXTITLE_3`,`OXSHORTDESC_1` = `OXSHORTDESC_3`; | |
UPDATE `oxmanufacturers` SET `OXTITLE_3` = '',`OXSHORTDESC_3` = ''; | |
UPDATE `oxnews` SET `OXACTIVE_3` = `OXACTIVE`,`OXSHORTDESC_3` = `OXSHORTDESC`,`OXLONGDESC_3` = `OXLONGDESC`; | |
UPDATE `oxnews` SET `OXACTIVE` = `OXACTIVE_1`,`OXSHORTDESC` = `OXSHORTDESC_1`,`OXLONGDESC` = `OXLONGDESC_1`; | |
UPDATE `oxnews` SET `OXACTIVE_1` = `OXACTIVE_3`,`OXSHORTDESC_1` = `OXSHORTDESC_3`,`OXLONGDESC_1` = `OXLONGDESC_3`; | |
UPDATE `oxnews` SET `OXACTIVE_3` = '',`OXSHORTDESC_3` = '',`OXLONGDESC_3` = ''; | |
UPDATE `oxobject2attribute` SET `OXVALUE_3` = `OXVALUE`; | |
UPDATE `oxobject2attribute` SET `OXVALUE` = `OXVALUE_1`; | |
UPDATE `oxobject2attribute` SET `OXVALUE_1` = `OXVALUE_3`; | |
UPDATE `oxobject2attribute` SET `OXVALUE_3` = ''; | |
UPDATE `oxpayments` SET `OXDESC_3` = `OXDESC`,`OXVALDESC_3` = `OXVALDESC`,`OXLONGDESC_3` = `OXLONGDESC`; | |
UPDATE `oxpayments` SET `OXDESC` = `OXDESC_1`,`OXVALDESC` = `OXVALDESC_1`,`OXLONGDESC` = `OXLONGDESC_1`; | |
UPDATE `oxpayments` SET `OXDESC_1` = `OXDESC_3`,`OXVALDESC_1` = `OXVALDESC_3`,`OXLONGDESC_1` = `OXLONGDESC_3`; | |
UPDATE `oxpayments` SET `OXDESC_3` = '',`OXVALDESC_3` = '',`OXLONGDESC_3` = ''; | |
UPDATE `oxselectlist` SET `OXTITLE_3` = `OXTITLE`,`OXVALDESC_3` = `OXVALDESC`; | |
UPDATE `oxselectlist` SET `OXTITLE` = `OXTITLE_1`,`OXVALDESC` = `OXVALDESC_1`; | |
UPDATE `oxselectlist` SET `OXTITLE_1` = `OXTITLE_3`,`OXVALDESC_1` = `OXVALDESC_3`; | |
UPDATE `oxselectlist` SET `OXTITLE_3` = '',`OXVALDESC_3` = ''; | |
UPDATE `oxshops` SET `OXTITLEPREFIX_3` = `OXTITLEPREFIX`,`OXTITLESUFFIX_3` = `OXTITLESUFFIX`,`OXSTARTTITLE_3` = `OXSTARTTITLE`,`OXORDERSUBJECT_3` = `OXORDERSUBJECT`,`OXREGISTERSUBJECT_3` = `OXREGISTERSUBJECT`,`OXFORGOTPWDSUBJECT_3` = `OXFORGOTPWDSUBJECT`,`OXSENDEDNOWSUBJECT_3` = `OXSENDEDNOWSUBJECT`,`OXSEOACTIVE_3` = `OXSEOACTIVE`,`EBINVOICEMAILSUBJECT_3` = `EBINVOICEMAILSUBJECT`; | |
UPDATE `oxshops` SET `OXTITLEPREFIX` = `OXTITLEPREFIX_1`,`OXTITLESUFFIX` = `OXTITLESUFFIX_1`,`OXSTARTTITLE` = `OXSTARTTITLE_1`,`OXORDERSUBJECT` = `OXORDERSUBJECT_1`,`OXREGISTERSUBJECT` = `OXREGISTERSUBJECT_1`,`OXFORGOTPWDSUBJECT` = `OXFORGOTPWDSUBJECT_1`,`OXSENDEDNOWSUBJECT` = `OXSENDEDNOWSUBJECT_1`,`OXSEOACTIVE` = `OXSEOACTIVE_1`,`EBINVOICEMAILSUBJECT` = `EBINVOICEMAILSUBJECT_1`; | |
UPDATE `oxshops` SET `OXTITLEPREFIX_1` = `OXTITLEPREFIX_3`,`OXTITLESUFFIX_1` = `OXTITLESUFFIX_3`,`OXSTARTTITLE_1` = `OXSTARTTITLE_3`,`OXORDERSUBJECT_1` = `OXORDERSUBJECT_3`,`OXREGISTERSUBJECT_1` = `OXREGISTERSUBJECT_3`,`OXFORGOTPWDSUBJECT_1` = `OXFORGOTPWDSUBJECT_3`,`OXSENDEDNOWSUBJECT_1` = `OXSENDEDNOWSUBJECT_3`,`OXSEOACTIVE_1` = `OXSEOACTIVE_3`,`EBINVOICEMAILSUBJECT_1` = `EBINVOICEMAILSUBJECT_3`; | |
UPDATE `oxshops` SET `OXTITLEPREFIX_3` = '',`OXTITLESUFFIX_3` = '',`OXSTARTTITLE_3` = '',`OXORDERSUBJECT_3` = '',`OXREGISTERSUBJECT_3` = '',`OXFORGOTPWDSUBJECT_3` = '',`OXSENDEDNOWSUBJECT_3` = '',`OXSEOACTIVE_3` = '',`EBINVOICEMAILSUBJECT_3` = ''; | |
UPDATE `oxstates` SET `OXTITLE_3` = `OXTITLE`; | |
UPDATE `oxstates` SET `OXTITLE` = `OXTITLE_1`; | |
UPDATE `oxstates` SET `OXTITLE_1` = `OXTITLE_3`; | |
UPDATE `oxstates` SET `OXTITLE_3` = ''; | |
UPDATE `oxvendor` SET `OXTITLE_3` = `OXTITLE`,`OXSHORTDESC_3` = `OXSHORTDESC`; | |
UPDATE `oxvendor` SET `OXTITLE` = `OXTITLE_1`,`OXSHORTDESC` = `OXSHORTDESC_1`; | |
UPDATE `oxvendor` SET `OXTITLE_1` = `OXTITLE_3`,`OXSHORTDESC_1` = `OXSHORTDESC_3`; | |
UPDATE `oxvendor` SET `OXTITLE_3` = '',`OXSHORTDESC_3` = ''; | |
UPDATE `oxwrapping` SET `OXACTIVE_3` = `OXACTIVE`,`OXNAME_3` = `OXNAME`; | |
UPDATE `oxwrapping` SET `OXACTIVE` = `OXACTIVE_1`,`OXNAME` = `OXNAME_1`; | |
UPDATE `oxwrapping` SET `OXACTIVE_1` = `OXACTIVE_3`,`OXNAME_1` = `OXNAME_3`; | |
UPDATE `oxwrapping` SET `OXACTIVE_3` = '',`OXNAME_3` = ''; | |
-- oxlang fields | |
UPDATE `oxseo` SET `oxlang` = 66 WHERE `oxlang` = 1; | |
UPDATE `oxseo` SET `oxlang` = 1 WHERE `oxlang` = 0; | |
UPDATE `oxseo` SET `oxlang` = 0 WHERE `oxlang` = 66; | |
UPDATE `oxseohistory` SET `oxlang` = 66 WHERE `oxlang` = 1; | |
UPDATE `oxseohistory` SET `oxlang` = 1 WHERE `oxlang` = 0; | |
UPDATE `oxseohistory` SET `oxlang` = 0 WHERE `oxlang` = 66; | |
UPDATE `oxseologs` SET `oxlang` = 66 WHERE `oxlang` = 1; | |
UPDATE `oxseologs` SET `oxlang` = 1 WHERE `oxlang` = 0; | |
UPDATE `oxseologs` SET `oxlang` = 0 WHERE `oxlang` = 66; | |
UPDATE `oxobject2seodata` SET `oxlang` = 66 WHERE `oxlang` = 1; | |
UPDATE `oxobject2seodata` SET `oxlang` = 1 WHERE `oxlang` = 0; | |
UPDATE `oxobject2seodata` SET `oxlang` = 0 WHERE `oxlang` = 66; | |
UPDATE `oxpricealarm` SET `oxlang` = 66 WHERE `oxlang` = 1; | |
UPDATE `oxpricealarm` SET `oxlang` = 1 WHERE `oxlang` = 0; | |
UPDATE `oxpricealarm` SET `oxlang` = 0 WHERE `oxlang` = 66; | |
UPDATE `oxorder` SET `oxlang` = 66 WHERE `oxlang` = 1; | |
UPDATE `oxorder` SET `oxlang` = 1 WHERE `oxlang` = 0; | |
UPDATE `oxorder` SET `oxlang` = 0 WHERE `oxlang` = 66; | |
UPDATE `oxreviews` SET `oxlang` = 66 WHERE `oxlang` = 1; | |
UPDATE `oxreviews` SET `oxlang` = 1 WHERE `oxlang` = 0; | |
UPDATE `oxreviews` SET `oxlang` = 0 WHERE `oxlang` = 66; | |
-- Result of array @Line 191 $aLanguageParams | |
REPLACE INTO `oxconfig` (`OXID`, `OXSHOPID`, `OXMODULE`, `OXVARNAME`, `OXVARTYPE`, `OXVARVALUE`, `OXTIMESTAMP`) | |
VALUES ("dca904005576b6ae26510ff7ff662857","oxbaseshop","","aLanguageParams","arr",0x4DBA852E754D5687A270D8DE32768E946FF20EB0E9BA84D87A3A5CE53F6AAC698CFD6E62A9AE35B23391CCD7FD899D8F7665F515E7B011C899ABEE29F257B190918E3EABF72DCE42C5F97E2179C07C216036F2B98F9F7AEDCDB1AFD92B4634819596A75ACDF7F8AB876C9F3086624EF9DAA2A9E3D75D047E6B0E2A48C2B20358F49C3A5203F4FB2646D31AA8709E9262455A1A3372B9C908D49E2F6008804B67CC42E120667245B077B91E9C284E6E61C443F40349E1CB8C10FAD26631E57C344A7F6D8F808D0F3800B0AEABFB1C8EDB036CA1984B96CAE92C1429D95947D2F7E0AFF32F15A2B335B394FFE3C29762BAE7C9B4FD69EFEA50EE23048DC910E75368A11828526885670C9AD51469F58061DB,"2014-12-19 15:15:12"), | |
("b96e6c4a3311fce4d74998f9af2324df","oxbaseshop","","sDefaultLang","str",0xDE,"2014-12-19 15:15:12"); | |
em | |
MYSQL; | |
$aLanguageParams = array( | |
'de' => array( | |
'baseId' => 0, | |
'active' => 1, | |
'sort' => '10', | |
'default' => '1', | |
), | |
'en' => array( | |
'baseId' => 1, | |
'active' => 0, | |
'sort' => '1', | |
'default' => false, | |
), | |
'fr' => array( | |
'baseId' => 2, | |
'active' => '1', | |
'default' => false, | |
'sort' => '3', | |
), | |
); | |
//$oConfig->saveShopConfVar( 'arr', 'aLanguageParams', $aLanguageParams ); | |
//$oConfig->saveShopConfVar( 'str', 'sDefaultLang', 0 ); | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment