Moin @hoppler,
du hast da ein paar Sachen durcheinander geworfen.
-
Dein Controller sollte hier liegen: \Mein_Plugin\Controllers\MeinController.php oder \Mein_Plugin\Controllers<u>Frontend
Warum das? Ist einfach eine Konvention - musst du jetzt aber nicht zwingend beachten und ist für die Funktionalität deiner Anwendung erstmal nicht wichtig. -
Deine Template Dateien sollten alle hier liegen: \Mein_Plugin\Views\frontend\mein_controller\
Warum?
Shopware Frontend Controller besitzen eine Art Template Autoloading - das heißt, dass eine Controller-Action eines Frontend Controllers immer auch von allein nach einem Template sucht.
Die Suche nach dem passenden Template findet unter folgenden Gesichtspunkten statt:
- Es werden alle Template-Verzeichnisse in Anbetracht gezogen (Deswegen fügst du in der init-Methode auch per „addTemplateDir“ deinen eigenen Views Ordner hinzu)
- Er sucht innerhalb der Template-Verzeichnisse nach dem richtigen Module, in diesem Fall nach einem Ordner namens frontend/ , weil du einen Frontend-Controller hast. Wäre es ein Backend Controller, würde er stattdessen nach einem Ordner „backend/“ suchen.
- Anschließend erwartet er einen Ordner, der so benannt ist wie dein Controller, bloß in im sogenannten SnakeCase. Das bedeutet, dass aus deinem Controller Namen „MeinController“ anschließend „mein_controller“ wird. Er sucht also nach einem Ordner mein_controller/.
- Zu guter Letzt sucht er nach einer Template Datei, die nach deiner Action benannt ist. In deinem Fall eine addAction. Er lässt das „Action“ weg und sucht somit nach einer add.tpl
Zusammenfassend: Die Templates für deine indexAction / addAction müssen hier liegen: \MeinPlugin\Views\frontend\mein_controller\ und dort dann jeweils index.tpl und add.tpl.
Soweit erstmal klar?
Da du dich nun auf das Template Autoloading stützt, kannst du deine indexAction auch löschen.
Warum das jetzt? Alles, was deine IndexAction bislang macht, ist ein Template manuell zu laden. Brauchst du jetzt ja nicht mehr, wenn du das Autoloading für die Templates nutzt.
Ist das verständlich?
Dann dürfte deine addAction auch vernünftig funktionieren und ein vernünftiges Template anzeigen.
Immer wieder werde ich auf: /Mein_Shop/Meincontroller/add weitergeleitet wo eine leere Seite ist.
Bis auf die leere Seite, die mit o.g. Weg auch nicht mehr weiß sein dürfte, ist die Weiterleitung als Solches ja auch erstmal korrekt.
Ich hoffe damit kommst du erstmal weiter.
Gruß,
Patrck