TYPO3-Testaccount
Testen Sie die aktuellste TYPO3-Version kostenlos und unverbindlich für einen Monat!

Jetzt testen!

Schulungen

erste vier Unterseiten per Typoscript auslesen


Autor Nachricht
Verfasst am: 23. 05. 2012 [15:57]
3dxO
Themenersteller
Dabei seit: 09.06.2010
Beiträge: 34
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:
TYPOSCRIPT
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
TYPOSCRIPT
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
Profil
Verfasst am: 23. 05. 2012 [22:25]
Chrissli
Dabei seit: 19.04.2010
Beiträge: 503
Hallo Christian, irgendwie so ging das glaub' ich:

TYPOSCRIPT
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.

God's in his Heaven -
All's right with the world!
ProfilICQ
Verfasst am: 24. 05. 2012 [12:10]
3dxO
Themenersteller
Dabei seit: 09.06.2010
Beiträge: 34
Danke vielmals.. bleibt noch das Problem die vier Seiten auch in vier verschiedene marks zu platzieren. Das erschließt sich mir noch nicht wirklich
Profil
Verfasst am: 26. 05. 2012 [02:56]
Chrissli
Dabei seit: 19.04.2010
Beiträge: 503
Sorry,

hab' ich dann falsch verstanden.
Dann sollte das so funktionieren:
TYPOSCRIPT
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


[Dieser Beitrag wurde 2mal bearbeitet, zuletzt am 26.05.2012 um 02:57.]

God's in his Heaven -
All's right with the world!
ProfilICQ
Verfasst am: 29. 05. 2012 [08:56]
3dxO
Themenersteller
Dabei seit: 09.06.2010
Beiträge: 34
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.
Profil