[Typo3-german] Default language nachtraeglich aendern

Markus Mayer mm at amsee.de
Wed Sep 7 12:21:21 CEST 2005


Martin Setzler schrieb:
> Hallo,
> 
> wir haben eine multilanguage 3.7 installation mit Templa Voila und one tree konzept.
> Als default Sprache ist deutsch (id=0) eingestellt. Wir haben ausserdem eine sprache "international englisch" (id=1) und eine "laenderspezifisch uk" (id=4).
> 
> Jetzt soll die sprache mit id=4, sollten seiten nicht gefuellt sein, die seiten und deren content von id=1 nehmen. Sie nehmen aber die von id=0 (logisch, ist ja default sprache).
> 
> Kann ich nachtraeglich die default sprache aendern, so dass das seiten uebernehmen klappt? Oder noch "cooler" kann ich einer Sprache sagen "du sprache mit id=4 nimm die id=1 als deine default Sprache"?
> 

Hi,
ich wollte auch meine defaultlanguage ändern und habe mir dazu ein 
Skript geschrieben. Ich habe 3.8.0 !

Aber bitte, vorher die Datenbank (oder zumindest die Tabelle tt_content) 
sichern, die Umstellung habe ich gerade erst gemacht und ich bin nicht 
100%ig sicher, daß alles in Ordnung ist - es sieht aber gut aus....

Hoffe, das hilft, mm
 >>>>>>>>>>>>>>>
connect();

$new_default_language_uid = 1;
$old_default_language_name = 'English';
$old_default_language_flag = 'gb.gif';

$dummy_language_uid = 999;
// Look for new-default-language objects that reference default language 
datasets (parent)
$sql = "SELECT `uid`,`pid`,`l18n_parent` FROM `tt_content` WHERE 
`sys_language_uid` = ".$new_default_language_uid." AND `l18n_parent` > 0";
$result = mysql_query($sql);
if (!$result) die(mysql_error());
else {
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
// Set new references (for all languages except former default language)
$sql = "UPDATE `tt_content` SET `l18n_parent` = ". $row['uid'] . " WHERE 
`l18n_parent` = " . $row['l18n_parent'];
mysql_query($sql) or die(mysql_error());
// Set new reference in default language objects which formerly have 
been referenced (by new default language objects).
$sql = "UPDATE `tt_content` SET `l18n_parent` = ". $row['uid'] . ", 
`sys_language_uid` = ".$dummy_language_uid." WHERE `uid` = " . 
$row['l18n_parent'];
mysql_query($sql) or die(mysql_error());
}
// Make new language the default language (and clear the parent reference)
$sql = "UPDATE `tt_content` SET `sys_language_uid` = 0, `l18n_parent` = 
0 WHERE `sys_language_uid` = ".$new_default_language_uid;
mysql_query($sql) or die(mysql_error());
// Make formerly default language objects the language which is now 
default language
$sql = "UPDATE `tt_content` SET `sys_language_uid` = " . 
$new_default_language_uid . " WHERE `sys_language_uid` = 
".$dummy_language_uid;
mysql_query($sql) or die(mysql_error());
$sql = "UPDATE `sys_language` SET `title` = '" . 
$old_default_language_name . "', `flag` = '" . 
$old_default_language_flag . "' WHERE `uid` = " . $new_default_language_uid;
echo $sql."<br>\n";

mysql_query($sql) or die(mysql_error());
}

 >>>>>>>>>>>>>>>>>>
-- 
Markus Mayer - artofwww.com - Konstanz - Germany



More information about the TYPO3-german mailing list