当社のシステムは、アナウンス投稿用のアカウントを生成しますが、自動生成されたアカウントであることを説明するために、独自のアイコンを持つ個別のスタッフ通知を追加する方法があるかどうか疑問に思っています。ユーザーID/名前、またはグループごとでも構いません。
「いいね!」 1
テーマコンポーネントでこれを実現できると思います。たとえば、このコードは必要なことを実行します。
<script type="text/discourse-plugin" version="0.8">
const { iconHTML } = require("discourse-common/lib/icon-library");
const bot_id = 128856; // または他のID
api.decorateWidget("post:before", (helper) => {
if (helper?.getModel()?.user_id !== bot_id) { return; }
return helper.h("div.post-notice", [
helper.rawHtml(iconHTML("shield-alt")), // アイコン名
helper.h("p", "これはボットです"), // テキスト
]);
});
</script>
「いいね!」 3
こんにちは!
「autogenerated」グループのメンバーである場合に、自動生成されたアカウントにスタッフ通知を自動追加しようとJSを試しましたが、どこが間違っているのかわかりません。
<script>
window.onload = function() {
const { groupMembers } = await discourse.groups.getMembers({
group_name: 'autogenerated'
});
if (groupMembers.includes(helper.getModel().user_id)) {
return helper.h('div.post-notices', [
helper.rawHtml(iconHTML('shield-alt')),
helper.h('p', 'このアカウントは自動生成されたものであり、ボットとみなされるべきです。スタッフはアカウントを監視していません。')
]);
}
}
</script>
コンポーネントの「Head」部分にコードを配置しましたが、実行されません。関数が正しく呼び出されていないのか、それともIF文が満たされていないのかわかりません。
こんにちは @jhealey
質問が非常に似ているため、既存のトピックに投稿を挿入しました。![]()
それなら、他のトピックをロックした方がいいかもしれませんね。こちらに返信するべきでした… ![]()
「いいね!」 1
自動ツールに頼りすぎて確認しませんでした。
他のトピックは削除しました。![]()
ありがとうございます!![]()
await を使用している場合、関数は async である必要があります。
「いいね!」 1
それに気づかなかったなんて!ありがとうございます!うまくいきました ![]()
大丈夫ですよ!たまには誰にでもそういう見落としはありますから。
どういたしまして! ![]()
これらのハックはすべて素晴らしいですが、何らかの形で組み込み機能であるべきです。