Seiteninhalte für Subparts sortieren
Mit ein paar Zeilen TypoScript lassen sich die Seiteninhalte bzw. Content-Elemente einer Seite recht einfach sortieren. Dieser Script wird z.B. dann gebraucht, wenn ihr auf euerer Seite eine große Menge an kleinen Content-Elementen habt und diese nach Titel oder Erstellungsdatum sortieren wollt ohne alles per Hand zu verschieben.
Evtl. ist es etwas unübersichtlicher wenn man den Seiteninhalt später wieder bearbeiten möchte weil man ja nicht weiß, an welcher Stelle im Backend sich nun genau der Contentblock befindet. Aber manchmal kann es eben doch recht nützlich sein.
Hier der Code:
temp = CONTENT
temp.table = tt_content
temp.select {
pidInList = this
orderBy = header
}
Dieser temporäre Content kann nun einem Subpart zugewiesen werden. Z.B. mit
subparts.SORTED_CONTENT < temp
Für TemplaVoila geht dies freilich nicht so einfach. Hier muss der XML-Code der Data-Structure (DS) angepasst werden.
Content mit TemplaVoila sortieren
Um den Content mit TemplaVoila zu sortieren benötigen wir sowohl eine neue Datenstruktur (DS) als auch ein neues Template-Objekt (TO). Dazu empfehle ich folgende Vorgehensweise: DS kopieren, Kopie hinter der alten Datenstruktur einfügen und umbenennen.

- DS kopieren TemplaVoila
Es fehlt also noch das TO. Dieses lässt sich ebenfalls kopieren und hinter das alte TO einfügen. Da das TO aber noch der unsortierten DS zugewiesen ist, müssen wir das TO bearbeiten. Dazu klickt man auf den Stift neben dem kopierten TO und weist unter der Rubrik "Datenstruktur" den die neue Datenstruktur zu. (siehe Bilder)

- Datenstruktur auswählen
Damit ist dem TO die neue Datenstruktur zugewiesen worden. Der Template-Ordner sollte nun eine 1 zu 1 Kopie von der normalen (unsortierten) DS und TO besitzen.
TypoScript der Datenstruktur bearbeiten
Da wir jetzt eine Kopie unseres normalen Templates haben, können wir diese so bearbeiten, dass der Content endlich sortiert wird. Dazu klicken wir auf "Datenstruktur bearbeiten" und bekommen den XML-Code der DS zu Gesicht.
Je nachdem wieviele Content-Container euere Datenstruktur besitzt sieht die XML-Datei unterschiedlich aus. Wichtig ist, dass ihr den richtigen Contentbereich erwischt - nämlich der, der später sortiert werden soll. Man findet die Contenteinträge unter dem Knotennamen, den man beim mappen für den Contentbereich festgelegt hat. Standardmäßig sieht das ca. so aus:
<###Knotenname### type="array">
<tx_templavoila type="array">
<title>###Name des Contents###</title>
<sample_data type="array">
<numIndex index="0"></numIndex>
</sample_data>
<eType>ce</eType>
<TypoScript>
10= RECORDS
10.source.current=1
10.tables = tt_content
10.wrap = <!--TYPO3SEARCH_begin--> | <!--TYPO3SEARCH_end-->
...
Hier sieht man, wie mit TypoScript ein RECORDS-Objekt für die Tabelle tt_content erzeugt wird, und dieses anschließend gewrapt wird.
Genau an dieser Stelle müssen wir nun eingreifen. Da sich RECORDS nicht einfach sortieren lassen, müssen wir den TypoScript-Code aus dem obigen Beispiel verwenden und den vorhandenen Code damit ersetzen. Dies sollte dann in etwa so aussehen:
<###Knotenname### type="array">
<tx_templavoila type="array">
<title>###Name des Contents###</title>
<sample_data type="array">
<numIndex index="0"></numIndex>
</sample_data>
<eType>ce</eType>
<TypoScript>
10 = CONTENT
10.table = tt_content
10.select {
pidInList = this
orderBy = header
}
10.wrap = <!--TYPO3SEARCH_begin--> | <!--TYPO3SEARCH_end-->
...
Nun kann die DS gespeichert und geschlossen werden.
Sortierung anwenden
Alle Seiten, die nun sortierten Content enthalten sollen, müssen in den Seiteneigenschaften einfach die neue Datenstruktur und das dazugehörige Templateobjekt zugewiesen bekommen.
Vorsicht: Das nachträgliche Mappen der Datenstruktur überschreibt die Änderungen am XML-Code.
















