Hallo, Gast! (Registrieren)

Letzte Ankündigung: Sicherheitsupdate: MyBB 1.8.24 veröffentlicht (09.08.20)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
wie URL von Bildern in Beiträgen via DB script ändern
#1
Hallo mybb-Freunde,

in dem von mir geführten Forum habe ich viele Themen mit Bilder erstellt die auf/mit einer externen Domäne "A" verlinkt sind. Diese Domäne soll nun aber abgeschafft werden und die links in den Beiträgen zu den Bildern für Domäne "B" neu gesetzt werden. Es würde sich nur der Domänenname ändern. Die Pfadstruktur soll identisch bleiben. Ich denke da an ein SQL script aber evtl. gibt es aber auch eine Funktion oder admin plugin (was ich evtl. übersehen habe), ähnlich wie es eines für WP gibt auch für mybb um die gewünschte Anpassung vorzunehmen.
Für Lösungsvorschläge bin ich sehr dankbar.

Danke und Gruß Chris
Zitieren
#2
(07.07.2020, 09:07)crurer schrieb: Für Lösungsvorschläge bin ich sehr dankbar.

Ganz schnell und unkompliziert tätige ich dies mit dem "myoosdumper" (kannst auch phpMyAdmin verwenden) wie folgt:
1. Forum in den Wartungsmodus stellen
2. Datenbank ungezippt sichern
3. Datenbank downloaden
4. Datenbank mit Notepad++ öffnen
5. Suche URL-X und Ersetze mit URL-Y ausführen
6. Datenbank uploaden
7. Datenbank wieder einspielen
8. Wartungsmodus beenden

Sollte irgend ewas schief gehen, steht immer noch die Datenbanksicherung aus Punkt 2 zur Verfügung.
Wer fragt, ist gegebenenfalls für fünf Minuten ein Narr. Wer nicht fragt, bleibt ein Narr.
Wer will sucht Wege; Wer nicht will sucht Gründe!
Aktive Version: MyBB: 1.8.24 | PHP: 7.4.5 | SQL: 5.7.28
Zitieren
#3
Die URL lässt sich leicht per MySQL-Query anpassen. Beispiel: https://www.mybb.de/forum/thread-36206-p...#pid237414
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#4
(07.07.2020, 09:54)StefanT schrieb: Die URL lässt sich leicht per MySQL-Query anpassen. Beispiel: https://www.mybb.de/forum/thread-36206-p...#pid237414
Soweit war ich früher auch schon mal.

Der verlinkte SQL-Befehl begrenzt sich jedoch nur auf die Tabelle "message". Alle anderen Tabellen welche URL-Links beinhalten, bleiben hierbei unangetastet. das ist aus meiner Sicht zwar auch eine Lösung, aber nicht immer zielführend.

Bei meiner Variante ersetze ich z.B. "beispiel.com" nach "beispiel.de" und habe somit (bei z.B. einem Umzug) alle im Forum vorhandenen Angaben wie
<a href="https://beispiel.com"> bzw. <a href="mailto:abc@beispiel.com">
nach
<a href="https://beispiel.de"> bzw. <a href="mailto:abc@beispiel.de>"
geändert. Dies unabhängig in welcher Tabelle irgendein Link/Mailto (z.B. Message/Templates/PNs usw.) aufgeführt ist.

Wähle ich in Notepad++ die Option "Groß-/Kleinschreibung beachten", kann ich sogar noch gezielter Vorgehen, weil manchmal nur der reine URL-Text (ohne "<a href="..">) etc. im Forum geschrieben steht.

Aber letztlich muss jeder seinen eigenen Lösungsweg finden.
Wer fragt, ist gegebenenfalls für fünf Minuten ein Narr. Wer nicht fragt, bleibt ein Narr.
Wer will sucht Wege; Wer nicht will sucht Gründe!
Aktive Version: MyBB: 1.8.24 | PHP: 7.4.5 | SQL: 5.7.28
Zitieren
#5
(07.07.2020, 10:42)Gerti schrieb: Aber letztlich muss jeder seinen eigenen Lösungsweg finden.

danke für die hilfreichen Tips!....notepad++ hatte ich zugegebenermaßen auch schon im Sinn, war mir aber nicht sicher, ob es das richtige Mittel wäre. Ich werde es aber probieren und berichten. Noch läuft die Domäne, die evtl. abgekündigt werden soll. Da es nur um meine eigenen Themen und Beiträge geht überlege ich gar die betreffenden Bilder in den phys. Content vom Forum abzulegen. Mal sehen, was sich da besser anbietet.

Gruß Chris
Zitieren
#6
(07.07.2020, 10:42)Gerti schrieb: Der verlinkte SQL-Befehl begrenzt sich jedoch nur auf die Tabelle "message". Alle anderen Tabellen welche URL-Links beinhalten, bleiben hierbei unangetastet. das ist aus meiner Sicht zwar auch eine Lösung, aber nicht immer zielführend.
Der Themenersteller hat aber explizit nach "links in den Beiträgen" gefragt. Sollten dennoch andere Tabellen in der DB abgefragt und geändert werden müssen, dann wäre das per MySQL genauso machbar. Per Notepad++ muss man ja genauso suchen und es wäre zudem ein vermeidbarer Umweg....
viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren
#7
(07.07.2020, 19:22)Jockl schrieb:
(07.07.2020, 10:42)Gerti schrieb: Der verlinkte SQL-Befehl begrenzt sich jedoch nur auf die Tabelle "message". Alle anderen Tabellen welche URL-Links beinhalten, bleiben hierbei unangetastet. das ist aus meiner Sicht zwar auch eine Lösung, aber nicht immer zielführend.
Der Themenersteller hat aber explizit nach "links in den Beiträgen" gefragt. Sollten dennoch andere Tabellen in der DB abgefragt und geändert werden müssen, dann wäre das per MySQL genauso machbar. Per Notepad++ muss man ja genauso suchen und es wäre zudem ein vermeidbarer Umweg....
Korrekt, wenn sich die Antwort lediglich auf die Angabe des OP begrenzt, nicht jedoch auf das Gesamtthema.

Notepad++ ein Umweg? Nein! Umweg ist eher das mühevolle herausfinden aller benötigen SQL-Befehle um alle Tabellen korrekt aktualisieren zu können.

Da wir die Kompetenz des Fragestellers nicht kennen und er nicht wissen kann ob z.B. in PNs entsprechende Links enthalten sind und in welchen weiteren Tabellen eventuell noch die zu ändernden Angaben abgespeichert wurden, ist die mit Notepad++ erwähnte Vorgehensweise  (aus meiner eigenen Erfahrung heraus) der schnellste und sicherste Lösungsweg.

Suchen muss man in Notepad++ nicht, das macht man mit der eingebauten Funktion "Suchen & Ersetzen". Zudem kann diese Funktion auch pauschal auf alle Dateien in einem Ordner (inkl. Unterordner z.B. in Sprachdateien) angewendet werden. Somit ist die Anpassung eines Domainnahmens bei Forenumzug (auf eine andere Domain) in wenigen Minuten lokal erledigt. Dann nur noch Datenbank einspielen, FTP-Daten hochladen, Cookie-Einstellungen durchführen, fertig.

Vorstehendes weist Du sicherlich selbst, aber mancher (neue) MyBB-Leser des Threads vielleicht nicht.
Wer fragt, ist gegebenenfalls für fünf Minuten ein Narr. Wer nicht fragt, bleibt ein Narr.
Wer will sucht Wege; Wer nicht will sucht Gründe!
Aktive Version: MyBB: 1.8.24 | PHP: 7.4.5 | SQL: 5.7.28
Zitieren
#8
(08.07.2020, 05:08)Gerti schrieb: Notepad++ ein Umweg? Nein!
Doch! Spätestens wenn die Datenbank einen größeren Umfang hat, wird deine Methode sehr mühsam. Dann dauert erst der Download, Notepad++ wird bei größeren Dateien sehr träge und der Upload dauert ebenfalls (leider ist das Importieren von größeren SQL-Dumps auch nicht ganz unproblematisch).

Abgesehen von den ganzen zusätzlichen Schritten, ist deine Methode nicht ganz ungefährlich. Immer wieder gibt es beim Im- und Export Probleme mit der Kodierung. Auch kann man beim Suchen und Ersetzen unbemerkt die Datenbankstruktur verändern. Merkt man dies nicht gleich, wird es unter Umständen sehr mühsam diese Fehler später zu beheben.
(08.07.2020, 05:08)Gerti schrieb: Umweg ist eher das mühevolle herausfinden aller benötigen SQL-Befehle um alle Tabellen korrekt aktualisieren zu können.
In der Regel reicht genau dieser eine Befehl, denn in den wenigsten Tabellen und Spalten kommen Links überhaupt vor. Davon abgesehen besitzt phpMyAdmin auch praktische eine Suchfunktion.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#9
Ich schließe mich da StefanT an. Sicherlich ist dies über Notepad++ machbar, aber nicht empfehlenswert und auch recht unprofessionell. Wenn man bereits eine relationale Datenbank verwendet, sollte man SQL auch entsprechend nutzen. Der Umgang mit Notepad++ um Werte zu ändern ist in vielen Belangen als gefährlich zu betrachten. Es könnte viel beschädigt werden.

Die SQL-Befehle (bzw. Queries) müssen nicht "herausgefunden" werden, sondern einfach logisch geschrieben werden. Spätestens wenn eine dynamische Anpassung eines Wertes in einer Spalte in Abhängigkeit einer anderen Spalte vorgenommen werden soll, ist Notepad++ komplett raus. Das gleiche gilt natürlich, wenn Berechnungen vorgenommen werden sollen in Form von Aggregatfunktionen.

Ich akzeptiere die Lösung als schlechte Alternativlösung (ohne es böse zu meinen), würde davon aber in allen Fällen abraten. Falls möglich, immer über eine entsprechende Abfrage machen. (Gründe: Siehe u.a StefanT's Beitrag). Ich meine, eine SQL Datenbank ist in vieler Hinsicht eine enorme Erleichterung und höchst performant, man sollte sich da wirklich nicht quer stellen SQL zu lernen! :-)
Zitieren
#10
Rein Fachlich stimme ich Dir uneingeschränkt zu. Es setzt jedoch mindestens Basiskenntnise im Umgang mit SQL voraus. 

Welcher, als reiner, MyBB-Admin hat schon die benötigen SQL-Kenntnisse nur um einmal eine Domain im gesamten Forum (Postings, PNs, etc.) anzupassen?

Du hast hier auch schon mitbekommen wie oft danach gefragt wurde "welche Tabellen sind zu berücksichtigen wenn ... ändern will?". Kaum werden Tabellen zur Anfrage gepostet, kommt noch einer und sagt "die müssen (eventuell) auch berücksichtigt werden. Das habe ich hier selbst schon durchgemacht. Theorie und Praxis stimmen da oftmals nicht überein.?

Beim OP handelt es sich einfach um eine neue Domainadresse und daher stehe ich zu meiner vorgeschlagenen Vorgehensweise. Ich selbst prakiziere es seit langer Zeit genau so und immer erfolgreich.

Wie bereits erwähnt, muss jeder seinen eigenen Weg finden wie er es handhabt. Dazu dient dieser Thread sicherlich auch.
Wer fragt, ist gegebenenfalls für fünf Minuten ein Narr. Wer nicht fragt, bleibt ein Narr.
Wer will sucht Wege; Wer nicht will sucht Gründe!
Aktive Version: MyBB: 1.8.24 | PHP: 7.4.5 | SQL: 5.7.28
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Wechsel der Sprache via API/REST-Call evaluation 2 586 02.05.2018, 06:49
Letzter Beitrag: evaluation
  Minutenangabe bei Bildern? Paccy 1 509 24.05.2017, 14:48
Letzter Beitrag: doylecc