[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