[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