[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