Core.Error: 'Action "Frontend_Listing_olcwhatispaypalAction"

Hallo ich bekomme sporadisch die folgende Fehlermeldung: core.ERROR: exception ‚Enlight_Controller_Exception‘ with message ‚Action „Frontend_Listing_olcwhatispaypalAction“ not found failure‘ in /var/www/…/engine/Library/Enlight/Controller/Action.php:389 Ich arbeite aktuell mit der Version 4.3, das Problem war aber auch schon vorher da. Hat jemand ne Idee, woran das liegen könnte ? Hier der Stack-Trace: #0 /var/www/…/engine/Library/Enlight/Controller/Action.php(159): Enlight_Controller_Action->__call(‚olcwhatispaypal…‘, Array) #1 /var/www/…/engine/Library/Enlight/Controller/Action.php(159): Shopware_Proxies_ShopwareControllersFrontendListingProxy->olcwhatispaypalAction() #2 /var/www/…/engine/Library/Enlight/Controller/Dispatcher/Default.php(528): Enlight_Controller_Action->dispatch(‚olcwhatispaypal…‘) #3 /var/www/…/engine/Library/Enlight/Controller/Front.php(228): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp)) #4 /var/www/…/engine/Shopware/Kernel.php(141): Enlight_Controller_Front->dispatch() #5 /var/www/…/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/HttpCache.php(472): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #6 /var/www/…/engine/Shopware/Components/HttpCache/AppCache.php(256): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL) #7 /var/www/…/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/HttpCache.php(429): Shopware\Components\HttpCache\AppCache->forward(Object(Symfony\Component\HttpFoundation\Request), true) #8 /var/www/…/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/HttpCache.php(329): Symfony\Component\HttpKernel\HttpCache\HttpCache->fetch(Object(Symfony\Component\HttpFoundation\Request), true) #9 /var/www/…/engine/Shopware/Components/HttpCache/AppCache.php(178): Symfony\Component\HttpKernel\HttpCache\HttpCache->lookup(Object(Symfony\Component\HttpFoundation\Request), true) #10 /var/www/…/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/HttpCache.php(193): Shopware\Components\HttpCache\AppCache->lookup(Object(Symfony\Component\HttpFoundation\Request), true) #11 /var/www/…/engine/Shopware/Components/HttpCache/AppCache.php(113): Symfony\Component\HttpKernel\HttpCache\HttpCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #12 /var/www/…/shopware.php(109): Shopware\Components\HttpCache\AppCache->handle(Object(Symfony\Component\HttpFoundation\Request)) #13 {main}

Hast du einen content mit der Überschrift „What is Paypal“? Viele Grüße

nicht direkt… irgendein Template zieht das Paypal Logo an. Auszug aus dem Html-Inspector: [code]

Logo 'PayPal empfohlen'[/code] Da ich kein Template lokalisieren konnte wird das wohl dynamisch aufgebaut. Da scheint auch irgendwie das Default-Plugin SwagPaymentPaypal mitzuspielen…

Also nach einigen Stunden nervenaufreibender Suche hab ich gefunden, wo das herkommt: Die SW-Erweiterung ‘Paypal Payment’ erweitert in der Bootstrap.php den Template-Block ‘frontend_index_left_campaigns_bottom’, den man in der Plugin-Config definieren kann. Die Bootstrap hängt an diesen Block die Datei /Views/frontend/payment_paypal/logo.tpl". In der logo.tpl steht:

[code]

Logo 'PayPal empfohlen'

PayPal. Sicherererer.

[/code]

Nun ist klar wo das herkommt, aber ich hab noch immer keinen Schimmer, was das Problem ist ?

An dieser Stelle passiert nur etwas, wenn jemand auf das PayPal-Logo klickt. Dann öffnet sich ein Fenster mit dem Namen ‘olcwhatispaypal’. Irgendwer macht aus dem Fensternamen eine Action, die aber nicht existiert ?

Was passiert da ? und warum ?

Niemand eine Idee, woran das liegen könnte ? Dann muß ich wohl nen Bug einstellen …

Du kannst eigentlich davon ausgehen, dass Suchmaschinen hier einfach nur ungültige URLs aufrufen (das hatten wir in der Vergangenheit ständig) - in deinem Fall zb http://www.domain.de/detail/olcwhatispaypal Ich würde ungültige actions aus dem detail controller einfach abschalten: $this-\>subscribeEvent( 'Enlight\_Controller\_Action\_PreDispatch\_Frontend\_Detail', 'onDetailPreDispatch' ); public function onDetailPreDispatch( Enlight\_Event\_EventArgs $arguments ) { // get the controller $controller = $arguments-\>getSubject(); // get the request $request = $controller-\>Request(); // valid request? if ( !in\_array( strtolower( $request-\>getActionName() ), array( "error", "index", "rating" ) ) ) { // and redirect to error $controller-\>forward( "error" ); // done return; } // and we are done return; } Viele Grüße

Ah ja… Vielen Dank … und wo bau ich das ein ? Wenn bei einer ungültigen URL ein fataler Fehler auftritt, dann sollte das doch wohl immer abgefangen werden, oder ? Der User kann sich ja mal vertippen… Im Access-Log des Webservers sehe ich einen 503 wenn ich eine falsche URL eingebe… Das zerhackt das Frontend… ist nicht so gut !

[quote=“trimension”]und wo bau ich das ein ?[/quote] In ein Plugin deiner Wahl. [quote=“trimension”]Wenn bei einer ungültigen URL ein fataler Fehler auftritt, dann sollte das doch wohl immer abgefangen werden, oder ? Der User kann sich ja mal vertippen…[/quote] Mit der obigen Lösung wird der Kunde zur standard Fehlermeldung von Shopware weitergeleitet. Du kannst das ganze natürlich erweitern und eine individuelle Meldung anzeigen. Allerdings bezweifle ich, dass ein Kunde jemals eine SEO Url manuell eintippen wird. Viele Grüße

Nochmals vielen Dank… Das hat schon mal weitergeholfen. Ich leite alles zu index um, da error bei mir ebenfalls zu ner Exception führt. Wie bekomm ich denn die Standard Shopware-Fehlermeldung ?