こんにちは、
トピック内の返信で、ユーザーが自分自身に返信した場合に、topic-post に新しいクラスを追加しようとしています。実際には、トピック内で自分自身からのメッセージを異なる見た目で表示したいと考えています。
この機能は、テンプレートがメッセンジャーアプリのように設計されている場合に特に役立ちます。
この機能はすでにどこかで定義されていますか?
これはすでに .topic-owner CSS クラスで可能です。以下の CSS を使用して、自分の返信を強調表示できます。
.topic-owner .topic-body {
background: #fffaaa;
}
「いいね!」 8
ただし、topic-owner クラスはトピック作成者の返信にのみ割り当てられます。ログイン中のユーザーが書いた他の返信に追加するための、例えば my-own という名前のクラスが必要です。
メッセージアプリのように、自分の返信を右側に、他の人の返信を左側の吹き出しに表示したいのです。
「いいね!」 1
これは、テーマのヘッダー(またはテーマコンポーネントのヘッダー)に以下のコードを追加することで実行できます。
<script type="text/discourse-plugin" version="0.8">
const currentUser = api.getCurrentUser();
api.addPostClassesCallback((attrs) => {
if (currentUser && currentUser.id === attrs.user_id) {
return ["post-by-current-user"];
} else {
return [];
}
});
</script>
その後、スタイルシートで post-by-current-user クラスを使用できます。
「いいね!」 11
わあ、そうすると大掛かりな変更が必要になると思っていたんです。
Discourse は本当にワクワクしますね…
本当にありがとうございます!
「いいね!」 5