Es gibt keine spezifische CSS-Klasse in der Themenliste.
Ist es möglich, dies durch Bearbeiten der Themenlisten-Vorlage zu erreichen?
Wenn Sie einer Komponente für Listeneinträge von Themen nur eine Klasse hinzufügen möchten, können Sie dies tun, ohne die Vorlage zu ändern. Sie können etwas wie Folgendes verwenden.
const discourseComputed = require("discourse-common/utils/decorators").default;
api.modifyClass("component:topic-list-item", {
pluginId: "add-views-class",
@discourseComputed()
unboundClassNames() {
// Protokollieren Sie die Themen-Eigenschaften, um zu sehen, worauf Sie zugreifen können
console.log(this.topic);
// Erben Sie die Standardklassen von Core und Plugins
let classList = this._super(...arguments);
// Fügen Sie Ihre neuen Klassen basierend auf einer Eigenschaft hinzu
if (this.topic.views > 100) {
classList += " has-many-views";
}
// Geben Sie die modifizierte classList zurück
return classList;
}
});
Und ein wenig CSS:
.has-many-views {
background: red;
}
Leider ist „Wiki“ eine Eigenschaft auf Ebene des Beitrags, nicht auf Ebene des Themas. Daher wird sie nicht zum Modell für Listeneinträge von Themen hinzugefügt. Sie können entweder ein Tag verwenden oder eine Funktionsanfrage an Discourse stellen, um diese Klasse hinzuzufügen.