Zum Inhalt springen

Sortieren einer Tabelle / Listview, hier: Reihenfolge

Erstellt am 22. Juni 2012 · 4 Antworten · letzte Antwort am 3. Juli 2012

Tags: Fluid, Frage

STV ·

Hallo,

wie kann ich denn in Extbase eine Liste ausgeben, welche über Links der <th>Titel sortiert werden können ?

Bzw: Die Sortierung funktioniert bereits, aber ich möchte jetzt, dass der User auch die Reihenfolge (ASC / DESC) aussuchen kann, indem er ein zweites Mal auf den Header Titel klickt.

Wie übergebe ich denn diesen Wert wieder an das Fluid Template ?

STV ·

Genau, ich möchte das ungern per JS lösen (eben wegen der Paginierung).

Bekomme ich denn ins Fluid-Template eine GetVar, so dass ich sie direkt in den arguments des link.action ViewHelpers nutzen kann?

Dann könnte ich mir den Rest zusammen basteln...

PS: sorry für die späte Antwort, aber die Mail vom Forum kam nicht bei mir an 🙁

boOgiE ·

spontan würde ich mal auf folgendes tippen

<f:link.action action="..." ... additionalParams="{sort:ASC}">...</f:link.action

dann kannste in der action mit

this->request->getArgument('sort')

drauf zugreifen

STV ·

Hm, aber ich möchte ja, dass JEDE Spalte eine sortierbare Kopfzeile bekommt, geht das auch mit deiner Lösung ?

Ich habe es jetzt mal so umgesetzt, ist aber für meinen Geschmack zu viel Code 😉

<f:if condition="{getSort} == 1">
<f:then>
<f:link.action action="list" arguments="{col:'address', sort:'ASC'}"><f:translate key="tx_zrproperties_domain_model_properties.address" /></f:link.action>
</f:then>
<f:else>
<f:link.action action="list" arguments="{col:'address', sort:'DESC'}"><f:translate key="tx_zrproperties_domain_model_properties.address" /></f:link.action>
</f:else>
</f:if>

Wobei eben getSort die neue Richtung angibt - und diese Condition habe ich halt für jede Zeile drin.

Jetzt wo ich darüber nachdenke: um das zu verkürzen, könnte man ja einen ViewHelper daraus machen ?!