I’m planning a migration of an existing community (macscripter.net - Mac OS Automation discussions) hosted with FluxBB to Discourse. This article looks promising in terms of migrating the data. Its going to be a big job as I have over 30,000 users, and 120K posts but it seems doable.
However, I want to preserve all the incoming links. macscripter.net is a significant reference for the Apple automation community. We’ve got almost 20 years of posts with a lot of references to the site appearing on other sites and in mailing list archives which I don’t want to break.
I’m looking for a way to translating incoming FluxBB post links to corresponding Discourse posts? I don’t see any way to accomplish this with stock Discourse so I’m presuming I’ll need to create some sort of plugin that responds to FluxBB’s /viewtopic.php?id=##### links and redirects to the appropriate Discourse link. If anyone else has experience solving this kind of problem, I would love to hear how you approached it.
Most import scripts create permalinks that handle the redirects. I don’t know offhand if they one does. If not, you can look at one of the others for example code.
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.