Unser System generiert Konten für das Posten von Ankündigungen. Wir wollten wissen, ob es eine Möglichkeit gibt, eine separate Personalnotiz mit einem eigenen Symbol hinzuzufügen, die automatisch an diese Beiträge angehängt wird, damit wir erklären können, dass es sich um ein automatisch generiertes Konto handelt? Sogar nach Benutzer-ID/Name oder Gruppe funktioniert es.
Ich glaube, das kannst du mit Theme-Komponenten erreichen. Dieser Code macht zum Beispiel, was du brauchst:
<script type="text/discourse-plugin" version="0.8">
const { iconHTML } = require("discourse-common/lib/icon-library");
const bot_id = 128856; // oder eine andere 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")), // Icon-Name
helper.h("p", "this is a bot"), // Text
]);
});
</script>
Hallo!
Ich habe versucht, mit JS einen automatischen Hinweis für Mitarbeiter an ein automatisch generiertes Konto anzuhängen, wenn es Mitglied der Gruppe „autogenerated“ ist, aber ich bin mir nicht sicher, wo ich falsch liege.
<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', 'Dieses Konto ist automatisch generiert und sollte als Bot betrachtet werden. Das Konto wird nicht von Mitarbeitern überwacht.')
]);
}
}
</script>
Ich habe den Code in den „Head“-Teil unserer Komponente eingefügt, aber er wird nicht ausgeführt. Ich bin mir nicht sicher, ob die Funktion nicht richtig aufgerufen wird oder ob meine IF-Anweisung plötzlich nicht erfüllt wird.
Hallo @jhealey
Ich habe deinen Beitrag in das bestehende Thema eingefügt, da die Fragen sehr ähnlich zu sein scheinen. ![]()
[quote=„JammyDodger, Beitrag:5, Thema:254123“]
Hallo @jhealey
Ich habe deinen Beitrag in das bestehende Thema eingefügt, da die Fragen sehr ähnlich zu sein scheinen. ![]()
[/quote]Du solltest das andere Thema dann sperren. Ich hätte wahrscheinlich stattdessen auf dieses Thema antworten sollen… ![]()
Ich habe mich zu sehr auf die automatischen Werkzeuge verlassen und nicht nachgeprüft.
Ich habe das andere Thema entfernt. ![]()
Danke! ![]()
Wenn Sie await verwenden, muss Ihre Funktion async sein.
Das hätte ich nicht bemerken sollen! Danke! Es funktioniert jetzt ![]()
Das ist in Ordnung! Ab und zu machen wir alle solche Übersehen.
Gern geschehen! ![]()
All diese Hacks sind nett und gut, aber dies sollte auf die eine oder andere Weise eine integrierte Funktion sein.