Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 3 Gast/Gäste
OneTwoMax Forum -> MyBB
#1
Ich würde gerne die Postings aus meinem bei OneTwoMax gehostetem Forum in ein MyBB auf meinem eigenen Server übernehmen.
Natürlich kommt man bei OneTwoMax (leider) nicht an die Datenbank ran. Also habe ich mir ein Programm geschrieben, welches das Forum Posting für Posting ausliest und die Daten speichert.
Das hatte ich auch für mein OneTwoMax Gästebuch so gemacht. Anschliessend wurden aus den gesammelten Daten ein Haufen SQL Inserts generiert und damit mein neues Gästebuch gefüllt. So habe ich alle Einträge komplett übernehmen können.
Bei MyBB ist die Tabellenstruktur allerdings um einiges komplexer als beim Gästebuch.

Folgende Daten des OneTwoMax Forums habe ich nun in dieser Struktur:
  • Forumname, Beschreibung
    • Threadtitel
      • Posting (Author, Zeit, Text)

Zusätzlich habe ich noch die Anzahl der Postings jedes Teilnehmers.
Daraus kann ich nun beliebige SQL Inserts generieren, oder eine Liste in einem anderen Format erstellen.

Theoretisch sollten diese Informationen ja ausreichen um den Foreninhalt komplett zu übernehmen.
Nur irgendwie müssten auch noch die Nutzer, die Postings hinterlassen haben, übernommen werden. Es würde reichen wenn diese automatisch bei Bedarf mit einem Standardpasswort angelegt werden würden.
Falls es nicht anders geht könnte ich sie wohl auch noch per Hand anlegen.

Gibt es eine Möglichkeit diese Daten mit wenig Aufwand in MyBB zu importieren?
#2
Hm, das wird schwierig. Du müsstest zuerst die Benutzer importieren, jeder braucht eine ID. Dann kannst du die Themen und Beiträge nehmen und musst die (wahrscheinlich manuell) den IDs zuordnen.
Vantage-Forum: http://vantage-forum.de/
#3
Das wär dann der harte Weg.
Also müsste ich Insert Statements für mybb_users, mybb_forums, mybb_posts und mybb_threads generieren.
Das Forum hat ca 50 Tables. Gibt es da noch irgendwelche "Fernwirkungen" wenn ich User, Foren, Topics und Postings per SQL Statement einfüge?
Ineinander sind diese Tabellen ja ziemlich querverbunden, fid, pid, linkto, tid, uid, etc.
Und wofür ist der posthash gut?
Kann ich password/salt in mybb_users leerlassen, und anschliessend übers Admin Interface (PW Reset?) mit sinnvollen Werten füllen?
Allgemein sind da sehr viele Felder, die ich, nachdem ich mir erarbeitet habe was da wie reinmuss, mit sinnvollen Werten füllen muss.

Gibt es nicht eine Möglichkeit die ganzen Daten über bestehende andere Importscripte, bei denen z.B. nur die "wichtigen" Werte angegeben werden müssen, ins Forum zu bekommen?
Vielleicht geht ja auch ein simuliertes Posten, d.h. ich gebe Username, Zeit, Forum, Topic & Text rein, und die Forenlogik kümmert sich darum, daß alle Querverweise, letzte Posting ID, Zeit etc korrekt gesetzt werden?
#4
Bincky schrieb:Also müsste ich Insert Statements für mybb_users, mybb_forums, mybb_posts und mybb_threads generieren.
Das Forum hat ca 50 Tables. Gibt es da noch irgendwelche "Fernwirkungen" wenn ich User, Foren, Topics und Postings  per SQL Statement einfüge? Ineinander sind diese Tabellen ja ziemlich querverbunden, fid, pid, linkto, tid, uid, etc.
Wenn du Foren übernimmst solltest du die Tabelle forumpermissions beachten, die die Berechtigungen für die Foren enthält. Generell sollte es wie von dir beschrieben funktionieren, allerdings gab es einen solchen Fall bisher nicht. Einfacher wäre es natürlich, wenn du einen Dump bekommen könntest.
Was die Verbundenheit angeht: Die IDs der Foren und Themen müssen natürlich in allen Tabellen stimmen, sonst gibts Probleme.
Bincky schrieb:Kann ich password/salt in mybb_users leerlassen, und anschliessend übers Admin Interface (PW Reset?) mit sinnvollen Werten füllen?
Entweder das oder du trägst in das Feld password dem md5-Hash eines Passworts ein. Salt und Loginkey werden beim nächsten Login des Benutzers automatisch generiert.
Bincky schrieb:Vielleicht geht ja auch ein simuliertes Posten, d.h. ich gebe Username, Zeit, Forum, Topic & Text rein, und die Forenlogik kümmert sich darum, daß alle Querverweise, letzte Posting ID, Zeit etc korrekt gesetzt werden?
Natürlich kannst du auch alles Posten und die erforderlichen Änderungen (z.B. Zeit) später in der Datenbank anpassen.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
#5
Ich konnte nun mein komplettes Forum übernehmen Smile
Wäre mir nur vorher der "Neu zählen und aktualisieren" Punkt im Admin Panel aufgefallen - dann hätte ich mir eine Menge Programmieraufwand (Letztes Posting/Autor in Forum/Threadtable eintragen, Postings zählen, etc) sparen können.

Die Sache mit den Nutzerpasswörtern habe ich so gelöst, daß ich die eMail Adressen mit eingetragen habe, und sich die Nutzer dann über "Passwort vergessen" ein neues PW zusenden lassen konnten.

Die Forumpermissions brauchte ich nicht anfassen - die übernommenen Foren funktionierten auch so; hatten also alle die Standardrechte.
#6
Bevor nun jeder einzeln danach fragt, erkläre ich es hier kurz.
Das Programm wurde nicht sonderlich nutzerfreundlich konzipiert, sondern eben schnell auf den "funktioniert für mich" Status gebracht. In diesem stelle ich es auch, frei von jeglicher Gewährleistung, zur Verfügung. Die Verwendung geschieht also auf eigene Gefahr Smile

Das anhängende Archiv erstmal irgendwohin entpacken und Lua5.1.exe starten.
OneTwoForum.lua mit einem beliebigen Texteditor öffnen (nein, nicht Word), oben den Link zum eigenen OneTwoMax Forum eintragen und die Datei speichern.
Nun im Lua Fenster eingeben:
dofile "OneTwoForum.lua"
Daraufhin werden seitenweise Infos durchlaufen, an denen zu sehen ist wie weit der Auslesevorgang gerade ist. Falls eine Firewall die ausgehende Verbindung blockiert, sollte man diese natürlich freischalten.

Wenn alles fertig ist muss in der letzten Zeile ein "OK" stehen. Falls der Auslesevorgang hängenbleibt, einfach abbrechen und nochmal starten. Für den Fall, daß dies wiederholt passiert, die Zahl in OneTwoForum.lua bei "Anti-Anti-Flood" erhöhen und neu Einwählen um eine neue IP zu bekommen.

Jetzt ist die etwas größere Datei Forumdump.lua entstanden, hieraus wird im nächsten Schritt ein PHP Script generiert.
Zuerst müssen aber einige Infos eingetragen werden, also die ProcessOneTwoDump.lua mit dem Editor öffnen. Hier müssen in den ersten 5 Zeilen die gleichen Infos eingetragen werden, die auch für die MyBB Installation verwendet wurden.
Das MyBB Forum sollte zu diesem Zeitpunkt übrigens "frisch installiert" sein, es dürfen also noch keine Foren, Postings, oder Nutzer ausser dem Admin-Nutzer vorhanden sein. Falls das nicht so ist: (Fast) Alle vorhandenen MyBB Daten werden beim Importvorgang gelöscht!

Nun Lua schliessen und neu öffnen. Dann dies eingeben:
dofile "ProcessOneTwoDump.lua"
Dadurch werden relativ schnell zwei Dateien generiert: insertmybb.dat und insertmybb.php. Diese beiden Dateien müssen auf den Webserver hochgeladen werden. Dann einfach insertmybb.php per Browser (auf dem Webserver) öffnen.
Nach einigen Sekunden sollte ein "*** DONE***" erscheinen.
Die Daten wurden nun ins Forum übernommen.

Nun kann man im Forumadmin Bereich erstmal die Neuzählung anwerfen. Anschliessend sollte man sich die Foren wieder in die Reihenfolge bringen, in der sie vorher waren (eventuell werden sie vorher nicht angezeigt).
Die Forennutzer selber wurden übernommen, deren Daten allerdings nicht.
Somit muss man sich als Admin nun nurnoch die Arbeit machen, und bei jedem Nutzer wieder seine eMail Adresse eintragen, damit diese sich über "Passwort vergessen" ein neues Passwort einstellen können.

Falls jemand zwischenzeitlich an dieser Kurzanleitung oder dem Programm selber etwas verbessert hat: Immer her damit, ich werde es dann hier ändern.

[€dit] Anleitung vereinfacht, ausserdem klappts jetzt auch mit vielen Beiträgen.


Angehängte Dateien
.zip   OneTwoMyBB.zip (Größe: 97,61 KB / Downloads: 30)