ExtJS-Fehler in Backend-Plugin anzeigen

Hallo Leude,

das Grundlagen-Tutorial zur Erstellung von Backend-Komponenten macht mich stutzig:

Eigentlich sollte in der Debug Console (Ich vermute, damit ist die Browserkonsole gemeint.) eine Fehlermeldung erscheinen, doch in meinem Chrome (Version 59.0.3071.115 unter Windows 10 64 Bit) wird nichts angezeigt.

Meine Testumgebung (Shopware 5.2.26) läuft auf einem Linux-Server. Die config.php ist wie in der Dokumentation vorgegeben konfiguriert. Debug-Plugin und Webug-Extension habe ich installiert und aktiviert.

Was übersehe ich?

Hallo,

 

wenn keine Fehler kommen, dann heißt das wohl, dass deine ExtJS Erweiterung gar nicht aktiv ist. Hast Du die Hauptdatei wie in dem Tutorial beschrieben auch in Smarty Blöcke gepackt, bzw. die unterschiedlichen Dateien via Smarty inkludiert?

Bist du auch 100% sicher, dass die Dateien im richtigen Pfad liegen? Pfade sind ein elementar wichtiges Thema bei Shopware. Wenn die nicht stimmen, dann kann auch Deine Erweiterung nicht gefunden werden.

 

 

MFG

 

derwunner

Hi derwunner,

das Plugin verhält sich wie erwartet bis zu den beschriebenen „letzten 25 %“; bis dahin ist der Code also in Ordnung.

Wenn ich allerdings das Stift-Icon anklicke, erhalte ich eben keine Fehlermeldung.

Ich vermute, hier liegt ein Konfigurationsproblem vor: Shopware scheint JavaScript-Fehler irgendwo abzufangen.

Hast Du die Hauptdatei wie in dem Tutorial beschrieben auch in Smarty Blöcke gepackt, bzw. die unterschiedlichen Dateien via Smarty inkludiert?

Höh? Im verlinkten Tutorial tauchen keine Smarty-Anweisungen auf.

Achso verstehe, bei Dir erscheint die Fehlermeldung nicht, dass detailWindow fehlt.

Vielleicht erstmal grundsätzlich: Nein, Shopware fängt keine Fehlermeldungen / Exceptions ab.

Dass das bei nicht nicht kommt, liegt eher daran, dass dein click Event nicht ausgelöst wird, bzw. nicht funktioniert. Prüfe doch mal, ob bei den Klick auf einen Löschen Button überhaupt etwas passiert. Am leichtesten kann man das überprüfen, indem man mal ein

console.log("löschen geklickt!");

im Event Listener einbaut. Erscheint die Meldung nicht in der Browser Console, dann wird auch nie der Event Listener aufgerufen.

 

Zu den Smarty Blöcken: Ja sorry, hatte mir das vorhin nicht so genau durchgelesen. Ist im Endefffekt eh immer der selbe Brei im Backend. Smarty liest auch über jede JavaScript Datei drüber, ob darin eventuell Smarty relevante Audrücke enthalten sind. Es empfiehlt sich also, großzügig um JavaScript ein {literal}{/literal} zu schreiben. Denn das führt dazu, dass alles was dazwischen steht vom Smarty Compiler ignoriert wird. Wenn Du also mal komische Fehlermeldungen hast, oder dein Backend Widget funktioniert plötzlich nicht mehr, dann liegt das meistens daran, dass Smarty versucht Sachen zu kompilieren, die eigentlich JavaScript Code sind. Also wenn Du sicher bist, dass Du in einem gewissen Abschnitt keine Übersetzungen, Inkludierungen usw. brauchst, dann umschließe das besser mit dem literal, vermeidet komische Fehler vor vorne herein.

 

 

MFG

 

derwunner

Achso verstehe, bei Dir erscheint die Fehlermeldung nicht, dass detailWindow fehlt.

Genau! :slight_smile:

Dass das bei [dir] nicht kommt, liegt eher daran, dass dein click Event nicht ausgelöst wird, bzw. nicht funktioniert.

Das Click-Event für den Löschen-Befehl kommt durch. (Das hatte ich schon wegen einem anderen Problem geprüft.)

Es empfiehlt sich also, großzügig um JavaScript ein {literal}{/literal} zu schreiben.

Den Tipp hätte ich vor ein paar Tagen gebrauchen können. :smiley: Im vorangegangenen Tutorial tritt nämlich im 2. Beispiel das von dir beschriebene Verhalten im Zusammenspiel der app.js und der my_custom_tab.js auf.

Smarty scheint hier nicht das Problem zu sein: Ich habe alle JS-Dateien ohne Smarty-Variablen mit den Literal-Tags umschlossen.

Puh, schwierig. Dazu müsste man den Code sehen, das kann man so nicht mehr sagen. Poste doch bitte mal den Code, genauso wie Du ihn hast.

Ich verwende den Code aus dem Tutorial.

PS:

Ich versuche gerade, ein eigenes Backend-Plugin zu schreiben und dabei liefen mir schon einige ExtJS-Fehler über den Weg. Meine ursprüngliche Befüchtung, dass ich keine derartigen Fehlermeldungen erhalte, war also unbegründet. Für mich ist das Thema daher vorerst abgehakt.

Vielleicht wurde die Fehlerbehandlung bei Events in neuen Shopware-Versionen angepasst? Da werde ich ggf. nachforschen.

Bitte verwende deine Zeit nur weiter auf das Problem, falls es dich selber interessiert. Danke für dein Feedback! :slight_smile: