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”}
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ß DeMaSchicks 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: