Hallo zusammen!
Ich habe mich daran gewagt eine erste eigene Erweiterung, einen Veranstaltungskalender, zu schreiben. Dazu habe ich dieses Tutorial von Tristan als Anleitung genommen. Eine aktuellere Schritt für Schritt Anleitung habe ich leider nicht gefunden. Contao läuft bei mir lokal unter XAMPP.
Das hat soweit auch ganz gut funktioniert. Meinen Ordner "Veranstaltungskalender" mit den Unterordnern "config", "dca", "languages" und "templates" hatte ich in den Ordner "htdocs/system/modules" kopiert, den Cache erneuert und die Datenbank aktuallisiert. Damit hatte ich mein Modul im Backend.
Ich konnte das Modul auch im front end einbinden. Allerdings wird das Modul nicht ausgegeben. Genauer wird die Datei "htdocs/system/modules/Veranstaltungskalender/ModuleVeranstaltungskalenderList.php" gar nicht geladen. Das habe ich mit einer Testausgabe direkt am Anfang der Datei überprüft.
Dann habe ich gelesen, dass der autoloader die Klasse finden muss also habe ich in der Datei "htdocs/composer.json" einen Abschnitt "autoload" mit psr-0 und psr-4 hinzugefügt. Den genauen Code in dem Abschnitt weiß ich nicht mehr denn danach hatte ich über den Browser keinen Zugriff mehr auf die Seite. Beim Versuch localhost oder etwas darunter aufzurufen bekam ich nur noch einen Error-403. Also habe ich das Verzeichnis "htdocs" gelehrt und Contao neu installiert.
Das Modul als Bundle zu schreiben ist mir leider noch zu kompliziert. Ich habe zwar den Vortrag von Leo Feyer dazu auf Youtube gesehen und das skeleton-bundle herunter geladen aber da gibt es doch noch ein paar Dinge die ich nicht verstehe. Auch nicht wie man das bundle am Ende installiert oder wo man es unterhalb von "htdocs" speichert. Daher würde ich es für den Einstieg gern erst einmal klein halten.
Ich will mir nicht nochmal die Contao-Installation zerschießen, daher also die Frage:
Wie muss ich also vorgehen damit meine Klasse für das front end Modul "htdocs/system/modules/Veranstaltungskalender/ModuleVeranstaltungskalenderList.php" vom autoloader gefunden und geladen wird?
Muss ich dazu zwingend die Datei "htdocs/composer.json" bearbeiten? Ich hätte gern alles was mit der Erweiterung zusammen hängt in einem Verzeichnis wenn das möglich ist. Sonst summieren sich wahrscheinlich die Einträge und Änderungen in der Datei wenn man mehrere Erweiterungen verwendet. Dann wird es schnell unübersichtlich und fehleranfällig.
Also danke schonmal für eure Hilfe!
Lesezeichen