Dienstag, 26. Juli 2011

Standard Sprache ändern (2/2)

Die Seiten habe ich via eine Kopie der Tabelle erstellt.

Zuerst die Tabelle pages kopieren, inkl. Inhalte. (pages_new)

Schritt 1:
update pages left join pages_language_overlay on pages.uid=pages_language_overlay.pid set pages.title=pages_language_overlay.title,        pages.subtitle=pages_language_overlay.subtitle,     pages.description=pages_language_overlay.description,        pages.keywords=pages_language_overlay.keywords,        pages.abstract=pages_language_overlay.abstract,        pages.nav_title=pages_language_overlay.nav_title    where pages_language_overlay.sys_language_uid=1;

Schritt 2:
update pages_language_overlay right join pages_new on pages_language_overlay.pid=pages_new.uid set pages_language_overlay.title=pages_new.title,        pages_language_overlay.subtitle=pages_new.subtitle,     pages_language_overlay.description=pages_new.description,        pages_language_overlay.keywords=pages_new.keywords,        pages_language_overlay.abstract=pages_new.abstract,        pages_language_overlay.nav_title=pages_new.nav_title    where pages_language_overlay.sys_language_uid=1;

Donnerstag, 21. Juli 2011

Standard Sprache ändern (1/2)

Soviel ich weiss gibt es keine Funktion im TYPO3, die erlaubt die Standardsprache zu ändern. Wenn man TemplaVoila verwendet ist es noch ein Level komplizierter, da IDs von Inhalten in einem templavoila Feld der Seite gespeichert werden.

Aktuelles Setup: Deutsch ist die Standardsprache, English Sprache 1, Französisch Sprache 2.

Ziel: Englisch soll die Standardsprache sein und Deutsch die erste alternative Sprache.

Mit folgenden SQL Statements hat es geklappt.

sys_language_uid der Deutschen Inhalte ändern (von 0 auf 10):
update tt_content set sys_language_uid=10 where sys_language_uid=0;

sys_language_uid der Englischen Inhalte ändern (von 1 auf 0):
update tt_content set sys_language_uid=0 where sys_language_uid=1;

sys_language_uid der Deutschen Inhalte ändern (von 10 auf 1):
update tt_content set sys_language_uid=1 where sys_language_uid=10;

l18n_parent neu setzen für die Deutschen Inhalte:
UPDATE tt_content as c1
    RIGHT JOIN tt_content as c2 on c2.l18n_parent=c1.uid
    SET c1.l18n_parent=c1.uid,c1.t3_origuid=c1.uid
    WHERE c1.sys_language_uid=1
        AND c2.sys_language_uid=0;

uid ändern bei allen Deutschen Inhalten  (> als grösste aktuelle Content ID!):
UPDATE tt_content as c1
    RIGHT JOIN tt_content as c2 on c2.l18n_parent=c1.uid
    SET c1.uid=c2.uid+10000
    WHERE c1.sys_language_uid=1
        AND c2.sys_language_uid=0;

uid der Englischen Inhalte ändern auf die Id der ehemals Deutschen Inhalte:
UPDATE tt_content
    SET uid=l18n_parent where sys_language_uid=0 and l18n_parent>0;

uid der Deutschen Inhalte wieder ändern
UPDATE tt_content
    SET uid=uid-10000 where sys_language_uid=1 and uid>10000;

Clean up
UPDATE tt_content 
    SET l18n_parent=0,t3_origuid=0,l18n_diffsource=''
    where sys_language_uid=0 and l18n_parent>0;

Und bestimmte Felder überetragen:
UPDATE  tt_content as c1
    RIGHT JOIN tt_content as c2 on c2.l18n_parent=c1.uid
    SET c1.hidden=c2.hidden,
        c1.starttime=c2.starttime,
        c1.endtime=c2.endtime
    WHERE c1.sys_language_uid=0
        AND c2.sys_language_uid=1;

Multi-Domain Websites und Cross-Domain Links mit TYPO3

Damit Cross Domain Links bei Multi-Domain Setups korrekt funktionieren müssen folgende Voraussetzungen erfüllt sein. Getestet mit TYPO3 4.5.

1. Bei den Einstiegsseiten der Domains muss die Checkbox "Als Anfang der Website benutzen" aktiviert sein.

2. Folgende TypoScript Konfiguration muss gesetzt sein.
config.typolinkCheckRootline = 1
config.typolinkEnableLinksAcrossDomains = 1