[TYPO3-german] Extbase: Mehrere Instanzen eines Plugins auf einer Seite - Fehler Action nicht erlaubt
Dirk Wenzel
wenzel at webfox03.de
Thu Jan 24 18:26:53 CET 2013
Hallo Benjamin,
vielen Dank fürs Mitdenken und die Erklärungen.
Im konkreten Fall reicht es für mich zum Glück, dass die Default Action aufgerufen wird.
Am 24.01.2013 um 11:44 schrieb Benjamin Rau:
> Du kannst Extbase-konform ein Plugin nur global steuern.
> Das liegt ganz einfach daran dass Extbase die Werte im Request auf Basis des Prefixes Extensionname - Pluginname (tx_yourext_yourplugin) an die jeweilige Extension übergibt.
>
> Extbase wählt dann den auszuführenden Controller und Action auf Basis des Requests (tx_yourext_yourplugin[controller] und tx_yourext_yourplugin[action]).
>
> Wie man hier sieht sind diese Parameter eben für alle Instanzen eines Plugins identisch und können somit auch nicht unterschieden werden.
>
> Wir hatten vor kurzem im IRC die gleiche Problematik zu lösen.
>
> Was nicht geht ist dynamisch per Parameter die Controller und Actions der verschiedenen Plugininstanzen zu überschreiben.
>
> Was ginge wäre:
> Controller und Action per TS 'settings' für die Plugininstanz zu definieren - per Flexform.
> Diese Werte kannst du im Controller auslesen und auf Basis dessen im initializeView die Action überschreiben.
Diesen Teil verstehe ich nicht.
> Zusätzlich könnntest du, wenn weitere Argumente pro Instanz benötigt werden, diesen einen Prefix/Suffix geben.
> Hier bietet sich z.b. die ID des Contentelements an - diese ist eindeutig und pro Plugininstanz verschieden.
>
> In der Praxis könnte dass dann für eine Pagination von zwei Plugininstanzen so aussehen:
> tx_yourext_yourplugin[currentPage][242]=12
> tx_yourext_yourplugin[currentPage][532]=3
> tx_yourext_yourplugin[currentPage][532]=3&tx_yourext_yourplugin[currentPage][242]=12
>
> Auf Array-Basis funktioniert dass ganz gut - wie gesagt ist überhaupt nicht Extbase konform :)
Hm, klingt unelegant, oder?
Herzliche Grüße
Dirk
More information about the TYPO3-german
mailing list