Backend Module erstellen

Hallo Ich hab grad dieses Tutorials http://wiki.shopware.de/Backend-Module- … 3_435.html gemacht Leider ohne erfolg Anbei meine Code Bootstrap.php <?php class Shopware_Plugins_Backend_test_Bootstrap extends Shopware_Components_Plugin_Bootstrap { public function install() { /*Wenn der Backend-Controller "HelloWindow" angesteuert wird, lokale Methode: onGetControllerPathBackend aufrufen*/ $event = $this->createEvent('Enlight\_Controller\_Dispatcher\_ControllerPath\_Backend\_test', 'onGetControllerPathBackend'); $this-\>subscribeEvent($event); $parent = $this-\>Menu()-\>findOneBy('label', 'Marketing'); $item = $this-\>createMenuItem(array('label' =\> 'test','onclick' =\> 'openAction(\'test\');','class' =\> 'ico2 layout','active' =\> 1,'parent' =\> $parent,'style' =\> 'background-position: 5px 5px;',)); $this-\>Menu()-\>addItem($item); $this-\>Menu()-\>save(); return true; } public static function onGetControllerPathBackend(Enlight\_Event\_EventArgs $args) { return dirname(\_\_FILE\_\_).'/test.php'; } } ?\> test.php <?php class Shopware_Controllers_Backend_test extends Enlight_Controller_Action { public function init(){ $this->View()-\>addTemplateDir(dirname(\_\_FILE\_\_)."/templates/"); } public function indexAction(){ $this-\>View()-\>loadTemplate("backend/plugins/test/index.tpl"); } public function skeletonAction(){ $this-\>View()-\>loadTemplate("backend/plugins/test/skeleton.tpl"); } public function changeColorsAction(){ $this-\>View()-\>loadTemplate("backend/plugins/test/colors.tpl"); } } ?\> Diese zwei Dateien hab ich in Verzeichnis engine/Shopware/Plugins/Local jetzt zu die tpl index.tpl [code]{extends file=“backend/index/parent.tpl”} {block name=“backend_index_css” append} {/block} {block name=“backend_index_body_inline”}

Hello Window Ich sehe Rot! {/block}[/code] skeleton.tpl [code]{ "init": { "title": "{s name='WindowTitle' force}Hello Window{/s}", "width": 900, "height": 650, "id": "coupon", "minwidth": 800, "minheight": 650, "content": "", "loader": "action", "url": "{url action='index'|escape:'javascript'}", "help": "" } } [/code] colors.tpl [code]{extends file="backend/plugins/test/index.tpl"} {block name="backend\_index\_body\_attributes"}style="background-color:#F00"{/block}[/code] Hier hab ich ein Problem so wie in Tutorials beschrieben soll man das in Verzeichnis templates/backend/plugins/test laden leider ist bei mir in Verzeichnis Templates kein backend Verzeichnis aber in \_default da sind diese verzeichnisse drin, dann hab ich hier es hochgeladen und Installiert. Die Installation war ohne probleme, dann hab ich cache geleert und backend neu gestartet und über den menü mein test ausgeführt nun kommt diese meldung "Controller konnte nicht geladen werden" daraufhin hab ich mal in Verzeichnis templates die verzeinisse backend/plugins/test angelegt und die dateien da drauf. wieder den cache geleet und getestet leider das gleiche problem, dann hab ich deinstalliert und wieder installiert immer noch das gleiche problem wo liegt mein fehler und was muß ich tun das es läuft? Gruß DeMa

Wenn ich das richtig interpretiert habe, dann versuchst du die tpl-Files ins Template zu laden. Die gehören aber in den Ordner deines Plugins, der Ordner hiesse demnach engine/Shopware/Plugins/Local/Backend/test/templates/backend/plugins/test/*.tpl So müsste es gehen, viel Erfolg!

Hallo Danke für die Antwort hab das grad getestet leider immer noch das gleiche problem da ist bestimmt ein anderes problem gruß DeMa

hallo kann das sein das es auf shopware 3.5.5 nicht läuft? Ich kann leider kein fehler finden hab ihr eine lösung?

Lösche mal alle Proxies und versuch es noch mal. engine/shopware/proxie

Hallo, könntest du einmal einen Screen von deiner Ordnerstruktur machen? Dadurch wäre alles ein wenig übersichtlicher. Gruß, Patrick :shopware:

Hallo Das proxie hab ich gelöscht aber immer noch das gleich Problem anbei die zwei Bilder von Verzeichnisbaum Gruß DeMa

Deine Template Dateien liegen im falschen Ordner. Schieb die mal in: engien/Shopware/Plugins/backend/test/templates/backend/plugins/test/index.tpl [quote] Erstellen Sie das neue Verzeichnis templates/backend/plugins/HelloWindow unterhalb Ihres Plugin-Verzeichnisses. [/quote]

Hallo Wie du sehen kannst hab ich das Template Verzeichnis auch hier drin

Leiter ohne erfolg hab immer noch das gleiche Problem Hat einer ne Lösung? wo liegt da der Fehler gruß DeMa

Schicks mal durch, dann schau ich bei Gelegenheit mal drüber…

Hallo Danke für die Hilfe anbei der link test.zip gruß DeMa

Morgen, was mir auf die schnelle aufgafallen ist, du hast ein Komma zu viel in der Bootstrap.php $item = $this-\>createMenuItem(array( 'label' =\> 'test', 'onclick' =\> 'openAction(\'test\');', 'class' =\> 'ico2 layout', 'active' =\> 1, 'parent' =\> $parent, 'style' =\> 'background-position: 5px 5px;' , )); Nach den 5px. Evtl. war es das schon. Aber ich habe es noch nicht getestet.

Hallo Ich hab es getestet leider war das nicht der Fehler da ist ein anderen Fehler drin Gruß DeMa

Hallo, lade den Controller einmal bitte manuell, also so: http://meinshop.de/backend/test Dies gibt dir eine bessere Fehlerausgabe. Weiterhin ist mir aufgefallen, dass in deiner Bootstrap.php ein Event fehlen könnte. Erweitere die Install-Methode um folgendes Event: $event = $this-\>createEvent( 'Enlight\_Controller\_Action\_PostDispatch', 'onPostDispatch' ); und die dazugehörige Funktion: static function onPostDispatch(Enlight\_Event\_EventArgs $args) { $request = $args-\>getSubject()-\>Request(); $response = $args-\>getSubject()-\>Response(); if(!$request-\>isDispatched() || $response-\>isException() || $request-\>getModuleName() != 'backend') { return; } $view = $args-\>getSubject()-\>View(); $view-\>addTemplateDir(dirname(\_\_FILE\_\_) . '/Views/'); } Gruß, Patrick :shopware: