Module in Contao überschreiben?
Hey, ich hätte da mal eine grundsätzliche Frage an die Entwickler unter Euch.
Und zwar möchte ich das interne Contao-Modul "Listing" (Auflistung) verändern. In meinem Fall möchte ich die Member aus tl_member im Frontend auflisten und die Details-URL soll nicht die ID im Parameter mitgeben (/?show=id) sondern den Benutzernamen aus der Datenbank (/?show=username). Nach längerem rumstöbern im Contao-Core, bin ich auf die Datei "ModuleListing.php" gestoßen. Mir ist bewusst, dass ich diese Datei nicht bearbeiten sollte. Allein wegen der Update-Sicherheit nicht. Jedoch habe ich dort womöglich eine Antwort auf mein Problem gefunden.
Ich habe in dieser Datei direkt am Anfang den strPK, also den Primary Key, von ID auf username geändert. Konnte mir herleiten das er nun nicht mehr die ID sondern den username als Schlüssel nimmt. Daraufhin konnte ich auch jeden Member mit dem URL-Parameter /?show=username aufrufen.
Meine Frage nun: Kann ich diese Datei so überschreiben, dass der Wert am Ende meinem Wunsch entspricht oder ist das für meinen Fall nicht der richtige Ansatz?
Freu mich auf Eure antworten und hoffe Ihr könnt mir weiterhelfen!
Module in Contao überschreiben?
Hast du eine entsprechende autoload.php?
Du hast zwei Möglichkeiten.
1) du überschreibst du komplette Klasse. In dem Fall ist es nicht nötig das FE Modul neu zu registrieren. Dann musst du nur den entsprechenden Eintrag in deiner autoload.php haben. Hier kannst du dann einfach die original Klasse in dein Verzeichnis kopieren, und dann deine Anpassungen vornehmen.
2) du erweiterst die vorhanden Klasse. In dem Fall musst du dann auch den FE Modul registrieren. Dann solltest du aber überall konsequent mylisting anstatt listing verwenden. Dann ist es möglich, beide Arten des Listings zu verwenden.
In beiden Fällen musst du aber deine Klasse via autoload.php bekannt machen.
Gruß Kester