WBB Forum mit anderer Datenbank verbinden

04/27/2014 14:49 Döner-Chicken Grill#1
Moin Leute,
Ich bin gerade dabei mit einem Freund ein WoW-Server zu erstellen, dazu fehlt uns aber noch ein Forum bzw. Homepage. Wir wollten das WBB3 Forum nutzen, wissen aber nicht wie man dieses mit der mysql datenbank von wow verbindet.
Es soll letztendlich möglich sein im WBB3 Forum sich zu registrieren und mit diesen Daten im Game sich einzuloggen. Vlt. gibt es jemand der mir es kurz erklären kann oder die Zeit aufbringen kann und es kurz erledigen.

(Sorry wenn es das falsche Abteil ist, wusste nicht ob das jetzt unter wow-pserver soll oder in Programmierung ;) )

Mfg,
Marcel.
04/27/2014 19:16 pr0Cellarum#2
Du brauchst Hooks, die die Daten aus den WBB Prozessen verarbeiten und dann an die Datenbank des WoW Servers weitergeben.

Du musst auch daran denken, dass nicht nur die Daten bei der Erstellung eines neuen Accounts verarbeitet werden, sondern auch, wenn der Benutzer im Forum sein Passwort ändert und ggf andere Operationen.

Prozess in groben Zügen:

1. User sendet Anmeldeformular ab
2. Daten werden validiert
3. Daten für den Server verarbeiten
4.1 Fehler bei der Verarbeitung -> Vorgang abbrechen und Hinweis ausgeben
4.2 Account für den Server erfolgreich angelegt -> Account im WBB anlegen

Ist nur ein Beispiel. Man kann den Ablauf auch anders gestalten und weitere Schritte mit einbeziehen.
05/04/2014 18:47 Assassin'#3
Es liegt ja grundlegend erst mal das Problem vor, die Verbindung mit einer anderen Datenbank aufzubauen. Damit habe ich auch eine Zeit Lang rummachen müssen, bis ich mir einfach eine Ableitung der MySQLDatabase.class.php aus wcf/lib/system/database/ erstellt habe.


Wichtig ist hierbei: Es wird die Klasse MySQLDatabase.class.php erweitert und nur die connect()-Methode überschrieben. Der Rest der Methoden wird 1:1 vererbt und ganz normal ausgeführt. Außerdem muss der $newLink - Parameter auf true stehen.

Dann musst du dir noch Eventlistener setzen, die z.B auf das Registrierungsformular und das Passwort ändern Formular reagieren und dort musst du mittels
PHP Code:
new MyNewDatabase($host$user$password$database);
/**
 * MyAwesomeCode
 */ 
Wenn man sich mit Eventlistenern auskennt und weiß, wie man über die Paketverwaltung Optionen registriert, ist das ganze Verwaltungstechnisch sogar noch sehr viel angenehmer. Ich habe die Ableitung der Datenbank für eine Charakteranzeige der Charaktere für Metin2 gebastelt.