[TYPO3-german] Extbase: Mehrere Instanzen eines Plugins auf einer Seite - Fehler Action nicht erlaubt

Robert Schneider r.schneider at artworx.at
Thu Jan 24 14:49:15 CET 2013


Danke. Aber eigentlich habe ich im Moment gar nicht das Problem. Es kam 
mir zwar auch schon unter, aber ich habe es halt mit zwei Plugins 
gelöst. Ist halt nicht so super - es könnte ja sein, dass man die selbe 
Funktionalität halt einfach mehrfach auf einer Seite braucht. Wenn man 
dann dann redundanterweise das Plugin zehn Mal kopiert hat, ist das 
wirklich nicht so schön. In meinem Fall war es aber in Ordnung.

Vielleicht ist dein ja Vorgehen sinnvoller. Kann das aber nicht so 
beurteilen. Bin nicht so der Crack...


Am 24.01.2013 11:44, schrieb Benjamin Rau:
> Hallo Dirk.
>
> Vorweg: Mögliche technische Ungenauigkeiten oder falsches Vokabular sei mir bitte verziehen :)
>
> 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.
>
> 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 :)
>
> Vielleicht findest du im IRC #extbase ja den Betroffenen User der das vor wenigen Wochen für sich umgesetzt hat - und er kann den Code vllt weitergeben.
>
> Gruß Benny
>
>
> Mit freundlichen Grüßen
> Best regards
>
> Benjamin Rau
> codearts
>
> Am 24.01.2013 um 11:17 schrieb Robert Schneider <r.schneider at artworx.at>:
>
>> Das löst aber nur das Problem, wenn die Default-Action aber auch akzeptabel ist, oder. Wenn man eine bestimmte Action haben will, dann braucht man ein zweites Plugin, oder?
>>
>> Am 24.01.2013 09:53, schrieb Dirk Wenzel:
>>> Hi Andreas,
>>> tatsächlich, der Eintrag beschreibt dasselbe Problem und Dein Vorschlag löst es auch.
>>> Vielen Dank!
>>>
>>> For the records:
>>> Die Exceptions haben unterschiedliche Nummern im genannten Issue: #1313855173
>>> Ich verwende Extbase v4.7.7 mit TYPO3 4.7.7
>>>
>>> (Scheint ein toller Tag für Problemlösungen zu sein, gleich mal ein paar olle Bugs raussuchen ; )
>>> Herzliche Grüße
>>>
>>> Am 24.01.2013 um 09:36 schrieb Andreas Kiessling:
>>>> das liest sich wie das Problem: http://forge.typo3.org/issues/31322
>>>>
>>>> Probier mal:
>>>> plugin.tx_myplugin.mvc.callDefaultActionIfActionCantBeResolved = 1
>>>>
>>>> HTH,
>>>
>>>
>>
>> _______________________________________________
>> TYPO3-german mailing list
>> TYPO3-german at lists.typo3.org
>> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
>>
>



More information about the TYPO3-german mailing list