11.11.2023, 17:47
(Dieser Beitrag wurde zuletzt bearbeitet: 14.11.2023, 20:06 von StefanT.
Bearbeitungsgrund: Fehler auf Wunsch korrigiert
)
Hallo zusammen,
ich möchte mich an der Stelle ganz herzlich bei Euch als Community und Dir, Stefan, als Forenbetreiber für den Support und die Hilfen bedanken, die Ihr hier bereitstellt.
Ich betreibe ein Forum mit 3.700 Usern, 26.000 Threads und 440.000 Beiträgen. Forum lief in den letzten Jahren als WBB-Board, zuletzt in der Version 5.4.24. Ein Umstieg war schon lange geplant, ist aber am fehlenden Merge-System gescheitert. Da jetzt wegen des Auslaufens der PHP-Version bei unserem Hoster entweder ein Upgrade der WBB-Version oder ein Umstieg auf eine andere Software zwingend notwendig war, habe ich mir ein Herz gefasst und so lange experimentiert, bis ein erfolgreicher Umstieg auf MyBB möglich war. Diesen habe ich mehrmals getestet, bevor ich mich mit dem "echten Forum" an den Umstieg gemacht habe.
Da der Umstieg nur wegen der vielen Hinweise und Tipps im Forum möglich war und sowieso nur deswegen eine attraktive Software zur Verfügung stand, weil Ihr (und andere Leute, die sich im englischsprachrigen Raum damit beschäftigen) die Software entwickelt und für die Allgemeinheit bereit stellt, möchte ich mein Wissen auch nicht für mich behalten, sondern weitergeben, damit andere Forenbetreiber damit weiter arbeiten können.
Kurz zu den Voraussetzungen: Ich bin interessierte Laie, habe marginale Programmierkenntnisse, die gerade so ausreichen, um in einem CSS-, PHP- oder HTML-Dokument zu erkennen, um was es geht und derartige Dokumente mit trial and error und viel Lesen im Internet an meine Bedürnisse anzupassen. Alle Skripte, die ich benötigt habe, habe ich mir mit Internetrecherche, PHP-Lern-Seiten und Chat-GPT zusammen gebastelt. Das Forum war, wie schon geschrieben, ein 5.4.24-WBB-Board, das vor einigen Jahren von WBB4 auf WBB5 upgedatet wurden. Die Datenbank des damaligen WBB4er-Forums lag mir noch vor. Die Arbeiten wurden auf einem lokalen Server durchgeführt, der es mir erlaubt hat, die PHP-Versionen und erlaubten max. Laufzeiten für Skripte nach Bedarf anzupassen. Ich habe viele Arbeiten, die ein erfahrener Programmierer vermutlich automatisieren könnte, von Hand durchgeführt.
ICH habe mir dann noch ein responsives Theme heruntergeladen. Ich bin von WBB5 verwöhnt, die mobile Nutzung war dort sehr gut. Aber es gibt auch für MyBB gute responsive Themes. Das Theme bzw. die Templates habe ich dann farblich und auch in Bezug auf die Buttons, die ich zur Verfügung stellen möchte, überarbeitet. Außerdem möchte ich, dass meine Moderatorinnen Themen einfach durch Klicken im jeweiligen Unterforum zusammenlegen können und habe dafür noch ein eigenes Moderationstool hinzugefügt.
Das war's im Wesentlichen. Durch die viele manuelle Arbeit sicher zeitaufwändiger als nötig gewesen wäre, aber sehr erfolgreich.
Und dafür möchte ausdrücklich allen danken, die täglich daran arbeiten, die Software, die Plugins, die Dokumentationen und dieses (und auch das englischsprachige) Forum zur Verfügung zu stellen. Ohne dass Ihr diese Möglichkeiten bietet und ohne Eure geduldigen Erklärungen (die ich viel und häufig gelesen habe, auch wenn ich keinen eigenen Thread brauchte, weil alles schon irgendwo gesagt war), wäre der Umzug nicht möglich gewesen.
Viele Grüße
Nadja
Jetzt habe ich noch eine technische generelle Frage zu meinem Text.
Ich musste zustimmen, dass ich keine Texte aus diesem Forum an anderer Stelle verwende. Gilt das auch für diesen von mir verfassten Text oder dürfte ich den noch einmal woanders posten, wenn ich das für sinnvoll halten würde?
ich möchte mich an der Stelle ganz herzlich bei Euch als Community und Dir, Stefan, als Forenbetreiber für den Support und die Hilfen bedanken, die Ihr hier bereitstellt.
Ich betreibe ein Forum mit 3.700 Usern, 26.000 Threads und 440.000 Beiträgen. Forum lief in den letzten Jahren als WBB-Board, zuletzt in der Version 5.4.24. Ein Umstieg war schon lange geplant, ist aber am fehlenden Merge-System gescheitert. Da jetzt wegen des Auslaufens der PHP-Version bei unserem Hoster entweder ein Upgrade der WBB-Version oder ein Umstieg auf eine andere Software zwingend notwendig war, habe ich mir ein Herz gefasst und so lange experimentiert, bis ein erfolgreicher Umstieg auf MyBB möglich war. Diesen habe ich mehrmals getestet, bevor ich mich mit dem "echten Forum" an den Umstieg gemacht habe.
Da der Umstieg nur wegen der vielen Hinweise und Tipps im Forum möglich war und sowieso nur deswegen eine attraktive Software zur Verfügung stand, weil Ihr (und andere Leute, die sich im englischsprachrigen Raum damit beschäftigen) die Software entwickelt und für die Allgemeinheit bereit stellt, möchte ich mein Wissen auch nicht für mich behalten, sondern weitergeben, damit andere Forenbetreiber damit weiter arbeiten können.
Kurz zu den Voraussetzungen: Ich bin interessierte Laie, habe marginale Programmierkenntnisse, die gerade so ausreichen, um in einem CSS-, PHP- oder HTML-Dokument zu erkennen, um was es geht und derartige Dokumente mit trial and error und viel Lesen im Internet an meine Bedürnisse anzupassen. Alle Skripte, die ich benötigt habe, habe ich mir mit Internetrecherche, PHP-Lern-Seiten und Chat-GPT zusammen gebastelt. Das Forum war, wie schon geschrieben, ein 5.4.24-WBB-Board, das vor einigen Jahren von WBB4 auf WBB5 upgedatet wurden. Die Datenbank des damaligen WBB4er-Forums lag mir noch vor. Die Arbeiten wurden auf einem lokalen Server durchgeführt, der es mir erlaubt hat, die PHP-Versionen und erlaubten max. Laufzeiten für Skripte nach Bedarf anzupassen. Ich habe viele Arbeiten, die ein erfahrener Programmierer vermutlich automatisieren könnte, von Hand durchgeführt.
- Im ersten Schritt habe ich die Tabellen des WBB5er-Forums heraussucht, die ich für relevant halte: board, board_last_post, post, post_search_index, thread, thread_announcement, thread_similar, acl_option, acl_option_category, acl_option_to_group, acl_option_to_user, application, attachment, category, condition conversation, conversation_message, conversation_message_search_index, conversation_to_user, import_mapping, language, message_embedded_object, object_type, object_type_definition, package, poll, poll_option, poll_option_vote, style, user, user_activity_event, user_activity_point, user_authentication_failure, user_avatar, user_collapsible_content, user_follow, user_group, user_group_assignment, user_group_option, user_group_option_category, user_group_option_value, user_menu_item, user_notification, user_notification_author, user_notification_event, user_notification_event_to_user, user_object_watch, user_option, user_option_category, user_option_value, user_rank, user_storage, user_to_group
Außerdem die Tabellen sitemap und user_avatar_select aus der Datenbank der WBB4er-Installation.
Vielleicht könnte man noch weitere Tabellen weglassen, mir ist dann die Zeit davongelaufen, um weiter rumzuprobieren.
- Dann habe ich die Tabellen manuell in die selbe Struktur gebracht, die ein WBB4er-Forum mit diesen Tabellen hätte. Zum einen die Spalten und Spaltenreihenfolge und zum anderen alle Fremdschlüssel und Indizes. Die habe ich mir in der 4er-Datenbank abgeguckt. Die Struktur hänge ich hier einmal an, falls jemand diese auch benötigt.
- Danach hatte ich ein "normales WBB4-Board", das ich mit dem von MyBB zur Verfügung gestellten Merge-Programm 1.8.23 gemergt habe.
- Im Anschluss habe ich in phpMyAdmin in den Tabellen posts und privatemessages in der Spalte message und in der Tabelle users in der Spalte signature alle Formatierungszeichen geändert, also <b> und </b> gegen [b] und </b> ausgetauscht. Die bei mir verwendeten Formatierungskennzeichen waren: b, strong, em, u, del, ul, ol, li.
- Um die Texte weiterhin zu strukturieren, habe ich p und br gegen "nichts" ausgetauscht und </p> gegen einen Zeilenumbruch. So sind alle Texte weiterhin lesbar. (Tabelle posts und privatemessages, Spalte message)
- Beim Mergen werden die Threads, Posts, User und Foren neu nummeriert. Damit die Links später wieder korrekt verlinken habe ich im MyBB-Board die Thread-IDs und die Post-IDs ersetzt.
- Thread-IDs ersetzen:
- In beiden Foren, also dem alten WBB5er und dem neuen MyBB habe ich die Thread-Tabellen daraufhin geprüft, ob es mehrere Threads mit demselben Zeitstempel gab: SELECT dateline COUNT(*) AS Anzahl FROM mybb_threads GROUP BY dateline HAVING Anzahl > 1; (Befehl muss an die jeweilige Tabelle angepasst werden). Bei mir gab es keine doppelten Werte. Danach die Threads nach time bzw. dateline aufsteigend sortiert dann aus beiden Foren die Spalten mit der Thread-ID, der User-ID, dem Zeitstempel und den Titel exportiert
- Die exportieren Daten habe ich in eine Tabelle "Threadvergleich" gepackt und dort stichprobenartig geprüft, ob alle die nebeneinander stehenden Threads wirklich identisch sind.
- Die Tabelle habe ich in meine Datenbank hochgeladen.
- In die Threads-Tabelle im MyBB-Forum habe ich eine Spalte tid_neu eingefügt und diese Spalte mit JOIN Threadvergleich ON mybb_threads.tid = Threadvergleich.tid SET mybb_threads.tid_neu = Threadvergleich.threadID; gefüllt.
- In allen Tabellen denen es Abhängigkeiten zur Thread-ID gibt, habe ich im ersten Schritt eine neue Spalte "tid_neu" eingefügt, die tid aus der Tabelle threads ausgelesen und dort eingefügt, stichprobenartig geprüft, ob alles passt, die tid gegen die tid_neu ausgetauscht und die Spalte tid_neu gelöscht. Betroffen sind hier die Tabellen mybb_moderatorlog: tid, mybb_posts, mybb_threadsread, mybb_threadsubsciption sowie die Tabelle und Spalten: mybb_forums Spalte lastposttid
- In der Tabelle threads habe ich die Spalte tid mit den Werten aus der Spalte tid_neu gefüllt und die Spalte tid_neu anschließend gelöscht
- In beiden Foren, also dem alten WBB5er und dem neuen MyBB habe ich die Thread-Tabellen daraufhin geprüft, ob es mehrere Threads mit demselben Zeitstempel gab: SELECT dateline COUNT(*) AS Anzahl FROM mybb_threads GROUP BY dateline HAVING Anzahl > 1; (Befehl muss an die jeweilige Tabelle angepasst werden). Bei mir gab es keine doppelten Werte. Danach die Threads nach time bzw. dateline aufsteigend sortiert dann aus beiden Foren die Spalten mit der Thread-ID, der User-ID, dem Zeitstempel und den Titel exportiert
- Post-IDs ersetzen:
- Eine Spalte pid_neu in die Tabelle Posts einfügen
- Die Tabelle wbb1_post aus der Datenbank des WBB5er-Forums in die Datenbank der MyBB-Forums kopieren
- In beiden Post-Tabellen prüfen, ob es doppelte Werte für den Zeitstempel gibt. Bei mir waren es 4 Postngs (logischerweise in beiden Foren, da ja dieselben Postings enthalten sind). Hier habe ich bei jeweils einem Posting den Zeitstempel um 30 Sekunden verschoben. Danach habe ich mit dem Befehl noch einmal nach doppelten Zeitstempeln gesucht.
- Danach die Spalte pid_neu mit den Werten aus aus der wbb5-Tabelle posts füllen, bei denen Thread-ID, Autor und Zeitstempel übereinstimmen.
- Die einzige Tabelle mit Abhängigkeiten ist die Tabelle moderatorlog, diese ist noch leer, wenn man in dem Forum noch keine Experimente durchgeführt hat. Falls sie nicht leer ist, müssen hier die Werte in der Spalte pid durch die Werte aus der Spalte pid_neu in der Tballe posts ersetzt werden.
- In der Tabelle posts die Werte in der Spalte pid mit den Werten aus der Spalte pid_neu überschreiben und die Spalte pid_neu löschen.
- Eine Spalte pid_neu in die Tabelle Posts einfügen
- Thread-IDs ersetzen:
- Smilies, Schriftgrößen, interne Links, interne Bilderlinks und Zitate habe ich per PHP-Skript so umgeschrieben, dass sie formal dem Aufbau eines Similie-Links, einer Schriftgrößenformatierung, eines internen Links und eines Zitats entsprechen. (Tabelle posts und privatemessages, Spalte messages, bei Bedarf auch Tabelle users Spalte signature) WICHTIG: DIE LINKS AUF DIE FOREN FÜHREN AN DER STELLE NOCH INS LEERE, DIE FID MUSS ERST NOCH NEU ZUGEORDNET WERDEN.
- Per Update und regulärem Ausdruck habe ich alle @-mentionings aus den Texten entfernt (leider habe ich noch kein passendes Plugin gefunden, so dass ich nicht wusste, mit was ich die Codes hätte ersetzen müssen. Und eine Erwähnung in der Vergangenheit spielt auch für den Threadverlauf keine weitere Rolle mehr) ( UPDATE mybb_posts SET message = REGEXP_REPLACE(message, '<woltlab-metacode data-name="user" data-attributes="[^"]+">', '');
- Mit MyCode habe ich einen Spoiler-Button vor den Editor erstellt:
ACP > Konfiguration > MyCode > Neuen MyCode hinzufügen (siehe hier: How to make a spoiler) und einen Button den Editor einfügen: Eigenen MyCode erstellen
- Die meisten HTML-Codes sind damit enfernt. Einige Schnipsel bleiben trotzdem noch übrig, diese habe ich per update and replace (durch "nichts") entfernt.
- Was nicht funktioniert: Die Forenkategorien. Diese müssen einmal neu angelegt werden.
- DANACH habe ich in beiden Datenbanken die Tabellen Foren nach Forenname sortiert und exportiert. Da es schneller geht, die 55 Foren-IDs in phpMyAdmin mit update+replace zu ersetzen als hier einen Skript zu schreiben, habe ich in den Tabellen posts und privatemessages in der Spalte messages mit update und replace alle fid=alteID gegen fid=neueID ausgetauscht.
- Was auch nur teilweise funktioniert hat: Die Rechte der Benutzergruppen wurden nicht ganz korrekt übertragen und mussten sowohl in den Foren und Kategorien als auch in den Gruppen selbst neu angelegt werden.
ICH habe mir dann noch ein responsives Theme heruntergeladen. Ich bin von WBB5 verwöhnt, die mobile Nutzung war dort sehr gut. Aber es gibt auch für MyBB gute responsive Themes. Das Theme bzw. die Templates habe ich dann farblich und auch in Bezug auf die Buttons, die ich zur Verfügung stellen möchte, überarbeitet. Außerdem möchte ich, dass meine Moderatorinnen Themen einfach durch Klicken im jeweiligen Unterforum zusammenlegen können und habe dafür noch ein eigenes Moderationstool hinzugefügt.
Das war's im Wesentlichen. Durch die viele manuelle Arbeit sicher zeitaufwändiger als nötig gewesen wäre, aber sehr erfolgreich.
Und dafür möchte ausdrücklich allen danken, die täglich daran arbeiten, die Software, die Plugins, die Dokumentationen und dieses (und auch das englischsprachige) Forum zur Verfügung zu stellen. Ohne dass Ihr diese Möglichkeiten bietet und ohne Eure geduldigen Erklärungen (die ich viel und häufig gelesen habe, auch wenn ich keinen eigenen Thread brauchte, weil alles schon irgendwo gesagt war), wäre der Umzug nicht möglich gewesen.
Viele Grüße
Nadja
Jetzt habe ich noch eine technische generelle Frage zu meinem Text.
Ich musste zustimmen, dass ich keine Texte aus diesem Forum an anderer Stelle verwende. Gilt das auch für diesen von mir verfassten Text oder dürfte ich den noch einmal woanders posten, wenn ich das für sinnvoll halten würde?