Notre système génère des comptes pour la publication d’annonces. Nous nous demandions s’il existait un moyen d’ajouter une notification distincte pour le personnel, dotée de sa propre icône, qui s’ajouterait automatiquement à ces publications afin que nous puissions expliquer qu’il s’agit d’un compte généré automatiquement ? Même par identifiant/nom d’utilisateur, ou par groupe, cela fonctionne.
Je pense que vous pouvez y parvenir avec des composants de thème. Par exemple, ce code fait ce dont vous avez besoin :
<script type="text/discourse-plugin" version="0.8">
const { iconHTML } = require("discourse-common/lib/icon-library");
const bot_id = 128856; // ou un autre
api.decorateWidget("post:before", (helper) => {
if (helper?.getModel()?.user_id !== bot_id) {return;}
return helper.h("div.post-notice",[
helper.rawHtml(iconHTML("shield-alt")), // nom de l'icône
helper.h("p", "ceci est un bot"), // texte
]);
});
</script>
Salut !
J’ai essayé d’utiliser JS pour ajouter automatiquement une notification du personnel à un compte auto-généré s’il fait partie du groupe “autogenerated”, mais je ne suis pas sûr de ce que je fais de mal.
<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', 'Ce compte est auto-généré et doit être considéré comme un bot. Le compte n\'est pas surveillé par le personnel.')
]);
}
}
</script>
J’ai placé le code dans la partie “Head” de notre composant, cependant, il ne s’exécute pas. Je ne sais pas si la fonction n’est pas appelée correctement, ou si ma condition IF n’est pas satisfaite.
Salut @jhealey
J’ai intégré votre message dans le sujet existant car les questions semblent très similaires. ![]()
Tu voudrais peut-être verrouiller l’autre sujet alors. J’aurais probablement dû répondre à ce sujet à la place… ![]()
Je me suis trop fié aux outils automatiques et je n’ai pas vérifié.
J’ai supprimé l’autre sujet. ![]()
Merci ! ![]()
Si vous utilisez await, votre fonction doit être async.
Je ne sais pas comment je n’ai pas remarqué ça ! Merci ! Ça fonctionne maintenant ![]()
Ce n’est pas grave ! De temps en temps, nous faisons tous des oublis comme ça.
De rien ! ![]()
toutes ces astuces sont bien, mais cela devrait être une fonctionnalité intégrée d’une manière ou d’une autre.