ich plane die Migration einer bestehenden Community (macscripter.net – Diskussionen zur Mac OS-Automatisierung), die derzeit mit FluxBB gehostet wird, auf Discourse. Dieser Artikel sieht vielversprechend aus, was die Datenmigration angeht. Es wird eine große Aufgabe, da ich über 30.000 Benutzer und 120.000 Beiträge habe, aber es scheint machbar zu sein.
Allerdings möchte ich alle eingehenden Links erhalten. macscripter.net ist eine wichtige Referenz für die Apple-Automatisierungs-Community. Wir haben fast 20 Jahre an Beiträgen, und viele Verweise auf die Site finden sich auf anderen Seiten und in Mailinglisten-Archiven, die ich nicht beschädigen möchte.
Ich suche nach einer Möglichkeit, eingehende FluxBB-Beitrags-Links auf die entsprechenden Discourse-Beiträge umzuleiten. Ich sehe keine Möglichkeit, dies mit dem Standard-Discourse zu bewerkstelligen, daher gehe ich davon aus, dass ich irgendeine Art von Plugin erstellen muss, das auf FluxBB-Links im Format /viewtopic.php?id=##### reagiert und auf den entsprechenden Discourse-Link weiterleitet. Falls jemand Erfahrung mit der Lösung eines solchen Problems hat, würde ich gerne hören, wie Sie vorgegangen sind.
Die meisten Importskripts erstellen Permalinks, die Weiterleitungen verarbeiten. Ich weiß im Moment nicht, ob dies einer davon tut. Wenn nicht, kannst du dir eines der anderen Skripts als Beispiel ansehen.
Ich habe die gleiche Frage und bin etwas verwirrt über die Antwort. Ich möchte auch einen umfangreichen FluxBB-Import durchführen.
Ich sehe, dass es tatsächlich eine Discourse-Funktion namens „Permalinks“ gibt (How to make a redirect URL in a Discourse install? - #4 by cpradio). Bedeutet das, dass Discourse durch die Erstellung dieser Dinge eine FluxBB-URL wie „/viewtopic.php?id=((old topic id))“ nehmen und zu „/t/((new topic slug))/((new topic id))“ umleiten könnte. Vielleicht ebenso für einzelne Beiträge in einem Thema? Ebenso für Benutzerprofil-URLs. (Wir werden also viele Permalinks benötigen). Ich sehe die Datenbanktabelle für Permalinks.
Das klingt nach einer guten Lösung, aber der FluxBB-Importer erstellt keine Permalinks. Ich kann keinen Code dafür finden. Tatsächlich kann ich in keinem der import_scripts Code finden, der dies tut (keine Erwähnung des „Permalink“-ActiveRecord-Modells).
Ich würde gerne daran arbeiten, den FluxBB-Importer dafür zu modifizieren, aber gibt es ein Beispiel in einem der anderen Importer?
Das Einzige, was ich in diesem Zusammenhang im Code sehe, ist die Initialisierung von „LookupContainer“ und das Speichern aller alten IDs und ihrer entsprechenden neuen IDs. Kann dies zum Erstellen vieler Permalink-Objekte verwendet werden?
Schauen Sie sich den vbulletin-Importer an (aber auch answerhub, vanilla, mylittleforum, bbpress, drupal für einige andere – vielleicht haben Sie mit Groß-/Kleinschreibung gesucht oder so etwas), der dies in der Funktion import_topics tut (ignorieren Sie die Permalink-Datei-Funktion). Sie benötigen Code, der den Permalink hinzufügt, und eine permalink_normalization, die die FluxBB-URL in den von Ihnen erstellten Permalink umwandelt.
Gah! Sie haben Recht. Meine IDE-Suche hat mir Streiche gespielt. Tatsächlich werden viele Beispiele für „Permalink“-Objekte erstellt. Vielleicht werde ich das also zum FluxBB-Import hinzufügen.
Ich bin neugierig, wie Ihr großer Import verlief, @alldritt. Nun, es sieht so aus, als ob macscripter.net immer noch auf FluxBB läuft, also nicht sehr gut? Wenn Sie bemerkt haben, dass der FluxBB-Importer BBCode nicht sehr gut konvertiert, habe ich an verschiedenen Korrekturen dafür gearbeitet: Pull-Anfrage in Bearbeitung.
Es gibt eine interessante (ungeschickte) Überschneidung zwischen diesen Diskussionen, da FluxBB BBCode im Format [post=123] unterstützt, um mit der ID auf einen anderen Beitrag zu verlinken (wobei auf alte Beitrags-IDs im Quellsystem von FluxBB verwiesen wird). Es wird einfacher sein, damit umzugehen, wenn wir eine Lösung haben, die diese IDs umleitet.
Das wird es nicht. Permalinks funktionieren nur für eingehende Links, nicht für interne. Sie müssen etwas schreiben, um diese internen Links als Discourse-Zitate neu zu schreiben. Davon gibt es auch Beispiele.
Ich habe ein paar Mal versucht zu konvertieren und aufgegeben. Mit der Zeit, als ich zu einem M1 Mac wechselte, verlor ich mein Discourse-Testbett und habe es nie geschafft, es neu zu erstellen. Ich hoffe, zu diesem Projekt zurückzukehren, sobald ich etwas Zeit übrig habe. Die Weiterleitung bestehender Links war ein Teil, mit dem ich zu kämpfen hatte. Ich hatte noch nicht alle BBCode-Übersetzungen überprüft. Ich habe über 130.000 Beiträge zu konvertieren, was eine entmutigende Aufgabe zur Überprüfung ist.
Hoffentlich ist das dann hilfreich für Sie. Gestern habe ich daran gearbeitet, die create_permlinks-Funktionalität zum FluxBB-Importer hinzuzufügen.
Im Moment befindet sich dies in meinem WIP-PR. Sehen Sie sich den Commit “Add Permalink creation logic to FluxBB importer”am Ende dieser Liste an. Ich hoffe, das alles irgendwann zusammenzuführen, möglicherweise in einer anderen Reihenfolge (ich warte derzeit darauf, dass jemand diesen grundlegenden PR als Ausgangspunkt überprüft).
Dies erstellt also Weiterleitungen für vier verschiedene Arten von FluxBB-URLs.
profile.php?id=<user id>
viewtopic.php?pid=<post id>
viewtopic.php?id=<topic id>
viewforum.php?id=<forum id>
Ich denke, diese vier decken alles ab, was die Leute beibehalten möchten, um funktionierende Links zu haben. Was meinen Sie?
Zurück zum Thema der speziellen internen Links von FluxBB
Ich würde nicht versuchen, diese als interne Links im neuen Discourse beizubehalten. Faule Lösung: Sie werden zu den alten FluxBB-Forum-URLs verlinken (als vollständige URLs, also externe Links), die dank dieser Permalinks den Benutzer dann zurück an die richtige Stelle im neuen Discourse weiterleiten.
Ich denke, Ihre faule Lösung könnte funktionieren. Sie können Beispiele für das Umschreiben interner Links finden, wenn Sie möchten, aber faul kann gut sein.