[TYPO3-german] orderBy bei rekursivem select?
bernd wilke
t3ng at bernd-wilke.net
Wed Jun 12 11:59:28 CEST 2013
Am 11.06.13 13:46, schrieb Lorenz Kirnbauer:
> mein problem: ich hole mir mit meinem select datensätze (pages) aus 2
> ebenen.
> das ergebnis ist zwar richtig - ich bekomme alle pages, die ich will -
> aber anscheinend funktioniert "orderBy = sorting" in diesem fall nicht
> wie gewünscht.
> statt dass es zuerst eine page aus der oberen ebene liefern würde und
> dann die zugehörigen pages aus der ebene drunter; dann die nächste page
> aus der oberen ebene und wieder die pages aus der ebene darunter.
>
> liefert es mir das ganze scheinbar recht "zufällig": erste page aus der
> obenen ebene, dann nur eine page aus der ebene darunter (obwohl es da
> mehr einträge geben würde). dann die zweite page aus der oberen ebene,
> danach alle weiteren pages aus der ebene zwei, egal unter welcher page
> diese im pagetree liegen.
das wird nicht unbedingt zufällig sein, aber bestimmt nicht was du haben
möchtest.
Dazu muss man verstehen wie das Feld sorting in TYPO3 benutzt wird und
welche Werte darin stehen.
ad 1: die Werte sind nicht fortlaufend (damit nicht bei jedem
Verschieben eines Elementes sofort alle Elemente neue Werte erhalten
müssen. passt irgendwann einmal ein Element nicht mehr zwischen zwei
andere werden dann einmal alle Elemente mit einem neuen Wert versehen.
ad 2: der sorting-Wert stellt ein Element nur in Bezug zu gleichen
Elementen der selben Seite.
wenn eine Seite evtl. die sorting-Werte
(10),(20),(30),(40),(50),(60),(70) hat gibt es auf der anderen Seite die
Werte {1},{2},{4},{8},{16},{32},{64}
wenn du das jetzt zusammenschmeisst ergibt sich
{1},{2},{4},{8},(10),{16},(20),(30),{32},(40),(50),(60),{64},(70)
> mein typoscript hierzu:
>
> table=pages
> select{
> pidInList={leveluid:1}
> pidInList.insertData=1
> recursive=2;
> # order by page tree position, you can set it to be title
> # or any other page field
> orderBy=sorting
> # maximum items displayed
> max=200
> }
>
>
> wahrscheinlich muss ich die beidenen ebenen der select-abfrage auch
> irgendwie beim "orderBy" berücksichtigen, um diese auch so wie gewünscht
> zu ordnen. allerdings weiß ich leider nicht wie.
du müßtest dir ein virtuelles Feld generieren, in das die die
sorting-werte der Seiten mit den Sorting-werten der übergeordneten Seite
kombinierst.
oder du arbeitest anders:
erstmal ein select der Seiten der oberen Ebene, dann jeweils ein Select
der Unterseiten der einzelnen Seite im renderObject.
bernd
--
http://www.pi-phi.de/cheatsheet.html
More information about the TYPO3-german
mailing list