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 ?
Lös das doch über JavaScript, z.B. so: http://www.kryogenix.org/code/browser/sorttable/
Dann muss die Seite nicht jedes Mal neu geladen werden.
Oder geht das nicht, wegen Paginierung oder so?
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 🙁
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
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 ?!