Lösung
Verwenden Sie das TypoScript-Element CONTENT und verschachteln Sie es über mehrere Ebenen, indem Sie dem entsprechenden renderObj jeweils ein weiteres CONTENT-Element zuweisen. Das übergeordnete CONTENT-Element liefert dabei die UID der Seiten, von denen jeweils weitere Unterseiten und/oder deren Inhaltselemente verwendet werden.
temp.kumulierterInhalt = COA temp.kumulierterInhalt { 10 = TEXT 10.field = title 10.wrap = <h1>|</h1> 20 = CONTENT 20 { table = tt_content select { orderBy = sorting } } 30 = CONTENT 30 { table = pages select { orderBy = sorting } renderObj = COA renderObj { 10 = TEXT 10.field = title 10.wrap = <h2>|</h2> 20 = CONTENT 20 { table = tt_content select { pidInList.field = uid orderBy = sorting } } } } }
Listing 1
Diskussion
Eines der wichtigsten TypoScript-Elemente ist das CONTENT-Element, mit dem Sie Inhalte aus verschiedenen Tabellen der Datenbank auslesen und anschließend für die Ausgabe formatieren können. CONTENT verfügt dabei neben wrap und zusätzlichen stdWrap-Funktionen über drei Hauptbereiche, mit deren Hilfe Sie exakt festlegen können, welche Inhalte verwendet werden und aus welcher Tabelle diese stammen sollen.
Mit Hilfe der Eigenschaft table legen Sie zunächst die Tabelle fest, aus der die jeweiligen Inhalte geholt werden sollen. Erlaubt sind dabei die Tabelle pages sowie alle Tabellen, deren Tabellennamen mit einem der folgenden Präfixe versehen ist:
Bitte beachte unsere Community-Richtlinien
Welche daten ausgelesen werden wird hier jeweils hauptsächlich über das Wert 'pidInList' gesteuert.
#pages
# pidInList.field = uid
# alle Untesreiten der aktuellen Seite
# pidInList = 23
# alle Unterseiten von seite 23
# pidInList hat .stdWrap und bietet diverse alternative Möglichkeiten den Wert festzulegen
Hallo,
das Skript funktioniert super, aber wie kann ich den Ausgangspunkt bestimmen? Vor allem bei Listing 3? Ich möchte die Zusammenfassungs in der Baumstruktur an einer losgelösten Stelle haben.
grüße
Marc