ich habe ein Plugin mit einem eigenen Controller geschrieben, der bei mir in mehreren Live Umgebungen sowie Test-Installationen (SW 5.4, 5.5, 5.5.10) problemlos aufgerufen werden kann. Bei der Prüfung des Plugins durch das Shopware-Team kann der Controller jedoch nicht aufgerufen werden. Deshalb wollte ich einmal fragen ob ich hier irgendwo einen entscheidenen Fehler gemacht habe.
Pfad: /MeinPlugin/Controllers/Frontend/MeinController.php
Klasse: class Shopware\_Controllers\_Frontend\_MeinController extends Enlight\_Controller\_Action
Methode: public function meineMethodeAction()
Im Template habe ich bisher den Link
/frontend/MeinController/meinemethode
zum Aufrufen des Controllers verwendet. In allen SW Versionen hat dieser Link auch funktioniert. Wenn ich nun stattdessen
im Template verwende, wird mir der Controller jedoch als
/MeinController/meineMethode
angezeigt.
Nun zur eigentlichen Frage
Muss ich (im neuen Plugin System) den Controller irgendwo explizit registrieren, oder lag es tatsächlich einfach nur daran dass der Link auf den Controller nicht über die {url} erstellt wurde? Das Plugin wurde ursprünglich für das alte Plugin System geschrieben und im Shopware Buch (Seite 141ff) musste für den Controller ja ein Event registriert werden.
Im Template einen Controller aufrufen? Sieht nach Widgets aus.
Unabhängig davon wird bei { url module=frontend controller=MeinController action=meineMethode} auch nur die URL ausgegeben. Ansonsten würde es { action module=frontend controller=MeinController action=meineMethode} sein. Aber im Moment sehe ich bei dir nicht durch.
Ich habe einen Controller, der eine PDF Datei für den Download erzeugt. Der Controller wird auf der Artikel Detailseite verlinkt. Bisher habe ich den Link auf den Controller einfach fest auf /frontend/meinController/meineMethode/ gesetzt. In meiner lokalen Entwicklungsumgebung startet nach einen Klick auf diesen Link auch wie gewünscht der Download der PDF Datei.
Ich habe das Plugin daraufhin im Shopware Store hochgeladen, bekomme jedoch in der manuellen Prüfung die Rückmeldung, dass der Link einen 404 Fehler verursacht. Deshalb meine Frage ob ich (1) den Controller explizit registrieren muss und (2) wie ich im Template korrekt auf den Controller verlinke.
Ich denke eher, dass dein Link sowas wie Virtuelle URLs und den Basepath nicht supportet. Die Testmaschinen sind meißt so aufgebaut www.meinedomain.de/sw5-test/
Vielleicht ist das schon das Problem. /frontend brauchst du eigentlich auch garnicht in der URL.