Ok, für diejenigen, die ihre Signaturen für ihre Gruppe wirklich besser funktionieren lassen möchten (insbesondere wenn Sie die Optionen nutzen möchten, eine Signatur als Teil eines kostenpflichtigen Upgrades/Abonnements zu haben), hier ist Code (und die Begründung dafür), von dem ich denke, dass er es viel besser macht und Ihnen helfen kann, mehr Upgrades zu fördern. Ich habe unzählige Versuche gebraucht, aber es funktioniert. Achten Sie darauf, wo Sie die „XXXXX“-Teile ersetzen müssen.
Ich wollte die folgenden 2 Dinge erreichen:
A) Ich wollte die Möglichkeit deaktivieren, Signaturen NICHT anzuzeigen. Das bedeutet, dass Benutzer, die ein Upgrade durchführen, wissen, dass ihre Signatur von allen gesehen wird.
B) Ich wollte, dass NUR eine bestimmte Gruppe die Möglichkeit hat, eine Signatur zu erstellen.
-
Gehen Sie zu Admin > Erscheinungsbild > Themes & Komponenten > Komponenten > Installieren > Neu erstellen
-
Fügen Sie diesen Code in den -Tab ein:
<script>
// Warten Sie, bis die grundlegende Seitenstruktur zuerst geladen ist
document.addEventListener("DOMContentLoaded", function() {
// Richten Sie den Beobachter ein
const observer = new MutationObserver(function(mutations) {
// Finden Sie alle Kontroll-Labels auf der Seite
const labels = document.querySelectorAll('label.control-label');
labels.forEach(label => {
// Suchen Sie nach dem spezifischen Signaturen-Label
if (label.textContent.trim() === 'Enable Signatures') {
// Finden Sie den Hauptcontainer, der sowohl das Label als auch das Kontrollkästchen enthält, und blenden Sie ihn aus
const controlGroup = label.closest('.control-group') || label.parentElement;
if (controlGroup) {
controlGroup.style.display = 'none';
}
}
});
});
// JETZT beginnen Sie mit der Beobachtung des Körpers, da wir wissen, dass er existiert
observer.observe(document.body, { childList: true, subtree: true });
});
</script>
3. Fügen Sie diesen Code in den css-Tab ein (ersetzen Sie XXXXX durch Ihren Gruppennamen):
/* Blenden Sie den Signaturen-Bereich für alle aus */
.user-preferences .control-group.signatures,
.user-preferences .signature-preferences,
.user-preferences div[data-setting-name="user_card_badge"] + .control-group {
display: none !important;
}
/* Nur anzeigen, wenn die Klasse 'user-is-XXXXX' auf dem Body vorhanden ist */
body.user-is-XXXXX .user-preferences .control-group.signatures,
body.user-is-XXXXX .user-preferences .signature-preferences,
body.user-is-XXXXX .user-preferences div[data-setting-name="user_card_badge"] + .control-group {
display: block !important;
}
- Fügen Sie diesen Code unter dem ersten Block oben in den -Tag ein (ersetzen Sie XXXXX durch Ihren Gruppennamen):
<script>
(function() {
const checkAccess = () => {
// Discourse speichert die Gruppen des aktuellen Benutzers in diesem globalen Objekt
const user = window.Discourse && window.Discourse.User && window.Discourse.User.current();
if (user && user.groups) {
// Prüfen, ob ein Gruppenname mit "XXXXX" übereinstimmt
const isXXXXX = user.groups.some(g => g.name === 'XXXXX');
if (isXXXXX) {
document.body.classList.add('user-is-XXXXX');
}
}
};
// Sofort ausführen
checkAccess();
// Ausführen, wann immer der Benutzer zwischen Seiten navigiert
document.addEventListener('discourse-ready', checkAccess);
// Sicherung: Erneut nach 1 Sekunde ausführen, um langsame Ladevorgänge abzufangen
setTimeout(checkAccess, 1000);
})();
</script>
- Fügen Sie diesen Code unter dem ersten Block oben in den css-Tab ein (ersetzen Sie XXXXX durch Ihren Gruppennamen):
/* Blenden Sie den Signaturen-Bereich für alle aus */
.user-preferences .control-group.signatures,
.user-preferences .signature-preferences,
.user-preferences div[data-setting-name="user_card_badge"] + .control-group {
display: none !important;
}
/* Nur anzeigen, wenn die Klasse 'user-is-XXXXX' auf dem Body vorhanden ist */
body.user-is-XXXXX .user-preferences .control-group.signatures,
body.user-is-XXXXX .user-preferences .signature-preferences,
body.user-is-XXXXX .user-preferences div[data-setting-name="user_card_badge"] + .control-group {
display: block !important;
}
Fertig.
Ich bin kein Entwickler. Alles, was ich weiß, ist, dass dies auf meiner Seite zu 100 % funktioniert.
Auch an den Plugin-Autor – ich würde LIEBEND gerne die Möglichkeit haben, die Zeichenanzahl für Signaturen zu begrenzen. Ich habe so viele Dinge versucht, aber nichts hat funktioniert.