Ist es möglich, einen API-Aufruf zu tätigen, um die Liste der ignorierten Benutzer des Benutzers abzurufen und die Themen mit dieser Benutzer-ID auszublenden oder diese Themen zu entfernen, bevor die Themenliste gerendert wird?
Hier ist meine aktuelle Implementierung:
Inspiriert von:
https://meta.discourse.org/t/topics-created-by-ignored-users-showing-on-homepage/170366/14
Und mit dieser Theme-Komponente:
Es funktioniert auch auf mobilen Geräten.
Zusätzlich, wenn du diese Zeile aktualisierst:
zu:
<a href="{{topic.lastPostUrl}}" data-user-card="{{topic.last_poster_username}}" data-user-id="{{topic.creator.username}}">{{avatar topic.lastPosterUser imageSize="large"}}</a>
und meinen Code auf:
https://github.com/notedboi/Discourse-Hide-Ignored-Users/blob/main/common/head_tag.html#L13
zu:
let tr = $('*[data-user-id="' + ignored[u] + '"]');
änderst, kannst du die Ansicht des Avatars/Karten des letzten Posters beibehalten, während Beiträge von ignorierten Erstellern ausgeblendet werden.
Meine einzige Sorge ist, dass das Skript alle 500 ms überprüft und möglicherweise zu viel Speicher verbraucht.
Ich schaue mir auch an, wie man die ignorierten Benutzer aus dem mobilen Kategorien-Thema entfernt.
<script type="text/x-handlebars" data-template-name="components/mobile-category-topic">
<td class="main-link" data-user-id="{{topic.creator.username}}">
<div class="topic-inset" >
{{raw "topic-status" topic=topic}}
{{topic-link topic}}
{{#if topic.unseen}}
<span class="badge-notification new-topic"></span>
{{/if}}
<span class={{cold-age-class topic.last_posted_at}} title={{raw-date topic.last_posted_at}}>{{format-age topic.last_posted_at}}</span>
</div>
</td>
<td class="num posts">{{raw "list/post-count-or-badges" topic=topic postBadgesEnabled="true"}}</td>
</script>
Als ich versucht habe, data-user-id zu dieser Ansicht hinzuzufügen, hat es nicht funktioniert. Schaue ich vielleicht das falsche Template an?
Update: Ich habe das Problem erkannt. Das topic-Objekt, das von category.topic übergeben wird, enthält keine ID des Themen-Erstellers. Außerdem kann keine der Eigenschaften des topic-Objekts als Flag verwendet werden, um ein Thema zu entfernen. Ich bin blockiert. Jegliche Hilfe wird geschätzt
!
Ich versuche, es zu aktualisieren und auf setInterval zu verzichten. Falls jemand es dennoch nutzen möchte: Das letzte Update unterstützt sowohl Topic Thumbnails als auch Topic List Excerpts.
Dein Code schien nicht zu funktionieren und machte das Forum extrem langsam. Irgendwelche Gedanken? @th21
Vielleicht ist er zu alt, um ihn zu benutzen. Ich habe eine neue Komponente erstellt, wenn Sie sie ausprobieren möchten.
Sie basiert auf
Ich benutze Ihre Komponente schon seit langer Zeit und ich denke, sie sollte Teil des Discourse-Kerns sein, vielen Dank, dass Sie sie erstellt haben. Leider wird sie jetzt markiert, da sie für die neuen Glimmer-Themenlisten aktualisiert werden muss:
Ich werde es mir ansehen