Zurück zum Blog

TYPO3: Auf übersetzte News direkt verlinken

Bei einem aktuellen Projekt, eine mehrsprachige Website unter TYPO3, standen wir vor der Aufgabe alle News einer Sprache auszugeben und zugleich auf die Übersetzungen einer News, falls welche vorhanden sind, direkt zu verlinken. Standardmäßig bietet die eingesetzte Erweiterung tt_news derartige Verlinkungen nicht an. Aus diesem Grund zeigen wir hier die Lösung dieses Problems.

Zu Beginn ist ein eigener Marker im Template von tt_news notwendig. Diesen Marker definieren wir mit der zusätzlichen Extension "ttnewsgenericmarkers". Danach fragen wir per TypoScript die erforderlichen Datensätze ab. Der TypoScript-Code sieht wie folgt aus:

plugin.tt_news.genericmarkers {
  
  data = uid,sys_language_uid
  
  translation = COA
  translation {
    10 = CONTENT
    10 {
      table = tt_news
      select {
        pidInList = 45
        selectFields = uid,sys_language_uid
        andWhere.dataWrap = l18n_parent = {field:generic_uid}
      }
      
      renderObj = COA
      renderObj {
        
        10 = TEXT
        10.value = In German
        10.if {
          value = 1
          isInList.field = sys_language_uid
        }
        
        10.typolink {
          parameter = 46
          addQueryString = 1
          additionalParams = &L={field:sys_language_uid}&tx_ttnews[tt_news]={field:uid}
          additionalParams.insertData = 1
        }
        
        20 = TEXT
        20.value = In Hungarian
        20.if {
          value = 2
          isInList.field = sys_language_uid
        }
        20.typolink {
          parameter = 46
          addQueryString = 1
          additionalParams = &L={field:sys_language_uid}&tx_ttnews[tt_news]={field:uid}
          additionalParams.insertData = 1
        }
        
        30 = TEXT
        30.value = In Romanian
        30.if {
          value = 3
          isInList.field = sys_language_uid
        }
        30.typolink {
          parameter = 46
          addQueryString = 1
          additionalParams = &L={field:sys_language_uid}&tx_ttnews[tt_news]={field:uid}
          additionalParams.insertData = 1
        }
        
        # Weitere Sprachen im gleichen Schema
        # ...
      }
    }     
  }
}
Daten per Select holen und verarbeiten

Zuerst werden alle Datensätze geholt, wo die aktuelle News-ID im Feld "l18n_parent" vorkommt. Nun hat man die zu einer News übersetzten Datensätze (Zeile 9 - 13). Danach werden die Links je Sprache zusammengesetzt (zB Zeile 19 - 31). Das Beispiel kann natürlich an die eigenen Bedürfnisse und Anforderungen jederzeit ausgebaut werden.

Diesen Artikel teilen

Schreiben Sie den ersten Kommentar zu diesem Artikel

Ihr Kommentar

Bitte geben Sie Ihren Namen an
Bitte geben Sie eine E-Mail Adresse an
Bitte geben Sie eine Nachricht ein
Das Ergebnis ist nicht korrekt