Hallo,
ziemlich langer Titel aber weiß gerade nicht wie ich das Problem sonst beschreiben soll.
Zum Problem ich bastle gerade an einer Extension die zwei Sachen macht zum einen gibt sie eine Liste mit Daten aus z.B. Addressdaten zum anderen kann man in diesen Daten suchen.
Dafür habe ich zwei Controller und zwei Plugins erstellt.
Plugin 1: generiert die Listenansicht
Plugin 2: stellt ein Suchformular zur Verfügung
Als ich jetzt die beiden Plugins auf der Seite eingebunden habe P1 in Normal Spalte
P2 auf der rechten Seite sah alles noch ok aus die Liste wurde generiert und wenn ich in der Suche etwas eingegeben habe wie den Ort wurde mir ein Ergebnis geliefert.
Als ich jetzt aber die Daten aus der Liste bearbeiten wollte und auf Speichern geklickt habe kam auf einmal eine komische Fehlermeldung.
An action "searchAction" does not exist in controller "Tx_MyExt_Controller_AddressController".
Das ist einerseits logisch da sich die searchAction im Controller Service befindet andererseits auch komisch, da wenn ich mir die Formulardaten ansehe sehe ich diese Action darin nicht sondern den korrekten Aufruf action="listAddress" controller="Address"
Ich würde jetzt gern wissen an welcher Stelle sich die beiden Plugins beißen zumal die sich in unterschiedlichen Formularen befinden. Eventuell mache ich was falsch ohne es mitzubekommen.
Danke schon mal im Voraus
Grüße typonewbe
Hallo,
ok erstmal die gute Nachricht die Fehlermeldung ist weg lag in der Action die fürs speichern zuständig ist da wurde an eine falsche Action weitergeleitet.
Nun hab ich aber das Problem, das die Addressdaten nicht nur im View listAddress
sondern die wird jetzt auch in search reingeschrieben hääääääää???
Wie das? Der redirect wird von mir so aufgerufen.
$this->redirect('listAddress', 'Address', 'MyExt', NULL, $pid);
Also ich kann da beim besten Willen nicht erkennen wie die Daten an die searchAction weitergegeben werden.
Eventuell hat ja dazu jemand ne Idee.
Grüße typonewbe
Na ja,
wenn ich annehme, dass beide Controller in der gleichen Extension definiert sind, dann erscheint mir das als sehr logisch.
Du kannst ja leider Controller/Action nicht auf ein ContentElement/Instanz deiner Extension festlegen, also wird auf beiden Instanzen der gleiche Controller aufgerufen.
Tip: zwei verschiedene Extension definieren oder mit switchableControllerActions arbeiten. Wenn dann in der FilterExtension die Controller/Action Kombination des anderen Plugins nicht definiert ist, dann wird die defaultKombination gewählt, was dann das anzeigen des Filters sein sollte.
Gruß
Daniel
EDIT: Ich sehe gerade, dass du oben schreibst, du hast zwei Plugins definiert. Das ist dann nnatürlich seltsam. Hast du in dem FilterPlugin eventuell den ListController mit definiert?
Hi,
konnte das Problem mitlerweile lösen. Es war wohl ein Annahmefehler von mir der dann dazu führte.
Ich hatte nach dem das Plugin mit der listAddressAction funktionierte mich an das zweite gemacht.
Als ich dieses dann eingebunden habe funktionierte das nicht richtig und schmiss mich immer auf die Startseite. Dieses Phänomen hatte ich schon einmal beobachtet das passierte immer dann wenn ich die Action nicht registrierte. Also dachte ich ich müsste die searchAction auch in dem Plugin registrieren in dem listAddress liegt und genau das war der hacken. So wie es aussieht wird bei einem redirect alles durchlaufen und hat damit den zurückgegeben View auch an die search weitergeleitet wird (warum auch immer).
Nachdem ich in den beiden Plugins nur die dafür zuständigen Actions registriert hatte klappte es und nur der listAddress View wurde überschieben das andere Plugin blieb so wie es war.
Danke für deine Antwort eventuell hilft mein Text ja jemanden der mal vor dem selben Rätzel steht 🙂
Gruß typonewbe