Zum Inhalt springen

erste vier Unterseiten per Typoscript auslesen

Erstellt am 23. Mai 2012 · 4 Antworten · letzte Antwort am 29. Mai 2012

Tags: Frage

3dxO ·

Hallo,

ist es überhaupt möglich die ersten vier Unterseiten einer Seite mit TypoScript auszulesen und an entsprechenden Stellen auszugeben?

Im Augenblick hab ichs so gelöst:

temp.teaser1 = CONTENT
temp.teaser1 {
  table = tt_content
  select.pidInList = 42
  select.orderBy = sorting
  select.where = colPos = 3
  select.languageField = sys_language_uid
}
temp.teaser2 = CONTENT
temp.teaser2 {
  table = tt_content
  select.pidInList = 43
  select.orderBy = sorting
  select.where = colPos = 3
  select.languageField = sys_language_uid
}
temp.teaser3 = CONTENT
temp.teaser3 {
  table = tt_content
  select.pidInList = 44
  select.orderBy = sorting
  select.where = colPos = 3
  select.languageField = sys_language_uid
}
temp.teaser4 = CONTENT
temp.teaser4 {
  table = tt_content
  select.pidInList = 45
  select.orderBy = sorting
  select.where = colPos = 3
  select.languageField = sys_language_uid
}

später ersetze ich dann ein paar page.marks

  teaser1 < temp.teaser1
  teaser2 < temp.teaser2
  teaser3 < temp.teaser3
  teaser4 < temp.teaser4

Allerdings soll mann später in der Lage sein auch neue Unterseiten zu erzeugen und diese sollen dann benutzt werden. Also ists ja nicht so gut mit festen ID Werten im TS zu arbeiten.

Geht das überhaupt in TS, oder geht das mit nem eingebundenen PHP? Und wenn ja, wie??

Danke schonmal,
Christian

Chrissli ·

Hallo Christian, irgendwie so ging das glaub' ich:

temp.teaser = CONTENT
temp.teaser {
	table = tt_content
	select {
		pidInList.cObject = HMENU
		pidInList.cObject {
			1 = TMENU
			1.maxItems = 4
			1.NO = 1
			1.NO {
				doNotLinkIt = 1
				stdWrap.field = uid
				stdWrap.wrap = |, |*| |, |*| |
			}
		}
		where = colPos = 3
		languageField = sys_language_uid;
	}
}

Generell besteht der Trick darin das cObject von pidInList zu überschreiben, ein HMENU mit den treffenden Seiten-IDs zu generieren und diese mit Komma getrennt zu formatieren. Der Rest ergibt sich.

3dxO ·

Danke vielmals.. bleibt noch das Problem die vier Seiten auch in vier verschiedene marks zu platzieren. Das erschließt sich mir noch nicht wirklich

Chrissli ·

Sorry,

hab' ich dann falsch verstanden.
Dann sollte das so funktionieren:

temp.teaser1 = CONTENT
temp.teaser1 {
	table = tt_content
	select {
		pidInList.cObject = HMENU
		pidInList.cObject {
			1 = TMENU
			1.maxItems = 1
                        1.begin = 1
			1.NO = 1
			1.NO {
				doNotLinkIt = 1
				stdWrap.field = uid
				#stdWrap.wrap = |, |*| |, |*| | #das sollte dann unnoetig sein, da nur eine ID genutzt wird
			}
		}
		where = colPos = 3
		languageField = sys_language_uid;
	}
}

temp.teaser2 < temp.teaser1
temp.teaser2.select.pidInList.cObject.1.begin = 2
temp.teaser3 < temp.teaser1
temp.teaser3.select.pidInList.cObject.1.begin = 3
temp.teaser4 < temp.teaser1
temp.teaser4.select.pidInList.cObject.1.begin = 4
3dxO ·

Danke! Hatte zwischenzeitlich auch schon das maxItems und begin kennengelernt, aber dieses Beispiel ist nocht etwas eleganter was die Vererbung angeht. Vielen Dank dafür.