Hallo, ich arbeite gerade an einem Zahlungsplugin, bin aber leider relativer Neuling im Bezug auf Shopware. Zum Glück gibts ja hierfür einige Tutorials auf die ich zurückgreifen kann. Ich erstelle in der Bootstrap.php via createPayment() eine weitere Zeile mit meiner eigenen Bezahlung. Leider wird bei Wechsel auf die Bezahlart der Frontend Controller nicht aufgerufen. Wenn ich hinter meiner url den Namen meines Controllers eingebe reagiert dieser jedoch. Was mache ich falsch? Auszüge aus der Bootstrap: public function install() { $this-\>registerEvents(); $this-\>createPayment(); return true; } public function registerEvents() { $event = $this-\>createEvent( 'Enlight\_Controller\_Dispatcher\_ControllerPath\_Frontend\_MeinController', 'onGetControllerPathFrontend'); $this-\>subscribeEvent($event); } public static function onGetControllerPathFrontend(Enlight\_Event\_EventArgs $args) { return dirname(\_\_FILE\_\_) . '/Controllers/Frontend/MeinController.php'; } public function createPayment() { try { $paymentRow = Shopware()-\>Payments()-\>createRow(array( 'name' =\> 'myController', 'description ' =\> 'Ich bin ein Test Controller', 'template' =\> '', 'additionaldescription' =\> 'Test Frontend Controller Entwicklung', 'action' =\> 'MeinController', 'active' =\> 1, 'position' =\> 0, 'pluginID' =\> $this-\>getId() ))-\>save(); } catch(Exeption $e) { error\_log($e); } return true; }
Hier die Controller Klasse: [code] class Shopware_Controllers_Frontend_MeinController extends Shopware_Controllers_Frontend_Payment { public function init() { $this->View()->addTemplateDir(dirname(__FILE__) . ‘/…/…/Views/’); } public function indexAction() { error_log(’------> ##### Test Controller in indexAction Methode!!! ###### ##### Payment Shortname: ’ . $this->getPaymentShortName() . ’ #####
Schau dir mal das kostenlose Plugin Swag cookie permission an. Dort wird ein Controller verwendet. Ich hatte auch extreme Probleme einen Controller zum laufen zu bringen (gleiches Problem: Controller-Action wurde nicht aufgerufen) und die Analyse von dem Plugin hat mir eine funktionierende Lösung gebracht.