Der Interaktionsdesigner – PHP, jQuery und CSS

11. Juli 2008 (17:27 Uhr)

Einfacher Sprachumschalter für TYPO3

Wie schon bei der einfachen Druckfunktion angesprochen, möchte ich einfache Aufgaben mit den TYPO3 Standardmitteln lösen. Damit sparen wir uns jede Menge Extensions und Update-Nerv.

Diesmal sollen die Besucher die Möglichkeit erhalten die Sprache der Webseite umzuschalten. Dabei sollen sie natürlich auf der gleichen Seite bleiben. Üblicherweise geschieht dies über zwei kleinen Flaggen.
Im Netz gibt es einen unendlichen Haufen Lösungen und hier kommt noch eine mehr.

Vorgehensweise

1. Zwei Marker werden im Template an geeigneter Stelle definiert. In meinem Beispiel DEUTSCH und ENGLISCH.

2. Über Typoscript werden die Marker mit einem Bild gefüllt, um dieses wird ein Link geschlossen und über einen weiteren Parameter (additionalParams) wird die Sprache geändert. So sieht es aus:

page.10.marks.DEUTSCH = IMAGE
page.10.marks.DEUTSCH {
  file = fileadmin/template/img/lang-deAktiv.jpg
  stdWrap.typolink {
    additionalParams = &L=0
    parameter.field = uid
  }
}
page.10.marks.ENGLISCH = IMAGE
page.10.marks.ENGLISCH {
  file = fileadmin/template/img/lang-enInaktiv.jpg
  stdWrap.typolink {
    additionalParams = &L=1
    parameter.field = uid
  }
}

3. Um die gewählte Sprache hervorzuheben, fragen wir die Sprache ab und ändern je nach dem die URL des Bildes.

[globalVar = GP:L=1]
page.10.marks.DEUTSCH.file = fileadmin/template/img/lang-deInaktiv.jpg
page.10.marks.ENGLISCH.file = fileadmin/template/img/lang-enAktiv.jpg
[global]

Fazit

Typoscript bietet so viele Möglichkeiten und ich halte es für sehr sinnvoll diese auszuschöpfen bevor wild alle möglichen Extensions installiert werden.
Die Druckfunktion arbeitet jedenfalls stabil und zuverlässig und ich habe noch keinen Grund gefunden der den Einsatz einer Extension rechtfertigen würde.

matthias 12. Juli 2008 (15:10 Uhr)

Ja, das ist richtig, Typoscript macht vieles möglich. Die beschriebene Sprachumschaltung funktioniert allerdings nicht mit tt_news (Umschalten von einer Newsmeldung in die andere Sprache). Da wären etliche Zeilen Typoscript mehr erforderlich.

Paul 18. Juli 2008 (16:37 Uhr)

Hallo Matthias,
danke für dein Kommentar; und klar da hast du natürlich recht. Aber ich frage mich welcher englischsprachige Benutzer sich auf einer deutschen Seite bis in die Detailansicht einer News klickt um dann festzustellen, das er gar kein Deutsch kann! :-)
Da halte ich mein Projekt lieber so klein und effektiv wie möglich.

chris3 30. Juni 2010 (13:58 Uhr)

“etliche Zeilen Typoscript”…?

Einfach den “stdWrap.typolink”-Teil um das hier ergänzen:

# Save the query string (e.g. news_id)…
addQueryString = 1
# … but NOT the page_id or the L
addQueryString.exclude = id, L

Einen Kommentar schreiben

(wird nicht veröffentlicht)

(wird veröffentlicht!)