Platzhalter für nicht existierende ferne Bilder

Hallo,

ich habe 80.000 Beiträge von phpBB nach Discourse importiert. In den Beiträgen sind viele Bilder von externen Websites verlinkt, wie z. B. [img]http://www.domain.tld/image.jpg[/img], die nicht mehr vorhanden sind.

Der Beitrag zeigt dort nichts an, was zu Irritationen führt, da der Kontext in einigen dieser Beiträge unterbrochen wird, da nicht klar ist, dass sich zwischen dem einen und dem nächsten Textblock ein Bild befindet/befand.

Meine Frage ist also: Ist es möglich, dort ein Platzhalterbild einzufügen, wenn das Originalbild nicht mehr verfügbar ist?

Mit freundlichen Grüßen,
Roi

Wird das Standard-Broker-Bildsymbol angezeigt? Ich denke, es sollte nach dem Verarbeiten der Beiträge angezeigt werden.

Ich habe meines angepasst. Siehe (Code enthalten):

1 „Gefällt mir“

Nein, es wird nichts angezeigt. Aber ich komme der Sache näher. Ich glaube, es liegt am BBCode-Tag. Wenn ich einen Beitrag bearbeite und das Tag entferne, sieht er so aus.

Muss ich also alle [img] BBCode-Tags entfernen und die Beiträge neu backen?

Das sieht interessant aus. Ich glaube, das brauche ich auch. :slight_smile: Danke!

Ich bin mir nicht sicher. Wenn Sie ein Inline-BBCode-Tag entfernen, haben Sie die Bild-URL als Klartext in Ihrem Text und es wird nicht das kaputte Bildsymbol verwendet.

Vielleicht könnten Sie versuchen, das BBCode-Tag zu entfernen, aber eine Leerzeile vor und nach der Bild-URL einzufügen. Machen Sie zuerst ein Backup!

Ja. Verdammt, du könntest Recht haben.

Nun, was müsste ich ändern, um das kaputte Bildsymbol zu erhalten – oder das entfernte Bild (meine Vermutung, dann heruntergeladen), falls es noch existiert?

Ich bin mir nicht sicher.
Ich hätte dieses Problem auch haben sollen, da ich auch ein phpBB-Forum mit [IMG]-Tags und 95 % kaputten Bildern importiert habe, aber soweit ich mich erinnere, wurden nach dem Backen kaputte Inline-Bilder ordnungsgemäß durch das kaputte Bildsymbol ersetzt, auch wenn sie inline waren, aber ich könnte mich irren :thinking:

Ich fürchte, ich habe im Moment keine sofortige Lösung, aber ich bin sicher, dass es einen Weg gibt, das herauszufinden.

Haben Sie zufällig einen Link zu einer Nachricht, die ein kaputtes Inline-Bild enthält? Könnten Sie auch den Rohtext kopieren und einfügen?

1 „Gefällt mir“

Sicher, hier ist ein Live-Beispiel:

Wenn Sie den ersten Beitrag überprüfen, gibt es einen großen leeren Bereich unter der letzten Textzeile und der Signatur. Im Quellcode können Sie die toten Bilder sehen, z. B.:

<p><img src="http://www.grillen-darf-nicht-gesund-sein.de/gfx/beef-buddies-2008_initiative.jpg" alt="" role="presentation" loading="lazy"></p>

“Roh” aus der Datenbank:

[img]http://www.grillen-darf-nicht-gesund-sein.de/gfx/beef-buddies-2008_initiative.jpg[/img]

“Gekocht” aus der Datenbank:

<p><img src="http://www.grillen-darf-nicht-gesund-sein.de/gfx/beef-buddies-2008_initiative.jpg" alt="" role="presentation"></p>

Haben Sie die Einstellung Entfernte Bilder lokal herunterladen aktiviert? Das Symbol für ein defektes Bild erscheint erst, nachdem Discourse versucht, das entfernte Bild herunterzuladen, und fehlschlägt.

Wenn die Einstellung deaktiviert ist, bleibt eine leere Zeile übrig.

Ja, es ist aktiviert. War es schon immer, auch bevor ich von phpBB importiert habe.

Ist es möglich, dass der phpBB-Importer diese Einstellung nicht berücksichtigt? Nach meinem Verständnis sollte das erneute Kochen außerhalb des Importers erfolgen und die Einstellungen verwenden.

Verursacht das erneute Kochen aller Beiträge Schäden?

Ich habe versucht:

rake posts:rebake_match["[img]"]
      767 / 767 (100,0%)
767 Beiträge erledigt!

Der oben erwähnte Beitrag (und anscheinend alle anderen) sehen exakt gleich aus…

Ich glaube, es gibt eine Einstellung in /var/discourse/shared/standalone/import/settings.yml, in der wir den Download von Remote-Bildern auf true oder false setzen können, aber die Beiträge werden nach dem Import gebacken, unabhängig davon, ob diese Option gesetzt ist oder nicht.

Ich sehe, dass Ihre leeren Zeilen jetzt das erwartete kaputte Bildsymbol anzeigen:
\u003chttps://forum.gdngs.de/t/grill-shirts-von-3dsupply-de/5515\u003e

Anstatt eine Reihe von Beiträgen neu zu backen, ist ein guter Test, das HTML eines bestimmten Beitrags über die Admin-Optionen des Beitrags neu zu erstellen, da dies einen Re-Bake auslöst:

chrome_RLLvokErfg

Und dann den UpdateHotlinkedRaw-Job auszulösen, indem Sie ihn in die Warteschlange einfügen:

Ich habe es auf meiner Testinstanz mit einem Ihrer kaputten Bilder und innerhalb von BBcode ausprobiert. Wenn Remote-Bilder lokal herunterladen deaktiviert war, blieb die leere Zeile bestehen. Wenn es aktiviert war, erschien stattdessen das kaputte Bildsymbol.

1 „Gefällt mir“

Oh ja, Sie haben Recht. Ich glaube, das war ein Browser-Cache-Problem nach dem Rebake-Befehl. Danke, dass Sie selbst nachgesehen haben! :slight_smile:

Es war also irgendwie ein phpBB-Importproblem. Ich würde schwören, dass ich keine Konfigurationseinstellungen in Bezug auf Remote-Bilder geändert habe, nachdem alles von phpBB importiert wurde…

Ah cool. Ich habe es gefunden und darauf geklickt.

Ich kann nirgends einen UpdateHotlinkedRaw-Job in Sidekiq finden… Können Sie mir helfen, das zu klären? Ich bin mir sicher, dass es irgendwie PEBCAK ist. :wink:

Das würde in die Richtung gehen, dass ich Remote-Bilder lokal herunterladen nach dem Import von allem aus phpBB aktiviert habe. Hm… Da ich auch eine Testinstallation hatte/habe und dort viel getestet habe, bin ich mir immer noch ziemlich sicher, dass es schon vorher aktiviert war.

Hinweis: Der Job würde sowieso in wenigen Minuten ausgelöst, Sidekiq ist nur eine Möglichkeit, Dinge schneller zu überprüfen.

Der UpdateHotlinkedRaw-Job sollte Sekunden nach dem Neuerstellen des HTMLs Ihres Beitrags im Reiter “Scheduled” von Sidekiq erscheinen.

Der Job sollte nur sichtbar sein, wenn die Einstellung Remote-Bilder lokal herunterladen in den Einstellungen Ihres Discourse-Forums aktiviert ist und Ihr Beitrag Bild(er) enthält.

Wenn das nicht funktioniert, habe ich im Moment keine andere Idee…!

Danke, dann ist das klar. Ich habe gerade einen Beitrag ohne Remote-Bilder neu gebacken. Also ist nichts passiert. :wink:

Und danke, du hast mir hier geholfen, die Dinge zu klären. Ich sehe jetzt die Platzhalterbilder. Und ich werde das Platzhalterbild höchstwahrscheinlich durch deinen CSS-Trick ersetzen, auf den du hier verlinkt hast.

1 „Gefällt mir“