Einzelnen Beitrag anzeigen
  #1  
Alt 08.01.07, 23:15
Benutzerbild von Zamora
Zamora Zamora ist offline
Forum Zuschauer
 
Registriert seit: 08.01.07
Ort: Troisdorf
Alter: 32
Beiträge: 2
Zamora eine Nachricht über ICQ schicken
Lösungsansatz VBulletin - Pluginsystem & Typo Extension

Durch eine google-Suche nach den Stichworten vbulletin - Typo bin ich auf dieses Forum gestossen und denke, das ich mich hier einfach mal versuche einzubinden.

In meiner spärlichen Freizeit programmiere ich ein wenig in PHP und unterstütze so ein paar Projekte mit Eigenentwicklungen. Vor einiger Zeit hab ich Typo3 entdeckt und war von den Möglichkeiten begeistert, so das ich nach und nach versucht habe mich in das Thema einzulesen / einzuarbeiten.
Für eines meiner betreuenden Projekte hab ich das alte bestehende bestehende Newsscript in Typo halbwegs "integriert" und eine einfache Schnittstelle an VBulletin geschrieben, die mittels Newstool sofort einen Thread in unser Newsforum anlegt und für Kommentarfunktionen zur Verfügung stellt. Derzeit läuft das System noch extern. Die Daten werden zwar ordnungsgemäss in Typo angelegt und könnten auch von dort verarbeitet werden, aber nur mit dem externen Script kann der Abgleich mit dem VBulletin erfolgen, so das diese Lösung nicht wirklich eine "Integration" darstellt. Typo wird quasi nur zum rendern der News und zum Anlegen der "News einsendungen" benutzt und VBulletin wiederum als FE-User-Speicher.

Derzeit sitze ich an einem neuen Projekt, wo Typo und damit die Hauptseite mehr in den Vordergrund gestellt werden soll. Dabei war der Gedanke gekommen, mehr "community-Funktionen" innerhalb von Typo zu verwenden, wodurch Forum und Hauptseite nicht wirklich getrennte Seiten sein sollten. Eventuell wird auch eine vollständige Layouttechnische Integration beider Bestandteile erfolgen.

Das Unterforum hier hab ich ein wenig überflogen und von Puppetmaster den Ansatz für die Schnittstelle gelesen. Der Gedanke von zwei autarken System ist zwar ganz niedlich, aber steht der Mehraufwand wirklich zum Nutzen?

Was haben wir hier wirklich?
Auf der einen Seite ist ein Typo-System für die Hauptseite, die Content aufbereitet. Auf der anderen Seite steht VBulletin als Forensystem, für den Ausbau der community.
Beide Systeme haben ein eigenes FE-System an dem man sich registrieren kann. Beide Seiten sollen quasi autark voneinander funktionieren, wenn man VB löscht oder Typo löscht.
Soweit so gut und vor allem auch wünschenswert.

Warum aber nun der Mehraufwand im Beispiel, das man sich an beiden Systemen auch autark anmelden kann und das andere System dann entsprechend immer auf den Laufenden gehalten wird, und zwar in beiden Richtungen?
VBulletin nutzt zum Speichern der User die Tabelle "user" mit dem Primärschlüssel "userid", der automatisch vergeben wird. Typo3 verwendet im Frontend die Tabelle "fe_users" mit den Primärschlüssel "uid", der auch automatisch vergeben wird. Somit müsste nun in der Extension den theoretischen Fall abfangen, das zwei unterschiedliche User sich zeitgleich an beiden möglichen Enden anmeldet und somit die UID bzw UserID in beiden Tabellen unterschiedliche Bedeutungen hat, weil zwei verschiedene User. Der Abgleich könnte somit nur funktionieren, indem man sowohl VB als auch Typo so verändert, das sie eine gemeinsame Zwischentabelle nutzen würden, der den Schlüssel vergibt und dann in beiden System einträgt.
Ein Aufwand der meines Erachtens keinen zwingenden Vorteil bringt, aber viel Mühe bereitet.

Sinnvoller wäre es aus meiner Sicht, wenn man ein System zum federführenden Registrationssystem macht und nach Abschluss der Registration selbige in das andere System gespiegelt werden, so das die Bedingung nach Löschen des Federführenden System die Seite trotzdem weiter läuft.
Hierfür würde ich VB vorschlagen, da das Registrationssystem recht ausgeprägt ist und ab VB 3.5 recht einfach zu verändern ist.
Ein paar Zeilen Quellcode in der Plugin-Schnittstelle zum Einstiegspunkt "register_addmember_complete" sollte so einen Abgleich sehr einfach erlauben. Sobald VB mit der Registrierung fertig ist, würde das System die Daten aus der DB auslesen und in die entsprechenden Typo3-fe_user_Tabellen übertragen.
Typo würde autark weiter laufen (Registration ist zwar deaktiviert und wird von VB übernommen) und wenn VB deinstaliert wird, sollten alle Informationen sauber übertragen sein.
Da wir die VB-Plugin-Schnittstelle nutzen, würde ein Upgrade von VB keine Auswirkungen auf die Funktionisfähigkeit haben und somit losgelöst davon laufen.
Nur wenn Typo3 oder VB3.x die Usertabellen abändern müsste man nochmal nachbessern.

Programmieraufwand... Wenige Stunden für den eigentlichen Registertransfer.
Schnittstellen, die einen einmaligen Import machen oder gar abgleichen würden sicherlich was länger dauern.


Nächste Baustelle:
Gleichgeschaltete Userprofile

Auch hier würde sich eine Lösung mit einem federführenden System, das an das andere übergibt die schnellste Lösung sein. Und da die Daten in beiden Tabellenstrukturen parallel aktualisiert werden dürfte das abschalten des Hauptsystem KEINE Auswirkungen auf das andere System haben.
Klar man muss sich nach Abschalten des Userprofil-Systems dafür sorgen, das das andere System dann diese Funktionen übernehmen kann, aber das ist ein ganz anderes Problem und nicht wirklich Bestandteil dieser Migration ;)
Auch hier würde ich wieder VBulletin als Federführendes System vorschlagen, da hier ein entsprecheder Hook "userdata_postsave" ein idealer Einstiegspunkt für so einen Abgleich darstellen würde. Immer wenn an den Userdaten etwas geändert wird (egal ob im Frontend oder im AdminCP / ModCP), wird dieser Hook ausgeführt.

Genauso wie beim Registrieren würde so ein Programmieraufwand recht gering sein.
Man müsste sich vorher Gedanken machen, welche Felder in Typo wirklich wie gefüllt werden sollten, aber danach sind nur wenige Abfragen nötig, um Typo auf den aktuellen Stand zu halten.


Usernamenangleichung
Gute Frage. Hier weiss ich nicht, was man machen muss, damit Typo mit Sonderzeichen umgehen kann, weil das ist die Bedingung dafür, das das System nach abschalten von VBulletin weiterhin so funktioniert, wie in der gemeinsamen Zeit. Man müsste also schauen, was dazu notwendig ist. Prinzipiell würde die Übertragung der Daten aus VB dafür sorgen, das die Namen incl. Sonderzeichen erstmal in Typo akzeptiert werden, aber wie dann ein Login / Weiterverarbeitung stattfindet, kann ich nicht abschätzen :sad:
Falls es hier schon Lösungen in anderen Extensions gibt, die das Problem gelöst haben, wäre das nicht soo verkehrt. Ansonsten müsste man die Anmeldung von Typo Schritt für Schritt im Quellcode durchgehen und schauen, wo man ansetzen müsste.
Aufwand: Keine Ahnung


Damit wären wir bei einem "Problem", was durch diesen Zusammenschluss von Federführenden System und Subsystem entsteht. Prinzipiell würde das komplette Usermanagement via VBulletin - AdminCP ablaufen. Typo hat da keine Aktien drin. Sollte das auch in Typo sein müsste man zusätzlich in die andere Richtung (Registrierungsabgleich bei Neuanlage von Usern / Ändern von Profildaten & Password) programmieren, was wiederum aber nur Zeitaufwand ist, der meines Erachtens nicht notwendig ist.
Wenn man VB löscht würde Typo selbstredend mit seinen Tabellen arbeiten können, aber der Abgleich rüber bräuchte nicht sein. Wie gesagt, man müsste dann für Typo das Problem mit den Sonderzeichen noch lösen, so das nach dem Abschalten von VB trotzdem die Accounts noch funktionieren, aber ob das relevant ist?


Der Punkt mit den Adressierungen der Threads ist eine Auslegungssache
Je nachdem wie man VB in die Seite einbindet (Stichwort: Templates) sind es zwei verschiedene Scripte, die nix mit einander zu tun haben, aber so aussehen, als wenn es eine Seite wäre.
Dann hätte man auf der einen Seite das Verzeichnis für Typo und auf der anderen ein Unterordner fürs Forum... oder man löst es halt mit SubDomains. www. für Typo und forum. fürs Forum. Die cookies müssten dann nur so gesetzt sein, das beide Scripte drauf zu greifen können.


Angleichen der Sprache. Mmhh hab ich mich in VB noch nicht mit beschäftigt. Vermutlich wäre die Sprache ein Forenstyle in VB, so das eine Anpassung dann via der Userschnittstelle nur umgelenkt werden müsste. Sollte also gehen. Alternativ wäre es Benutzerdefiniertes Feld, das im Forum zwar kaum Auswirkungen hat, aber Typo entsprechend steuern könnte. Das wäre dann etwas umfangreicher, da man der Pluginstelle ein genormtes Benutzerfeld übergeben müsste. Aber auch nicht unmöglich...


Leichtes Updating
Bisher wäre es nur ein kleines VBulletin-Plugin, was man einfach reinkopiert und danach nichts mehr weiter macht. Ein Upgrade auf ne andere VB-Version oder Typo-Version wäre nur kritisch, wenn die user-Tabellen von VB oder die fe-user-Tabellen von Typo sich grundlegend ändern. Somit müsste man im Plugin quasi eine Versionskontrolle für Typo einbinden, falls Typo sich ändert und man mehrere Typo-Versionen mit dem Plugin unterstützen möchte.



So dann mal zu den Dingen, die in Typo gemacht werden müssten.

Wir bräuchten ein Plugin, welches sich um die Usernamen incl. Sonderzeichen kümmert.
Das anbinden der tt_news an Foren-Accounts bzw. einem "Newsforum" für Kommentarspeicherungen sollte ermöglicht werden. Gibt es einen Hook in tt_news, der nach dem Speichern und veröffentlichen von News ausgelöst wird? Wenn ja, würde ich an dieser Stelle ansetzen und VB-Funktionen einsetzen um die nötigen Strukturen anlegen (bisher nutze ich einen SymLink auf das VBulletin-Include-Verzeichnis und binde VB-Code direkt ein).
Hierfür bräuchte man ein Zusatzfeld in tt_news, welches die Thread-ID oder besser die Post-ID des startenden Threads abspeichert, so das man darüber eine Ausgabe in Typo starten kann, wieviel Kommentare schon vorhanden sind, bzw. bei Updates der News, der entsprechende VB-Thread aktualisiert wird. (derzeit in meiner externen Lösung so geregelt)
Eventuell braucht man noch ein Feld um eine Statusverwaltung für News-Einsendungen von FE-User zu verwalten.
Darüber hinaus müsste man die Sessionverwaltung von Typo mit der von VB abgleichen. Dies sollte wenn möglich auch in diesem Plugin enthalten sein.

Leider bin ich in Typo noch nicht soo fit mit den Strukturen um genau zu wissen, wo ich mich am besten für solche Dinge einhängen kann. Wenn ich solche "Hooks" kennen würde, könnte ich sicherlich auch da helfen.


Für mich würde so eine Integration aus zwei Dingen bestehen.
Auf der einen Seite Nutzung des VBulletin-Plugin-System für den Userabgleich (Registrierung / Userprofil / Sessionabgleich?) und auf der anderen Seite eine Typo-Extension, die den "Mehrwert" auf der Typo-Seite verfügbar macht (tt_news / Session / Forendaten in Typo)

Für den Part in VB kann ich sicherlich etwas beitragen, bei Typo bräuchte ich aber noch Hilfe.

So genug geschrieben, für das erste Posting in dieser community. Ich hoffe ihr habt bis hierhin durchgehalten.


Gruss

Michael aka Zamora
Mit Zitat antworten
Sponsored Links