Hallo,
ich frage mich wie ich am besten einen Controller mit mehreren Aktionen versehen kann. Ich hab zum Beispiel Vereinsdaten. Die Bestehen aus Mitgliedsnummern, Vorname, Namen und Abteilungen. Diese Daten kann ich auflisten (Aktion list) oder eine Einzelansicht (Aktion detailview) machen. Nun möchte ich zum Beispiel noch bei der Auflistung die Ergebnisse einschränken und somit über mehrere Seiten verteilen.
Wie geht man hier am Besten vor?
Du kannst ja beliebig viele Actions in einen Controller unterbringen. Was du willst ist Pagination und Filtering. Für Pagination gibt es einen Viewhelper. Wie man das Filtern angeht kannst du z.B. mal bei "news" angucken.
Mal ne zustätzlich Frage:
Die Urls in Extbase sind ja ungefähr so aufgebaut:
index.php?id=162&&tx_sjroffers_list%5Baction%5D=index&tx_sjroffers_list%5Bcontroller%5D=Offer
Ich möchte die Datensätze jetzt einschränken.
Ohne TYPO3 würde das evtl so aussehen:
localhost/index.php?action=index&controller=offer&limit=20
In Extbase müsste der Zusatz so aussehen:
tx_sjroffers[limit]=20
Wie kann ich den a) Den Zusatz in Fluid erzeugen und vor allem wie auswerten?
In Fluid sieht ja normal ein Link so aus:
<f:link.action action="list">list</f:link.action>
Da müsste ja noch mein Limit irgendwo aufgenommen werden?
Wie sollte das Extbase-Konform funktionieren?
Ok.
Die URL kann ich so in Fluid erzeugen:
<f:link.action action="list" arguments="{argument: 'beispiel'}">list</f:link.action>
Mein Problem ist jetzt nur noch wie ich sauber an den Parameter von argument rankomme.
Ich bin mir nicht sicher ob es das ist was du meinst?
aber vllt hilft es
/**
* action list
*
* @param integer $argument
* @return void
*/
public function listAction($argument) {
var_dump($argument);
}
An die Parameter kommst du mit folgendem Code:
$this->request->getArgument('argument');