Hallo zusammen,
ich schreibe gerade ein Plugin, welches als zusätzliches Feature automatisch Avatare aufgrund ihres (über eben dieses Plugin zugewiesenen) Ranges zuweist.
Zu den relevanten Datenbankfeldern:
wcf1_rank_plugin* beinhaltet eine Auflistung aller Ränge (rankID ist PK), inkl. einer Spalte "image" mit der URL zum zum Rang gehörenden Bild
wcf1_rank_user_assignment* ist die Many-to-Many Relation zwischen wcf1_rank_plugin und wcf1_user. Jeder Nutzer hat maximal einen Rang, daher wird userID als PK und FK genutzt, rankID ist ebenfalls FK
wcf1_user bekommt zusätzlich die Spalte "enableRankAvatar"
(*Die Tabellennamen habe ich geändert)
Nun würde ich gerne an den Stellen, an denen eigentlich der Nutzer-Avatar angezeigt wird, stattdessen deren Rang-Bild anzeigen (sofern enableRankAvatar = 1 ist). Ich habe bereits die Klassen wcf\data\user\avatar\DefaultAvatar und wcf\data\user\avatar\Gravatar gefunden, die entsprechend einen normalen Avatar, bzw. einen Gravatar definieren. Meine eigene Avatar-Klasse würde ich in den selben Namespace ablegen. Die Überprüfung, welcher Avatar genutzt wird, wird allerdings scheinbar in der Klasse wcf\data\user\UserProfile.class.php (spezifischer deren Methode "getAvatar()") gemacht.
Da ich in der Plugin-Entwicklung für WBB noch nicht so versiert bin, muss ich hier nun einmal fragen, wie ich diese Methode überschreiben kann.
Ist es mir möglich eine Klasse zu erstellen, die von UserProfile erbt und lediglich diese Methode überschreibt, und WCF anzuweisen meine eigene Klasse zu verwenden anstelle der ursprünglichen? Und wenn dem so ist, wie würde sich das auswirken, wenn ich beispielsweise ein zweites Plugin installiere, das ebenfalls eine UserProfile Klasse mit zusätzlichen Methoden implementiert? Wären diese Plugins inkompatibel, da sie zwei unterschiedliche Implementierungen für die gleiche Klasse anbieten?
Danke im Voraus für eure Hilfe!