Hallo zusammen,
ich arbeite an einem Theme, um verschiedene Aspekte des standardmäßigen Discourse anzupassen. Dabei muss ich unter anderem das topic-list-item anpassen, was zunächst recht einfach erscheint: Ich füge in meinem Theme eine Datei unter dem Pfad javascripts/discourse/templates/components/topic-list-item.hbs hinzu und kann dort meinen Code einfügen. Dennoch beginnen hier die Fragen.
Es gibt eine Methode in der Komponente für diese Vorlage namens renderTopicListItem, die eine Eigenschaft namens topicListItemContents setzt, die standardmäßig gerendert wird. Schaut mal:
Die erste Frage ist WARUM? Warum müssen wir das so machen? Warum nicht einfach den Handlebars-Code wie üblich verwenden?
Um den Kerncode nicht zu stark zu beeinflussen, habe ich beschlossen, topic-list-item so zu lassen und stattdessen topic-list-item.raw.hbs in meinem Theme zu ersetzen. Das funktioniert problemlos.
Ich gehe jedoch davon aus, dass das Hinzufügen einer Datei wie javascripts/discourse/templates/mobile/list/topic-list-item.raw.hbs in meinem Theme die mobile Ansicht ersetzt – doch das tut es nicht.
Die Methode findRawTemplate gibt weiterhin die Standard-Mobile-Vorlage von Discourse zurück, die Folgendes enthält:
Selbst bei manueller Bearbeitung in meinem lokalen Discourse-Projekt gelingt es mir nicht, die mobile Version mit den Änderungen zu aktualisieren.
Ich hoffe, die Erklärung ist verständlich. Hat jemand Erfahrung damit? Es sieht aktuell wirklich fehlerhaft aus, und vielleicht möchten wir es beheben, falls es wirklich kaputt ist (ich kann das gerne tun, wenn ich etwas mehr verstehe, was hier los ist).
In der Zwischenzeit suche ich weiter selbst nach einer Antwort und werde über Neuigkeiten berichten. Unten ein kleines GIF dessen, was ich lokal habe.
http://g.recordit.co/AtOJlltJ8o
UPDATE: Ich habe auch raw auf .hbr aktualisiert, da ein kürzlichiger Commit die Dateien geändert hat, aber es funktioniert immer noch nicht.


