Hallo, Ich steige gerade in die Backend Programmierung von Shopware ein. Ich möchte ein komplexes Plugin programmieren, um eine Partnershop Verwaltung zu realisieren. Es harkt allerdings schon an den Ansätzen. Ich habe es geschafft im Shopware Backend einen neuen Menupunkt+Unterpunkt zu erstellen, jetzt habe ich einfach das Problem, das ich nicht weiß wie ich über den Untermenüpunkt eine Action aufrufe. Die Struktur meiner Menupunkte in der s_core_menu sieht wie folgt aus: hauptpunkt: Partnershops 1. Unterpunkt: Anlegen openAction(‚PartnerShops‘) 2. Unterpunkt: Anzeigen loadAction(‚anzeigen‘) Hab jetzt hier nur die relevanten Daten geschrieben. Das funktioniert auch soweit, nur beim Aufrufen des 2. Unterpunktes kommt immer der Fehler „controller nicht gefunden“. Ich zeige euch hier nochmal die PartnerShops.php(Controller): [code]<?php class Shopware_Controllers_Backend_PartnerShops extends Enlight_Controller_Action {
public function init(){
$this->View()-\>addTemplateDir(dirname(\_\_FILE\_\_).'/templates/'); } public function indexAction(){ $this-\>View()-\>loadTemplate('index.tpl'); } public function skeletonAction(){ $this-\>View()-\>loadTemplate('skeleton.tpl'); } public function anzeigenAction(){ $this-\>View()-\>loadTemplate('anzeigen.tpl'); } } [/code] Welches Attribut muss ich dem 2. Unterpunkt geben damit dieser die richtige Methode anzeigen vom Controler lädt? Wenn ich zum Beispiel ins Template [partnershops anzeigen]({url action=anzeigen}) schreibe, funktioniert dieses auch. Ich hoffe ich konnte mein Problem einigermaßen deutlich schildern, vielen Dank :)
Einfach beim zweiten openAction(‘PartnerShops’,‘anzeigen’);
1 „Gefällt mir“
Huhu, habe die DB Einträge wie du gesagt hast geändert, funktioniert leider noch nicht(es passiert einfach gar nichts wenn ich auf den button drücke), hier mal der Ausschnitt aus den relevanten Datein anzeigen.tpl [code] {extends file=“backend/index/parent.tpl”} {block name=“backend_index_body_inline” append} Hallo Welt
rsafas
{/block} [/code] Partnershops.php [code]<?php class Shopware_Controllers_Backend_PartnerShops extends Enlight_Controller_Action {
public function init(){
$this->View()-\>addTemplateDir(dirname(\_\_FILE\_\_).'/templates/'); } public function indexAction(){ $this-\>View()-\>loadTemplate('index.tpl'); var\_dump(Shopware()-\>Front()-\>Request()-\>getPost('target\_action');); } public function anzeigenAction(){ $this-\>View()-\>loadTemplate('anzeigen.tpl'); } public function anlegenAction(){ $this-\>View()-\>loadTemplate('anlegen.tpl'); } public function skeletonAction(){ $action = Shopware()-\>Front()-\>Request()-\>getPost('target\_action'); $this-\>View()-\>assign('action', strtolower($action)); $this-\>View()-\>loadTemplate('skeleton.tpl'); } } [/code] skeleton.tpl [code] { "init": { "title": "{s name='WindowTitle' force}Neuer Partnershop{/s}", "width": 900, "height": 650, "id": "coupon", "minwidth": 800, "minheight": 650, "content": "", "loader": "action", "url": "{url action=$action|escape:'javascript'}", "help": "http://www.shopware.de/wiki/Hilfe:Artikel#Cross-Selling" } } [/code] DB Struktur [code] 124 0 Partnershops ico customer 0 1 41 125 124 Anlegen openAction('PartnerShops') background-position: 5px 5px; ico2 user\_add 0 1 41 126 124 Anzeigen loadAction('PartnerShops','anzeigen') background-position: 5px 5px; ico2 user\_add 0 1 41 [/code]