[TYPO3-german] Von One-Tree auf Multi-Tree umstellen
bernd wilke
t3ng at bernd-wilke.net
Mon Sep 8 09:47:16 CEST 2014
Am 07.09.14 18:53, schrieb Nicole Cordes:
> Hallo Johannes,
>
> einen fertigen Weg kenne ich nicht, aber du solltest anhand der Datenbank ein Script dafür schreiben können. Wichtig ist, dass du daran denkst, dass der neue Seitenbaum auch 0 als sys_language_uid hat und du die Sprache über TypoScript einstellst...
>
leider ist dieses Aufspliten der Sprachen nicht so einfach.
in abgeandelter Form kam die Anforderung ja schon sehr oft: wie kann
"ich die Default-Sprache mit einer Übersetzung tauschen?"
da TYPO3 da etwas komplexere Datenstrukturen benutzt ist das eben nicht
ganz trivial.
angefangen bei der Tabelle 'pages', die ihre Übersetzungen in einer
overlay-tabelle hat: 'pages_language_overlay'
wenn jetzt also eine Übersetzung zur default sprache werden soll muss
also schon mal folgendes passieren:
original page holen
die Felder aus pages_language_overlay darüber legen (da hilt TYPO3 mit
Core-fuktionen)
dann die Sprach- und Referenzfelder aufräumen:
sys_language_uid,l18n_diffsource,t3_origuid(?)
jetzt muss das Ganze als neuer Datensatz in 'pages' abgelegt werden.
UND man muss sich die original UId merken, damit nachfolgende Referenzen
in die neue UId gewandelt werden können (Feld tx_impexp_origuid?)
dann kann man alle Datensätze (primär tt_content) übertragen:
außer bei der Tabelle 'pages' werden die Übersetzungen in der gleichen
Tabelle gepflegt. dafür gibt es dann noch das Feld l18n_parent.
Auch hier wieder: default-sprache holen und mit der Übersetzung
overlayen, und jetzt wird es komplizierter: welche UId ist jetzt
massgeblich für Referenzen? die der Originalsprache, oder die der
Übersetzung?
das Ganze natürlich in der neuen Kopie mit der Information: alle
Referenzen auf die Original-Uid müssen ausgetauscht werden.
hier komt zb. dann auch zum Tragen: wir haben ja schon die Seite
kopiert, also ist das Feld pid anzupassen.
Viele Anpassungen dürften den Anpassungen beim export/import
entsprechen: zb. auch Seiten Ids im Typoscript, Referenzen in
Containerelementen (tt_content CType records, plugins, ...)
Es ist also schon einiges mehr als nur sys_language_uid austauschen.
aber wenn es dann mal jemand programmiert hat wird er sich seinen Platz
im Herzen vieler Menschen redlich verdient haben :)
bernd
--
http://www.pi-phi.de/cheatsheet.html
More information about the TYPO3-german
mailing list