CSS zum Ausblenden von nicht sichtbaren Elementen pro TL bzw. Gruppe

Vielleicht sollte ich zuerst beschreiben, was ich zu tun versuche.

Höhere TLs in meinem Forum verwenden gerne unseen. Also habe ich es zum top menu hinzugefügt. Aber TL0/1 brauchen es nicht, weil für sie latest und/oder categories genau dasselbe anzeigen. Für sie ist unseen nur Rauschen.

TL1-Benutzer benötigen es möglicherweise/könnten es benötigen, aber sie bleiben bei TL1, weil sie nicht aktiv genug sind. Und wieder: Weil sie nicht aktiv sind, bietet latest dasselbe Ergebnis.

Also habe ich beschlossen, unseen für alle unter TL2 auszublenden.

Als Doktor der Copy&Paste-Kunst weiß ich, dass ich Layout und sichtbare Teile pro Gruppe einschränken und ändern kann. Aber ich kann keine geeignete Ressource finden, da mir die benötigten Suchbegriffe fehlen.

Also… kann mir jemand die richtige Richtung zeigen?

In der perfekten Welt hätten wir eine Komponente, um das top menu pro Gruppe anzupassen. Oder wir könnten sogar Standardeinstellungen festlegen und einen Benutzer entscheiden lassen, was er sehen möchte oder nicht. Aber wir leben nicht in einer perfekten Welt, oder? Nun, in derselben Traumwelt würde ich auch CSS können :joy:

Es besteht die Gefahr, dass ich dies als größeres Problem sehe, als es ist. In meiner Welt nutzen etwa 95 % der Benutzer Mobiltelefone und verwenden überhaupt kein Dropdown-Menü – sie sehen unseen also gar nicht erst.

Nun, ich habe zuvor eine Themenkomponente entwickelt, die CSS für Gruppen, TLs oder Benutzer einfügen kann.

Ich bin mir nicht sicher, ob jemand auf Meta zuvor eine ähnliche Komponente entwickelt hat … aber wenn nicht, werde ich sie posten.

Aktualisierung: Das allgemeine Prinzip ist wie folgt, da meine Implementierung sehr seltsam ist … ich werde sie nicht posten

<script type="text/discourse-plugin" version="0.8">
try {
    let your_tl = -1; // -1 bedeutet anonym
    if (api.getCurrentUser()?.trust_level) {
        your_tl = api.getCurrentUser().trust_level;
    }
    if (your_tl < 1) {
        var style = document.createElement('style');
        style.innerHTML = '#tl1-only{display:none;}'; // Oder etwas anderes
        document.head.appendChild(style);
    }
} catch(err) {
    // ...
}
</script>
2 „Gefällt mir“