Die Administratoren haben eine CSS-Anpassung hinzugefügt, die wie folgt aussieht:
body:not([class*="category-council-"]):not(.staff).closed-topic .reply,
body:not([class*="category-council-"]):not(.staff).closed-topic #topic-footer-buttons .create,
body:not([class*="category-council-"]):not(.staff).closed-topic .timeline-container .create,
body:not([class*="category-council-"]):not(.staff).closed-topic #reply-control {
display: none !important;
}
Auf den ersten Blick scheint das in Ordnung zu sein, aber dann sehe ich, dass body.closed-topic auf die Themenliste angewendet wird… was wirklich keinen Sinn ergibt.
Diese Klasse ist in Discourse nicht standardmäßig vorhanden, daher muss eine andere Anpassung gefunden werden, die sie hinzufügt…
<script type="text/discourse-plugin" version="0.8">
const container = Discourse.__container__;
const controller = container.lookup("controller:topic");
const currentUser = api.getCurrentUser();
api.onPageChange(() => {
if (!currentUser || currentUser.admin || currentUser.moderator || currentUser.trust_level != 4 ) {
return;
} else {
let model = controller.get("model");
document.querySelector("body").classList.add("closed-topic");
if (model) {
if (!model.closed) {
document.querySelector("body").classList.remove("closed-topic");
}
}
}
});
</script>
Hier wird, wenn Sie angemeldet sind, kein Administrator, kein Moderator sind und Vertrauensstufe 4 haben… die Klasse closed-topic zum Body der Seite hinzugefügt.
Diese Klasse wird nur entfernt, wenn model.closed false ist, was bedeutet… wenn es kein geschlossenes Thema ist (oder nicht einmal ein Thema ist), wird die Klasse closed-topic angewendet.
Diese Zeile:
document.querySelector("body").classList.add("closed-topic");
sollte wahrscheinlich innerhalb von if (model) stehen, denn sonst wird sie auch angewendet, wenn kein Modell vorhanden ist (z. B. wenn Sie sich nicht in einem Thema befinden)…
Es scheint, dass die Absicht war, Benutzern der Vertrauensstufe 4 daran zu hindern, auf geschlossene Themen zu antworten, aber es wird zu breit angewendet.