Ich möchte im Backend auf der Artikel Detailseite einen neuen Reiter haben. Also habe ich ein Modul Verzeichnis mein_reiter angelegt und darin eine entsprechende menu.xml abgelegt. Dann eine article_mein_reiter.php im Verzeichnis application/controllers/admin und die entsprechende article_mein_reiter.tpl im Verzeichnis application/views/admin/tpl abgelegt. Das funktioniert so weit.
Nur gehören die .php und die .tpl Datei wirklich dort hin? Müssten die nicht eigentlich unterhalb von modules/mein_reiter stehen? Ich habe leider keine Ahnung, wie ich dann die metadata.php anpassen muss, damit die beiden Dateien aus dem modules Verzeichnis gelesen werden. Könnte mir jemand den entsprechenden Code liefern?
Hallo JensHH,
ich würde an deiner stelle aus dem Github (OXID eSales) ein paar Module herunterladen und mir Struktur anschauen. So wirst schneller lernen wie die Struktur aufgebaut werden muss.
Das hilft, denn es funktioniert nicht. Es hilft, weil die Fehler offensichtlich sind und ich in die gleichen Fallen getappt bin.
Ich habe die zip Datei entpackt und in das modules Verzeichnis kopiert. Dann noch das Modul aktiviert. Was war zu sehen? Unterhalb von Stammdaten gab es einen neuen Link. Ein klick auf den Link brachte meine Homepage innerhalb des Backends zum Vorschein. Gut, dachte ich, dass kenne ich ja von meinen Versuchen, da ist dann ein Pfad nicht richtig. Ein Blick in die Metadata.php zeigte dann, dass alle Links auf “demo-admin-module” verweisen. Das Modul Verzeichnis heißt aber “demo-admin-module-[B]master[/B]”. Toll. Hab ich also die Pfade in der Metadata.php angepasst und mir das Ergebnis angeschaut. Kein Unterschied.
Keine Ahnung, warum ich das Modul deaktiviert, mich ausgeloggt, mich wieder eingeloggt, das Modul wieder aktiviert und mir dann das Ergebnis noch einmal angeschaut habe und das Nachts um 12. Jedenfalls bekam ich danach eine ordentliche Fehlermeldung. Ich habe zwar aus dem OXID Kochbuch das Modul installiert, mit dem man sämtliche Caches komfortabel löschen kann, wenn man aber einmal ein Modul geladen hat, werden Änderungen in der Metadata.php nie wieder gelesen und einige andere Änderungen scheinbar auch nicht.
Die besagte Fehlermeldung sagte so etwas wie, custom_admin_class_ext_parent finde ich nicht. Nun, wie auch. Wenn man auf den Link klickt, wird custom_admin_class aufgerufen.
class custom_admin_class extends oxAdminView
und dann gibt es noch
class custom_admin_class_ext extends custom_admin_class_ext_parent
Das muss aber
class custom_admin_class_ext extends custom_admin_class
heißen. Jetzt noch einmal Modul deaktivieren, ausloggen, einloggen, aktivieren und dann freuen.
Was mir bislang nicht klar und was ich bis heute nirgendwo gelesen habe ist, dass Änderungen am Modul nicht unbedingt sofort sichtbar sind. Für die Modul Entwicklung ist das suboptimal. Daher meine Frage, wie geht das besser, das Änderungen an einem Modul direkt ankommen.