Salut @BeBe, quelle solution de contournement avez-vous trouvée ?
J’ai un utilisateur pour lequel il est acceptable de voir ses messages dans les sujets des autres, mais j’aimerais que ses sujets créés soient masqués.
Ses sujets tournent toujours autour des mêmes sujets (ennuyeux). ![]()
Il existe une manière en CSS de masquer les messages d’un utilisateur dans les sujets :
Mais malheureusement, les listes de sujets n’incluent pas l’ID de l’utilisateur créateur, il n’y a donc aucun moyen de masquer les sujets créés par un utilisateur.
Prenons le nom d’utilisateur abc et l’ID 123.
J’ai examiné le code source pour voir s’il y avait un moyen de le faire avec le CSS de l’utilisateur.
La balise de sujet est actuellement comme ceci :
<tr data-topic-id="123" id="ember123" class="topic-list-item … ember-view">
À l’intérieur, bien sûr, je pourrais interroger la cellule des posters, mais cela nécessiterait du JavaScript car je veux masquer son parent :
tr > td.posters > a:first-child[data-user-card='abc']
Maintenant, si nous avions l’attribut supplémentaire data-op-user-id="123", directement sur le tr du sujet :
<tr data-topic-id="123" id="ember123" data-op-user-id="123" class="topic-list-item … ember-view">
Nous pourrions utiliser un simple CSS utilisateur pour filtrer efficacement par ID d’utilisateur pour lesquels nous préférons ne pas voir leurs sujets :
tr.topic-list-item[data-op-user-id='123']
Serait-il possible d’avoir un nouvel attribut data-op-user-id sur les balises tr.topic-list-item des entrées de sujet ?
Ne fonctionne qu’en mode bureau, voir ci-dessous.
Pour ceux que cela pourrait intéresser, j’ai écrit un petit userscript pour community.metabrainz.org.
J’ai d’abord essayé avec MutationObserver, comme conseillé, mais c’est devenu trop complexe, alors j’utilise juste un simple setInterval.
Je ne l’ai pas rendu dynamique et avec des paramètres utilisateur, etc.
Chaque mise à jour effacera votre liste noire et votre @include (voir plus loin).
Parce que j’espère qu’un nouvel attribut data-op-user-id sera ajouté aux sujets dans Discourse authentique, je n’aurai plus besoin de ce userscript.
Vous pouvez l’adapter à n’importe quel autre forum Discourse en changeant son @include pour votre URL (la seule ligne spécifique).
Ne fonctionne pas en mode mobile car (malheureusement), par conception, Discourse n’affiche pas l’avatar de l’OP en mode mobile.
Il serait donc toujours très pratique en termes de spam d’avoir ce tr.topic-list-item[data-op-user-id='123'] suggéré.
Maintenant, les mises à jour ne réinitialisent plus ma liste noire, j’ai ajouté un éditeur de liste noire de base et la liste est enregistrée localement.
Mais j’adorerais vraiment que Discourse inclue un ID d’utilisateur OP dans chaque ligne de sujet <TR data-op-user-id="123">, afin qu’une feuille de style utilisateur très simple suffise à masquer les sujets des utilisateurs ignorés :
tr.topic-list-item[data-op-user-id='123'] { display: none; }
Ou j’adorerais encore plus que Discourse masque simplement les sujets des utilisateurs ignorés lui-même.
Je ne comprends pas l’utilité des utilisateurs ignorés si leurs sujets polluent ma navigation.