cd /var/discourse
./launcher enter app
x86_64 arch detected.
root@discourse-app:/var/www/discourse# cd app/views/embed/
root@discourse-app:/var/www/discourse/app/views/embed# nano comments.html.erb
Nano war nicht installiert, also habe ich es installiert und comments.html.erb bearbeitet, wobei ich die Zeilen aus dem zitierten Beitrag ersetzt habe.
Dann habe ich den Launcher verlassen und Folgendes ausgeführt:
./launcher rebuild app
Nach dem Rebuild gab es keinen Unterschied, ich sehe immer noch Benutzernamen anstelle von vollständigen Namen in den Einbettungen.
Wenn die App neu erstellt wird, wird Discourse neu heruntergeladen, und alle Änderungen, die Sie innerhalb des Containers vorgenommen haben, werden überschrieben.
Wenn Sie Änderungen an Discourse vornehmen möchten, ist die Bearbeitung dieser Dateien auf diese Weise nicht der richtige Weg.
Das Anpassen von Funktionen von Discourse erfolgt normalerweise entweder mit einer Theme-Komponente:
Oder einem Plugin:
Wenn Sie über Programmierkenntnisse verfügen, empfehle ich Ihnen, sich diese Links anzusehen.
Dieser Link könnte besonders interessant sein:
Auf den ersten Blick scheint er genau das zu tun, was Sie suchen. Er zielt nur auf eine andere Datei im selben übergeordneten Ordner ab.
Ich führe diesen Befehl aus und er wird ohne Fehler erstellt:
./launcher enter app
Aber ich scheine die erwarteten Änderungen bei den Einbettungen nicht zu sehen. Ich habe ein paar benutzerdefinierte CSS-Klassennamen hinzugefügt und <%= post.user.username %> zu <%= post.user.name %> geändert. Ich wäre dankbar für weitere Hinweise, um dies zum Laufen zu bringen. Ich kann mir nicht vorstellen, dass es zu kompliziert ist, eine Plugin-Vorlagendatei von einem anderen Plugin zu überschreiben.
Was ich tun konnte, ist, die App aufzurufen und meine Plugin-Version der Vorlage manuell nach /var/www/discourse/app/views/embed/ zu kopieren, dann starte ich die App neu und sehe die Ergebnisse, die ich suche.
Ich muss nur dafür sorgen, dass es automatisch passiert, wenn das Plugin geladen wird, und da stecke ich fest.
@Canapin Ja! Habe alles zum Laufen gebracht. So sieht die plugin.rb am Ende aus. Es stellte sich heraus, dass ich nur ein Pfadproblem hatte, wo ich die benutzerdefinierte Version der Datei abgelegt habe.
Ich habe sie schließlich in einem Ordner /custom_views/embed/comments.html.erb abgelegt.
# frozen_string_literal: true
# name: optuma_discourse_custom_embed
# about: Ein einfaches Plugin zur Anpassung der Vorlage in den Forum-Embeds
# version: 1.0.0
# authors: Optuma Pty Ltd
# url: https://github.com/OptDev/optuma-discourse-custom-embed
# required_version: 2.7.0
after_initialize do
::EmbedController.prepend_view_path File.expand_path("../custom_views", __FILE__)
end