hallo
ich möchte gern das event abfangen wenn der user ein rechnungs-pdf in der bestellung erstellt d.h. ich hätte dann auch gern die daten von der rechnung bzw. dem dokument an sich …
soweit so gut
**public function** install() { _/\* $this-\>subscribeEvent(_ _'Enlight\_Controller\_Action\_Backend\_Order\_createDocument', \<\< funktioniert nur bekomme ich keine daten_ _'getBackendController'_ _);\*/_ _// initDocument($orderID, $documentID, array $config = array())_ $this-\>subscribeEvent( **'Shopware\_Components\_Document::initDocument::before'** , \<\< wird nicht gefeuert **'beforeCreateDocument'** ); **return true** ; }
mach ich das ganze über controller events wird das ganze beim drücken des buttons gefeuert - aber die args sind leer soweit ich das sagen kann!
über einen hook beim dokument init wird das ganz gleich gar nicht ausgelöst obwohl die klasse hookable wäre - soweit ich das gesehen habe.
jemand eine idee dazu?
lg andreas
Hi,
ich fürchte bei dem Call liegt es daran, dass es statisch ist. Da greift der Hook-Proxy nicht.
Ansonsten geht vermutlich auch ein Pre- bzw. PostDispatch-Event auf \Shopware_Controllers_Backend_Order::createDocumentAction - da bekommst du über die $args->getSubject()->Request() die OrderID und den DocumentType und über $args->getSubject()->View()->getAssign() die zurück gegebenen Daten.
Daniel
1 „Gefällt mir“
hallo daniel, danke dir! das probier ich sofort aus! lg andreas
danke nochmal daniel, so funktioniert es tatsächlich - komisch den ansatz hatte ich bereits nur kam nichts zurück - allerdings kann es sein das man nicht nur den cache löschen sondern das plugin wirklich neu installieren muss und dann die änderungen erst wirksam werden! danke nochmal! $this-\>subscribeEvent( **'Enlight\_Controller\_Action\_Backend\_Order\_createDocument'** , **'onDocumentCreate'** );
**public function** **onDocumentCreate** (Enlight\_Event\_EventArgs $arguments) { $subject = $arguments-\>getSubject(); $request = $ subject -\>Request(); $request-\>get( **"orderId"** ); $request-\>get( **"documentType"** ); }
@azeiner schrieb:
danke nochmal daniel, so funktioniert es tatsächlich - komisch den ansatz hatte ich bereits nur kam nichts zurück - allerdings kann es sein das man nicht nur den cache löschen sondern das plugin wirklich neu installieren muss und dann die änderungen erst wirksam werden! danke nochmal! $this->subscribeEvent( ‚Enlight_Controller_Action_Backend_Order_createDocument‘ , ‚onDocumentCreate‘ );
public function onDocumentCreate (Enlight_Event_EventArgs $arguments) { $subject = $arguments->getSubject(); $request = $ subject ->Request(); $request->get( „orderId“ ); $request->get( „documentType“ ); }
Hallo,
es ist doch aber klar, wenn du in der install-Methode etwas änderst, das die Änderung nur beim (neu-)installieren wirksam werden können. Vor allem wenn du ein völlig anderes Event oder Hook ansprichst.
Beste Grüße
Sebastian
1 „Gefällt mir“
@sschreier schrieb:
@azeiner schrieb:
danke nochmal daniel, so funktioniert es tatsächlich - komisch den ansatz hatte ich bereits nur kam nichts zurück - allerdings kann es sein das man nicht nur den cache löschen sondern das plugin wirklich neu installieren muss und dann die änderungen erst wirksam werden! danke nochmal! $this->subscribeEvent( ‚Enlight_Controller_Action_Backend_Order_createDocument‘ , ‚onDocumentCreate‘ );
public function onDocumentCreate (Enlight_Event_EventArgs $arguments) { $subject = $arguments->getSubject(); $request = $ subject ->Request(); $request->get( „orderId“ ); $request->get( „documentType“ ); }
Hallo,
es ist doch aber klar, wenn du in der install-Methode etwas änderst, das die Änderung nur beim (neu-)installieren wirksam werden können. Vor allem wenn du ein völlig anderes Event oder Hook ansprichst.
Beste Grüße
Sebastian
hi sebastian
ja das weiß ich jetzt auch bei allen anderen teilen war es mit cache löschen erledig! anyhow - es funktioniert so wie es soll danke auf jedenfall!
lg andreas