Dies scheint für die benutzerdefinierte Benutzergruppe zu funktionieren:
<script type="text/discourse-plugin" version="0.8">
api.reopenWidget("post-menu", {
menuItems() {
const user = Discourse.User.current();
if(user.primary_group_name.toLowerCase() === "no_likes") {
return this.siteSettings.post_menu
.split("|")
.filter((item) => item !== "like");
}
return this.siteSettings.post_menu.split("|").filter(Boolean);
},
});
</script>
Ich würde jedoch gerne wissen, ob es eine Möglichkeit gibt, dies so zu gestalten, dass stattdessen das boolesche benutzerdefinierte Benutzerfeld geprüft wird, anstatt dass Personen einer Gruppe beitreten müssen. Ich habe bereits andere Plugins durchsucht, um eine Idee zu bekommen, wie das geht, aber bisher hat alles, was ich versucht habe, nicht funktioniert.
ETA: Dies scheint zu funktionieren, aber Sie müssen die Seite aktualisieren, nachdem Sie das Benutzerfeld-Boolean-Feld gesetzt oder entfernt haben.
<script type="text/discourse-plugin" version="0.8">
api.reopenWidget("post-menu", {
menuItems() {
const user = Discourse.User.current();
if(user.custom_fields['user_field_10']) {
return this.siteSettings.post_menu
.split("|")
.filter((item) => item !== "like");
}
return this.siteSettings.post_menu.split("|").filter(Boolean);
},
});
</script>