hi, geh gerade das Tut “Entwicklung von Backend-Modulen” durch. bei der installation kommt folgender fehler: [quote] You’re trying to decode an invalid JSON String: Fatal error: Cannot override final method Shopware_Components_Plugin_Bootstrap::getName() in C:\xampp\htdocs\engine\Shopware\Plugins\Local\Backend\SwagCustomerBasket\Bootstrap.php on line 64 [/quote] ich mach das jetzt so: $parent = $this-\>Menu()-\>findOneBy('label', 'Marketing'); if (!$parent) { throw new Enlight\_Controller\_Exception ('cant find menuenty Marketing!'); } $item = $this-\>createMenuItem(array( 'label' =\> 'Reporting', 'class' =\> 'sprite-ui-scroll-pane-detail', 'active' =\> 1, 'controller' =\> 'Reporting', 'parent' =\> $parent, 'style' =\> 'background-position: 5px 5px;' ) ); $this-\>Menu()-\>addItem($item); $this-\>Menu()-\>save();
nur leider wird mir kein menü unter marketing angezeigt. was stimmt da nicht?
Ich habe dasselbe Problem. Dein erstes Problem habe ich einfach gelöst, indem ich die getName Funktion entfernt habe, und folgenden Code hinzugefügt habe: public function \_\_construct() { parent::\_\_construct('SwagCustomerBasket'); }
Hierdurch erhält man per getName den entsprechenden Namen. Hast du das Ganze denn jetzt schon zum Laufen bekommen? Bei mir funktioniert es noch nicht einmal mit den Beispieldatein die unten zum Download angegeben werden…
$this-\>createMenuItem(array( 'label' =\> 'Bonus-System', 'controller' =\> 'BonusSystem', 'class' =\> 'sprite-point', 'action' =\> 'Index', 'active' =\> 1, 'parent' =\> $this-\>Menu()-\>findOneBy('label', 'Marketing') ));
Ihr müsst den “action” Parameter setzen - also einfach auf “Index”.
Hey Stefan, vielen Dank für deine schnelle Antwort. Leider war dies nicht die Lösung. Ich verwende das Bespiel-Plugin aus dem zuvor erwähnten Tutorial. Im Folgenden sieht man die Anpassungen, die ich vorgenommen habe. public function \_\_construct() { parent::\_\_construct('SwagCustomerBasket'); } public function install() { $event = $this-\>createEvent( 'Enlight\_Controller\_Dispatcher\_ControllerPath\_Backend\_CustomerBasket', 'onGetControllerPathBackend' ); $this-\>subscribeEvent($event); $parent = $this-\>Menu()-\>findOneBy('label', 'Artikel'); $item = $this-\>createMenuItem(array( 'label' =\> 'SwagCustomerBasket', 'class' =\> 'sprite-ui-scroll-pane-detail', 'active' =\> 1, 'action' =\> 'Index', 'controller' =\> 'CustomerBasket', 'parent' =\> $parent, 'style' =\> 'background-position: 5px 5px;' )); $this-\>Menu()-\>addItem($item); $this-\>Menu()-\>save(); return true; } // public function getName() // { // return "SwagCustomerBasket"; // }
Nur erscheint es leider nach wie vor nicht im Artikel Tab…
Okay, nach das Plugin ist nun nach einem relogin in der Navigation erschienen, allerdings passiert nichts wenn man es anklickt…
Edit: Nach einem weiteren Login funktioniert nun alles perfekt! Vielen Dank nochmal!
geht auch bei mir. es hat wohl nur die action gefehlt und neu anmelden. danke.
Hallo ich erhalte bei der Plugin Installation ebenso diese Exception: You’re trying to decode an invalid JSON String: Fatal error: Uncaught exception ‚Zend_Json_Exception‘ with message ‚Decoding failed: Syntax error‘ in … Habe die neuste shopware 403 Installiert und das Plugin SwagCustomerBasket nach Download im Plugin- Verzeichnis eingehangen. Habe auch in der Bootstrap.php in der Methode createMenuItem das Feld ‚action‘ => ‚Index‘ ergänzt nur leider hat es nicht den Erfolg gebracht wie bei euch… Irgend eine Idee?
Hallo, die Lösung für den json parser error liegt in der deaktivierung der Konstante: magic_quotes_gpc in der php.ini …
Hallo zusammen, wir sind gerade dabei unser ersten Plugin für die Version 4 zu entwickeln. Leider scheitert es bereits bei der Installation des Beispiel Moduls. http://wiki.shopware.de/Entwicklung-von … 8_716.html Wenn ich das Modul per FTP hoch lade kann ich es zwar aktivieren aber dann erscheint kein Menü Item. Leider funktioniert es bei mir auch nicht nach Logout und erneutem Login. Wir verwenden Version 4.0.4 Viele Grüße
Hallo zusammen, für alle weiteren, die da evtl. noch ein Problem haben probiert bitte mal folgendes aus, das hat mir zumindest geholfen: Alt: public function getName() { return "SwagCustomerBasket"; }
Durch folgendes ersetzen: public function getLabel() { return "SwagCustomerBasket"; }