# Backend Programmierung --&gt; Menu() und Controller

**URL:** <https://forum.shopware.com/t/backend-programmierung-gt-menu-und-controller/1297>\
**Category:** Shopware 3.5\
**Tags:** programming\
**Created:** [8. Januar 2011 um 13:01 UTC](https://forum.shopware.com/t/backend-programmierung-gt-menu-und-controller/1297 "2011-01-08T13:01:34Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![farbplatoon](https://avatars.discourse-cdn.com/v4/letter/f/977dab/32.png) [@farbplatoon](https://forum.shopware.com/u/farbplatoon)\
**Post date:** [8. Januar 2011 um 13:01 UTC](https://forum.shopware.com/t/backend-programmierung-gt-menu-und-controller/1297/1 "2011-01-08T13:01:34Z")

</div>

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 :)
```

---

<div class="post-metadata">

**Author:** ![Stefan\_Hamann](https://avatars.discourse-cdn.com/v4/letter/s/5e9695/32.png) [@Stefan\_Hamann](https://forum.shopware.com/u/Stefan_Hamann)\
**Post date:** [10. Januar 2011 um 07:12 UTC](https://forum.shopware.com/t/backend-programmierung-gt-menu-und-controller/1297/2 "2011-01-10T07:12:40Z")

</div>

Einfach beim zweiten openAction(‘PartnerShops’,‘anzeigen’);

---

<div class="post-metadata">

**Author:** ![farbplatoon](https://avatars.discourse-cdn.com/v4/letter/f/977dab/32.png) [@farbplatoon](https://forum.shopware.com/u/farbplatoon)\
**Post date:** [10. Januar 2011 um 10:14 UTC](https://forum.shopware.com/t/backend-programmierung-gt-menu-und-controller/1297/3 "2011-01-10T10:14:06Z")

</div>

Super, danke dir 🙂

---

<div class="post-metadata">

**Author:** ![farbplatoon](https://avatars.discourse-cdn.com/v4/letter/f/977dab/32.png) [@farbplatoon](https://forum.shopware.com/u/farbplatoon)\
**Post date:** [1. Februar 2011 um 16:30 UTC](https://forum.shopware.com/t/backend-programmierung-gt-menu-und-controller/1297/4 "2011-02-01T16:30:30Z")

</div>

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]
```
