Zum Inhalt springen

Problem, einzelnes mehrsprachiges CONTENT-Objekt mit Typoscript

Erstellt am 4. November 2013 · 3 Antworten · letzte Antwort am 6. November 2013

Tags: Frage

florist ·

Hallo

Ich stehe vor einem Problem das ich mir einfach nicht erklären kann.
Ich habe eine funktionierende Mehrsprachige Seite mit korrekter Sprachkonfiguration, TYPO3 4.7

Nun möchte ich mir ein statisches Content Element aus einem SysOrdner auf allen Seiten anzeigen, bei Sprachwechsel soll die frz. Übersetzung angezeigt werden.

..
     10 = CONTENT
     10.table = tt_content
     10.select {
       uidInList = 234      //Das ist die id des Inhaltselements.
       pidInList = 115      //Das ist der Ordner, in dem das  Element liegt.
       languageField = sys_language_uid
     }

In der default Sprache funktioniert es wunderbar,
sobald ich die Sprache wechsel wird mir nichts angezeigt, eigentlich sollte nun doch das übersetzte CE angezeigt werden?

Hab es auch bereits so versucht, ohne erfolg:

..
     10 = CONTENT
     10.table = tt_content
     10.select {
       where = uid = 234
       andWhere.dataWrap = sys_language_uid = {GP:L}
       pidInList = 115      //Das ist der Ordner, in dem das  Element liegt.
     } 
...

Die Sprachkonfiguration sollte korrekt sein, da alle anderen Inhalte, Seiten etc, korrekt übersetzt werden.

In einem anderen Bereich der Website verwende ich folgendes TS; welches wiederrum funktioniert:

	    20 = CONTENT
        20 {
           table = tt_content
           select {
               pidInList = 49
               where = colPos = 0
               ### Alle contents mit UNIX_TIMESTAMP - 1 WOCHE
               andWhere.dataWrap = date < {date:U}-604800
               languageField = sys_language_uid
               orderBy = date desc
               max = 1
           }

ich vermute deshalb, die Zeile:
uidInList = 234
bewirkt, dass immer nur das eine Content Element ausgegeben wird, egal welche Language gewählt ist.

Kann mir jemnad sagen wie ich das Problem in den Griss kriegen kann?
Ich möchte nicht mit Sprchconditions arbeiten, wenn möglich...

Grüsse
Flo

charhunter ·

Hallo,

ich weiß nicht, ob es die beste Lösung ist, aber so funktioniert es:

10 = CONTENT
10.table = tt_content
10.select {
  where = (uid = 234 OR t3_origuid = 234)
  pidInList = 115
  languageField = sys_language_uid
}

Viele Grüße

Chrissli ·

uidInList und pidInList bezieht sich jeweils auf die Seiten-ID, vermutlich solltest du einfach nicht beide gleichzeitig verwerden, dann sollte dein erstes Beispiel funktionieren.
Mit uid/pidInList sorgst du nur dafür, dass du Inhalte aus einer anderen Seite als der aktuellen holen kannst, da sonst nur die Content-Elemente der aktuellen Seite abgefragt werden

Wenn du nur das Content-Element mit der entsprechenden ID willst musst du das über den Where-Teil rausfiltern.

florist ·

Danke für die Tipps.
Ich hab es nun selbst lösen können.
Bin mir auch nicht so sicher ob es besonders elegant ist, aber wenigstens kann ich mir die Conditions sparen.
Es funktioniert so ähnlich wie der TIpp von charhunter.

	10 = CONTENT
	10 {
    	table = tt_content
        select {
           pidInList = 42
           uidInList = 3,30
           languageField = sys_language_uid
           }

    }

In uidInList habe ich die uids des dt. und des frz. Content Elements.
languageField... sorgt dann dafür, dass immer nur das der aktuellen Sprache ausgegebne wird.

Leider versteh ich nicht ganz warum es funktioiert, denn Chrissli hat schon recht eigentlich sollte uidInList eine pageId sein ,allerdings verhält es sich anders es geht tatsächlich auf die uid des CEs.